我正在对一个查询文件中的不同列执行多重回归,我的任务是从R中的回归函数lm中提取某些结果。
到目前为止,
> reg <- lm(query$y1 ~ query$x1 + query$x2)
> summary(reg)
Call:
lm(formula = query$y1 ~ query$x1 + query$x2)
Residuals:
1 2 3 4
7.68 -4.48 -7.04 3.84
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1287.26 685.75 1.877 0.312
query$x1 -29.30 20.92 -1.400 0.395
query$x2 -116.90 45.79 -2.553 0.238
Residual standard error: 11.97 on 1 degrees of freedom
Multiple R-squared: 0.9233, Adjusted R-squared: 0.7699
F-statistic: 6.019 on 2 and 1 DF, p-value: 0.277
为了提取系数、r平方和F统计量,我使用以下公式:
reg$coefficients
summary(reg)$r.squared
summary(reg)$fstatistic
我还想提取p值0.277。
有没有一段代码可以做到这一点?
谢谢
5条答案
按热度按时间yeotifhr1#
我建议使用“扫帚”包作为处理这些情况(可能需要从模型拟合输出创建数据框)的良好实践。
下面是一个简单的例子:
blpfk2vs2#
我发现的提取p值的两种最简单的方法是:
只需将
Model
替换为您的模型名称即可mlnl4t2r3#
您可以使用
anova(reg)$'Pr(>F)'
dy2hfwbg4#
您还可以用途:
wwodge7n5#
这是非常有帮助的!我唯一可以补充的是,用户也可以像这样访问系数值,例如,如果用户想向具有拟合值的现有数据集添加一列:所有变量$预测=所有变量$x* 汇总(拟合)$系数[2,1] +汇总(拟合)$系数[1,1]
很明显,残差是:所有变量$残差=所有变量$y -(所有变量$x* 汇总(拟合)$系数[2,1]
再次感谢ADR