多因素线性回归

时间:2017-01-24 20:07:48

标签: r regression linear-regression lm

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"])

我不确定这是否正确。

1 个答案:

答案 0 :(得分:1)

经验法则是拟合线性模型然后执行ANOVA:

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

但是,您提供的玩具示例确实很糟糕,所以没有任何有趣的内容。

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