R语言入门秘录21/25:多元线性回归

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

问题

有若干个预测变量(比如uvw)和一个响应变量(y)。你觉得这些预测变量和响应变量间有线性关系,要对其做线性回归。

解决方案

lm函数。在公式的右侧指定多个预测变量,用加号(+)连接:

代码
1 > lm(y ~ u + v + w)

讨论

显然,多元线性回归是简单的线性回归的扩展。可以有多个预测变量,还是用OLS计算多项式的系数。三变量的回归等同于这个线性模型:
yi = β0 + β1ui + β2vi + β3wi + εi
R中,简单线性回归和多元线性回归都是用lm函数。只要在模型公式的右侧增加变量即可。输出中会有拟合的模型的系数:

代码
1

2

3

4

5

6

7

8

> lm(y ~ u + v + w)

Call:

lm(formula = y ~ u + v + w)

Coefficients:

(Intercept) u v w

1.4222 1.0359 0.9217 0.7261

随着变量数的增加,lmdata参数显得愈发的重要,它可以让你将数据保存在一个数据框中,而无需使用一大堆的变量。假设你的数据保存在数据框中,例如这里的dfrm变量:

代码
1

2

3

4

5

6

7

8

9

10

11

12

13

14

> dfrm y u v w

1 6.584519 0.79939065 2.7971413 4.366557

2 6.425215 -2.31338537 2.7836201 4.515084

3 7.830578 1.71736899 2.7570401 3.865557

4 2.757777 1.27652888 0.4191765 2.547935

5 5.794566 0.39643488 2.3785468 3.265971

6 7.314611 1.82247760 1.8291302 4.518522

7 2.533638 -1.34186107 2.3472593 2.570884

8 8.696910 0.75946803 3.4028180 4.442560

9 6.304464 0.92000133 2.0654513 2.835248

10 8.095094 1.02341093 2.6729252 3.868573

.

. 等等

.

lmdata参数设为dfrmR就会在这个数据框的各列数据中寻找回归分析所需的各个变量:

代码
1

2

3

4

5

6

7

8

> lm(y ~ u + v + w, data=dfrm)

Call:

lm(formula = y ~ u + v + w, data = dfrm)

Coefficients:

(Intercept) u v w

1.4222 1.0359 0.9217 0.7261

扩展阅读

第20招中介绍了简单的线性回归。

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

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

相关文章

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