多因素线性回归

Multi-factor linear regression

df <- data.frame(
  num =
    c(5, 7, 3,
      4, 2, 6,
      5, 3, 6,
      5, 6, 0,
      7, 4, 0,
      7, 7, 0,
      6, 6, 0,
      4, 6, 1,
      6, 4, 0,
      7, 7, 0,
      2, 4, 0,
      5, 7, 4,
      7, 5, 0,
      4, 5, 0,
      6, 6, 3
    ),
  x1 = factor(rep(c("xx", "pp", "tru"), 15)),
  x2 = factor(rep(c("A", "B", "C"), 15)),
  x3 = factor(rep(1:15, rep(3, 15))))

我想计算以下的显着性:

x1
x2
x3
interaction x1/x2
interaction x1/x3
interaction x2/x3
interaction x1/x2/x3

我想我必须做一个线性模型 lm 所以我试过了

lm(df[,"num"] ~ df[,"x1"] * df[,"x2"] * df[,"x3"])

我不确定这是否正确。

经验法则是拟合线性模型,然后执行方差分析:

fit <- lm(num ~ x1 * x2 * x3, data = df)
anova(fit)

但是,你提供的玩具示例真的很糟糕,所以不会看到任何有趣的东西。

  1. 您有 x1x2 相同(因此它们具有完美的嵌套)。在这方面,你会得到很多NA个系数;
  2. 您没有复制。对于每个因子组合,您只有一个观察值,因此您最终会得到零残差的精确拟合。