从线性回归函数lm中获取误差值

时间:2012-03-06 09:20:09

标签: r

我有一个线性回归问题,我用以下方法解决了这个问题:

m=lm(value ~ mean, data=d)

从这个值我可以得到R2和回归方程。

但我想得到标准错误(拟合错误)。我能够看到价值,但我不知道如何将其存储在数据框中。

我使用summary(m)获取值,结果如下:

Call:
lm(formula = value ~ mean, data = d)

Residuals:
    Min      1Q  Median      3Q     Max 
-25.000 -15.909  -2.124  14.596  44.697 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  2.500e+01  1.064e+00   23.49   <2e-16 ***
mean        -1.759e-06  1.536e+00    0.00        1    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 16.85 on 1298 degrees of freedom
Multiple R-squared: 1.01e-15,   Adjusted R-squared: -0.0007704 
F-statistic: 1.311e-12 on 1 and 1298 DF,  p-value: 1 

所以问题是:我怎样才能访问这些值?

谢谢

3 个答案:

答案 0 :(得分:8)

函数summary只返回一个R列表。

##Generate some dummy data
x = runif(10);y = runif(10)
m = summary(lm(y ~ x))

我们可以使用通常的列表语法来提取我们想要的内容。例如,

m[[4]]

返回模型拟合的数据框

R> m[[4]]
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  0.44265     0.2443  1.8123   0.1075
x            0.07066     0.4460  0.1584   0.8781

m[[6]]会返回Residual standard error

R> m[[6]]
[1] 0.2928

有一些便利功能,例如coefficients(m)

答案 1 :(得分:3)

使用resid(m)访问残差。

编辑:从评论中,您似乎想要sum(resid(m) ^ 2)

答案 2 :(得分:0)

提取残留标准偏差'Sigma'

sigma(m)