使用模型矩阵而不是公式调用 lm

Call lm with a model matrix instead of a formula

我想在 R 中使用 lm 拟合线性模型以获得系数估计值和 p 值 + p 值用于总模型拟合(类方差分析),所以基本上 [=11 的输出=].

问题是我想使用自己的模型矩阵,而不是在调用lm时使用公式指定它。

我试过使用允许这样做的底层 lm.fit 函数,但后来我失去了 summary.lm 函数的便利性,而且我不想重新计算所有测试统计数据又是我自己

有没有办法 'trick' lm 并给它一个模型矩阵而不是公式?

谢谢!

这是一个使用内置 BOD 数据框的示例:

# inputs
demand <- BOD$demand
mm <- model.matrix(~ Time, BOD) # model matrix

summary(lm(demand ~ mm + 0))

summary(lm(demand ~. + 0, as.data.frame(mm)))