问题
有若干个预测变量(比如u、v和w)和一个响应变量(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) |
随着变量数的增加,lm的data参数显得愈发的重要,它可以让你将数据保存在一个数据框中,而无需使用一大堆的变量。假设你的数据保存在数据框中,例如这里的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 . . 等等 . |
将lm的data参数设为dfrm,R就会在这个数据框的各列数据中寻找回归分析所需的各个变量:
代码 | |
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) 1.4222 1.0359 0.9217 0.7261 |
扩展阅读
第20招中介绍了简单的线性回归。
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。