R语言入门秘录20/25:简单的线性回归

数据分析网整理自tbkken的《R语言入门25招》,一招招技能带你走进R语言。

问题

有两个向量,xy,其中是成对的观察:(x1, y1), (x2, y2), …, (xn, yn)。你觉得两者间有某种线性关系,想构建两者间的回归模型。

解决方案

lm函数做线性回归,得到系数:

代码
1

2

3

4

> lm(y ~ x)

Call: lm(formula = y ~ x)

Coefficients:

(Intercept) 17.72

讨论

简单的线性回归涉及到两个变量:一个是预测(predictor)变量,通常称为x;另一个是响应(response)变量,通常称为y。回归会用常见的最小二乘算法拟合线性模型:
yi = β0 + β1xi + εi
其中β0β1是回归系数,εi表示误差。

lm函数可以实现线性回归。主要参数是模型公式,例如y ~ x。公式中波浪号(~)左侧的是响应变量,右侧是预测变量。函数会估计回归系数β0β1,分别以截距(intercept)和x的系数表示:

代码
1

2

3

Coefficients:

(Intercept) x

17.72 3.25

这个例子中得到的回归等式就是:yi = 17.72 + 3.25xi + εi

数据经常会放在数据框中,这就需要对数据框中的两列数据做回归。这里,xy是数据框dfrm中的两列数据:

代码
1

2

3

4

5

6

7

8

9

10

11

12

13

14

> dfrm x y

1 0.04781401 5.406651

2 1.90857986 19.941568

3 2.79987246 23.922613

4 4.46755305 32.432904

5 3.76490363 44.259268

6 5.92364632 61.151480

7 8.04611587 26.305505

8 7.11097986 43.606087

9 9.73645966 58.262112

10 9.19324543 57.631029

.

. (etc.)

.

lm函数中可以用data参数指定数据框。如果设置了数据狂,lm函数就会从指定的数据框中取数据,而不是工作空间:

代码
1

2

3

4

5

6

7

> lm(y ~ x, data=dfrm)

Call:

lm(formula = y~ x, data=dfrm)

Coefficients:

(Intercept) x

17.72 3.25

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。

(0)
小胖的头像小胖编辑
上一篇 2016-01-13 14:45
下一篇 2016-01-15 14:45

相关文章

关注我们
关注我们
分享本页
返回顶部