如何在R中手动执行交互项?

时间:2019-03-19 08:45:23

标签: r interaction dummy-variable

对于某些reason,我需要手动包括两个分类变量之间的交互项。 我在下面使用虹膜数据集提供了一些示例:

iris$group <- as.factor(rep(c("a","b")))
str(iris)

#model without interaction 
mod <- lm(Sepal.Length ~ Sepal.Width+Species+group, iris)
summary(mod)

#model with interaction(Species*group)
mod2 <- lm(Sepal.Length ~ Sepal.Width+Species*group, iris)
summary(mod2)

据我对here的理解,我们仅包括主要影响中的可能组合(或减去与参考组的组合)。

#dummy variables for interaction
int1 <- ifelse(iris$Species=="versicolor" & iris$group=="b", 1, 0)
int2 <- ifelse(iris$Species=="virginica" & iris$group=="b", 1, 0)

#another method for dummy variable for the interaction
iris$int <- interaction(iris$Species, iris$group)
levels(iris$int)
int3 <- ifelse(iris$int=="versicolor.b", 1, 0)
int4 <- ifelse(iris$int=="virginica.b", 1, 0)

#model with dummy variables
mod3 <- lm(Sepal.Length ~ Sepal.Width+Species+group+int1+int2, iris)
mod4 <- lm(Sepal.Length ~ Sepal.Width+Species+group+int3+int4, iris)

summary(mod3)
summary(mod4)
summary(mod2)

我在这里得到相同的结果。但是,当我尝试将此概念应用于我的actual problem时,对我来说似乎并不正确。

有人知道吗?还是我做错了,但是偶然得到了相同的结果?

0 个答案:

没有答案