R语言中简单线性回归的计算及绘图

2019-06-05  本文已影响0人  研究僧小蓝哥

之前一直不知道怎么在R语言中实现线性回归的公式的简便计算。今天,偶然发现了这个问题的解决办法。真的是悠然见南山啊!!!!!!!!!!!!!!!!!!!

假设有如下的数据:

> x <- c(1,2,3,4,5,6,7,8,9,11)

> y <- c(12,11,10,9,8,7,6,5,4,3)

然后对其进行线性拟合:

> fit <- lm(y ~ x)

直接运行fit,得到如下的结果:

> fitCall:

lm(formula = y ~ x)

Coefficients:

(Intercept)            x 

    12.7727      -0.9416 

此时我们就能得到这个线性拟合的方程了:

y = -0.9416x + 12.7727

但是还没有常见的R2啊!

这个东西到底隐藏在哪里了呢?R语言作为数据处理的神器,不可能还要User再去计算一遍啊!

找啊找,找啊找,呵,找到了.........

> summary(fit)

运行这段代码,就能找到我们要的R2了。

> summary(fit)

Call:

lm(formula = y ~ x)

Residuals:

     Min       1Q   Median       3Q      Max 

-0.29870 -0.16721 -0.03571  0.09578  0.58442 

Coefficients:

            Estimate Std. Error t value Pr(>|t|)    

(Intercept) 12.77273    0.17916   71.29 1.67e-12 ***

x           -0.94156    0.02812  -33.49 6.91e-10 ***

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.2703 on 8 degrees of freedom

Multiple R-squared:  0.9929, Adjusted R-squared:  0.992 

F-statistic:  1121 on 1 and 8 DF,  p-value: 6.905e-10

斜体的这个就是我们要的R2了。

你以为这就完了?

包括那些显著性检验结果都有了啊喂。

那我们再画个图看看呗:

> plot(x,y)

> abline(fit)

Xiang

So,y = -0.9416x + 12.7727, R2= 0.992.


还是得多读书啊!

(简书排版代码真的是很感人了,还是某笔记好!)

上一篇下一篇

猜你喜欢

热点阅读