我在查询文件中的不同列上执行多次回归。我的任务是从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
我想提取0.2值的p值。
是否有一段代码可以做到这一点?
由于
答案 0 :(得分:8)
我建议使用“扫帚”软件包作为一种良好的做法,继续处理这些情况(您可能需要从模型拟合输出创建数据框)。
将此视为一个简单示例:
library(broom)
dt = data.frame(mtcars) # example dataset
model = lm(mpg ~ disp + wt, data = dt) # fit a model
summary(model) # usual summary of a model fit
tidy(model) # get coefficient table as a data frame
glance(model) # get rest of stats as a data frame
glance(model)$p.value # get p value
答案 1 :(得分:5)
您可以使用anova(reg)$'Pr(>F)'
答案 2 :(得分:1)
我发现提取p值的两种最简单的方法是:
summary(Model)$coefficients[,"Pr(>|t|)"][2]
summary(Model)$coefficients[2,4]
只需更换&#34;型号&#34;使用您的模型名称
答案 3 :(得分:0)
您也可以使用:
pf(summary(reg)$fstatistic[1],
summary(reg)$fstatistic[2],
summary(reg)$fstatistic[3],
lower.tail=FALSE)