【问题标题】:Extract Regression P Value in R在 R 中提取回归 P 值
【发布时间】:2015-10-12 18:14:12
【问题描述】:

我正在对查询文件中的不同列执行多重回归。我的任务是从 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。

是否有一段代码可以做到这一点?

谢谢

【问题讨论】:

标签: r linear-regression p-value


【解决方案1】:

您可以使用anova(reg)$'Pr(&gt;F)'

【讨论】:

  • 这是最好的。 span>
【解决方案2】:

我建议使用“broom”包作为处理这些情况的好习惯(您可能需要从模型拟合输出创建数据框)。

检查这个作为一个简单的例子:

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

【讨论】:

    【解决方案3】:

    我发现提取 p 值的两种最简单的方法是:

    summary(Model)$coefficients[,"Pr(>|t|)"][2]
    
    summary(Model)$coefficients[2,4]
    

    只需将“模型”替换为您的模型名称

    【讨论】:

    • 很好的解决方案。此外,在末尾添加一组额外的括号仅返回值(没有名称):summary(Model)$coefficients[,"Pr(&gt;|t|)"][[2]]
    • 这应该是首选解决方案。
    【解决方案4】:

    你也可以使用:

    pf(summary(reg)$fstatistic[1],
    summary(reg)$fstatistic[2],
    summary(reg)$fstatistic[3],
    lower.tail=FALSE)
    

    【讨论】:

      猜你喜欢
      • 2011-08-01
      • 1970-01-01
      • 2021-01-02
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      相关资源
      最近更新 更多