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

R 使用模型矩阵而不是公式调用lm,r,lm,R,Lm,我想用lm来拟合R中的线性模型,以获得系数估计值和总模型拟合的p值+p值(类似方差分析),因此基本上是summary.lm的输出 问题是我想使用自己的模型矩阵,而不是在调用lm时使用公式指定它 我曾尝试使用底层的lm.fit函数来实现这一点,但随后我失去了summary.lm函数的便利性,我不想自己重新计算所有的测试统计数据 有没有办法“欺骗”lm,给它一个模型矩阵而不是公式 谢谢 以下是使用内置BOD数据帧的示例: # inputs demand <- BOD$demand mm <

我想用
lm
来拟合R中的线性模型,以获得系数估计值和总模型拟合的p值+p值(类似方差分析),因此基本上是
summary.lm
的输出

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

我曾尝试使用底层的
lm.fit
函数来实现这一点,但随后我失去了
summary.lm
函数的便利性,我不想自己重新计算所有的测试统计数据

有没有办法“欺骗”lm,给它一个模型矩阵而不是公式


谢谢

以下是使用内置BOD数据帧的示例:

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

summary(lm(demand ~ mm + 0))

as.data.frame(model_matrix)
?此外,请尝试设置
类(lm.fit_对象),当然您可以手动构建矩阵:这很有效!唯一需要更改的是以模型矩阵的名称作为前缀的术语-但这应该很容易在事后完成-是否存在提前删除截取的问题?作为
lm
输入,似乎更直观:
摘要(lm(demand~,as.data.frame(model.matrix(~,BOD)[,-1]))
这取决于您想要什么以及模型矩阵是否已经有截距。
summary(lm(demand ~. + 0, as.data.frame(mm)))