使用lm()确定R拟合的优度

时间:2011-08-18 21:11:58

标签: r lm

我学会了在我的R脚本中使用lm来获得与某些点的线性拟合。所以,我做了那个(效果很好),打印出了合适的东西:

lm(formula = y2 ~ x2)

Residuals:
         1          2          3          4 
 5.000e+00 -1.000e+01  5.000e+00  7.327e-15 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept)   70.000     17.958   3.898  0.05996 . 
x2            85.000      3.873  21.947  0.00207 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 8.66 on 2 degrees of freedom
Multiple R-squared: 0.9959, Adjusted R-squared: 0.9938 
F-statistic: 481.7 on 1 and 2 DF,  p-value: 0.00207 

我正在努力确定判断这种合适程度的最佳方式。我需要将这个拟合与其他几个(使用lm()函数也是线性的)进行比较。从这个总结中得出什么价值才是判断这种合适程度有多好的最好方法?我在考虑使用残差标准误差。有什么建议。另外,如何从fit变量中提取该值?

3 个答案:

答案 0 :(得分:2)

这段代码会做类似的事情:

 y2 <- seq(1, 11, by=2)+rnorm(6)  # six data points to your four points
 x2=1:6
 lm(y2 ~ x2)
 summary(lm(y2 ~ x2))

调整后的R ^ 2是“拟合度”度量。据说,y2中99%的方差可以通过y2到x2的直线拟合来“解释”。是否要根据该结果仅使用4个数据点来解释您的模型是一个判断问题。这对我来说似乎有点危险。

要提取您使用的剩余平方和:

summary(lm(y2~x2))$sigma

有关详细信息,请参阅此处:

?summary.lm

答案 1 :(得分:2)

如果您想直接访问由summary生成的作品,您只需调用summary并将结果存储在变量中,然后检查生成的对象:

rs <- summary(lm1)
names(rs)

也许rs$sigma正是您要找的?

修改

在有人责备我之前,我应该指出,对于某些信息,这不是推荐的访问方式。相反,您应该使用指定的提取器,如residuals()coef

答案 2 :(得分:1)

您可以使用

查看一些不错的回归诊断图
plot(YourRegression, which=1:6)

其中= 1:6给出了所有六个图。 RESET测试和bptest将测试错误指定和异方差性:

resettest(...)
bptest(...)

有很多资源可以考虑这类事情。 Fitting Distributions in R就是其中之一,而Faraway的“Practical Regression and Anova”则是R经典之作。我基本上从Farnsworth的论文/书中学到了R的计量经济学,尽管我不记得他是否有任何关于拟合的东西。

如果你要在R中做很多计量经济学,Applied Econometrics in R是一本很好的付费书。我经常使用R for Economists网页。

这是第一个浮现在脑海中的人。我会再考虑一下。