作者: afenxi来源: afenxi时间:2017-04-08 11:32:40
摘要:数据分析网整理自tbkken的《R语言入门25招》,一招招技能带你走进R语言。
问题
有两个向量,x和y,其中是成对的观察:(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。
数据经常会放在数据框中,这就需要对数据框中的两列数据做回归。这里,x和y是数据框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