R - 在回归中仅与一个因子水平相互作用

标签 r lm

在回归模型中是否可以只包含一个因子的一个虚拟变量的交互作用?例如,假设我有:

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 之类的事件有显着影响时。 ,这并不意味着 xz 互动当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 == 2x == 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/

相关文章:

r - 为什么unsplit这么慢

r - gridExtra 包中的 grid.table 和 tableGrob

r - dygraphs 不显示超过 10,000 个数据点的线条

r - 如何使用 R 在回归分析中设置变量的对比?

删除残差图中的 xlab(fit,which = 1)

r - 如何将数据从剪贴板复制并粘贴到 R 中?

r - 通过求和来聚合重复的行

r - 将一个或多个系数设置为特定整数

r - 编辑 emmeans 箭头图的侧面文本

r - 如何在lm中使用除法