在回归模型中是否可以只包含一个因子的一个虚拟变量的交互作用?例如,假设我有:
x: numerical vector of 3 variables (1,2 and 3)
y: response variable
z: numerical vector
是否可以建立一个模型,如:
y ~ factor(x) + factor(x) : z
但只包括与一级
X
的交互?我意识到我可以为 x
的每个级别创建一个单独的虚拟变量,但如果可能的话,我想简化一些事情。真的很感激任何输入!!
最佳答案
您遗漏的一个关键点是,当您看到 x2:z
之类的事件有显着影响时。 ,这并不意味着 x
与 z
互动当x == 2
,表示x == 2
之间的差值和 x == 1
(或任何您的引用水平)与 z 相互作用。不是x
的级别正在与 z
互动,这是为 x
设置的对比之一.
因此,对于具有默认处理对比的 3 级因子:
df <- data.frame(x = sample(1:3, 10, TRUE), y = rnorm(10), z = rnorm(10))
df$x <- factor(df$x)
contrasts(df$x)
2 3
1 0 0
2 1 0
3 0 1
如果你真的认为只有第一个对比很重要,你可以创建一个新变量来比较
x == 2
至 x == 1
,并忽略 x == 3
:df$x_1vs2 <- NA
df$x_1vs2[df$x == 1] <- 0
df$x_1vs2[df$x == 2] <- 1
df$x_1vs2[df$x == 3] <- NA
然后使用它运行你的回归:
lm(y ~ x_1vs2 + x_1vs2:z)
关于R - 在回归中仅与一个因子水平相互作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14928730/