lm备选方案的估计不正确

时间:2015-03-30 11:18:45

标签: r lm

Dirk Eddelbuettel提供了使用lm命令估算线性回归的替代方法。请参阅:http://dirk.eddelbuettel.com/blog/2011/07/05/

然而,他提到:

  

“严格地说,这是我们唯一可以与lm.fit()进行比较的人   它也使用了一种旋转方案。在退化模型的情况下   矩阵,所有其他方法,包括四种最快的方法,   很容易产生不正确的估计。“

某人可以通过提供示例来说明这一点吗?当估算值对于lm是正确的,而不是替代方法吗?

1 个答案:

答案 0 :(得分:3)

安装RcppArmadillo或RcppEigen并查看help(fastLm)

   ## case where fastLm breaks down
   dd <- data.frame(f1 = gl(4, 6, labels = LETTERS[1:4]),
                    f2 = gl(3, 2, labels = letters[1:3]))[-(7:8), ]
   xtabs(~ f2 + f1, dd)     # one missing cell
   mm <- model.matrix(~ f1 * f2, dd)
   kappa(mm)                # large, indicating rank deficiency
   set.seed(1)
   dd$y <- mm %*% seq_len(ncol(mm)) + rnorm(nrow(mm), sd = 0.1)
   summary(lm(y ~ f1 * f2, dd))     # detects rank deficiency
   summary(fastLm(y ~ f1 * f2, dd)) # some huge coefficients

我们将这个例子归功于Doug Bates。