Как вручную сделать член взаимодействия в R? - PullRequest
0 голосов
/ 19 марта 2019

По какой-то причине мне нужно вручную включить термин взаимодействия между двумя категориальными переменными.Ниже приведен пример с использованием набора данных iris:

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)

Что касается моего понимания из здесь , мы включаем только возможную комбинацию, которая входит в основной эффект (или минус комбинацию сконтрольная группа).

#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)

Я получаю такой же результат здесь.Но когда я попытался применить эту концепцию к моей актуальной проблеме , мне она показалась неправильной.

У кого-нибудь есть идеи?а может я ошибаюсь, но случайно получаю тот же результат?

...