多元回归是线性回归到两个以上变量之间关系的扩展.在简单线性关系中,我们有一个预测变量和一个响应变量,但在多元回归中,我们有多个预测变量和一个响应变量.
多元回归的一般数学方程是 :
y = a + b1x1 + b2x2 + ... bnxn
以下是所用参数的说明及减号;
y 是响应变量.
a,b1,b2 ... bn 是系数.
x1,x2,... xn 是预测变量.
我们使用R中的 lm()函数创建回归模型.模型确定的值使用输入数据的系数.接下来,我们可以使用这些系数预测给定预测变量集的响应变量的值.
lm()函数
此函数创建预测变量和响应变量之间的关系模型.
语法
lm()函数的基本语法多元回归是 :
lm(y~x1 + x2 + x3 ...,data)
以下是所用参数的说明及减号;
公式是表示响应变量和预测变量之间关系的符号.
数据是公式的向量将被应用.
示例
输入数据
考虑R环境中可用的数据集"mtcars".它给出了不同车型之间的比较,包括每加仑行驶里程(mpg),汽缸排量("disp"),马力("hp"),汽车重量("wt")以及更多参数.
模型的目标是建立"mpg"作为响应变量与"disp","hp"和"wt"之间的关系作为预测变量.为此,我们从mtcars数据集中创建了这些变量的子集.
input <- mtcars[,c("mpg","disp","hp","wt")]print(head(input))
当我们执行上面的代码时,它产生以下结果 :
mpg disp hp wtMazda RX4 21.0 160 110 2.620Mazda RX4 Wag 21.0 160 110 2.875Datsun 710 22.8 108 93 2.320Hornet 4 Drive 21.4 258 110 3.215Hornet Sportabout 18.7 360 175 3.440Valiant 18.1 225 105 3.460
创建关系模型&得到系数
input <- mtcars[,c("mpg","disp","hp","wt")]# Create the relationship model.model <- lm(mpg~disp+hp+wt, data = input)# Show the model.print(model)# Get the Intercept and coefficients as vector elements.cat("# # # # The Coefficient Values # # # ","\n")a <- coef(model)[1]print(a)Xdisp <- coef(model)[2]Xhp <- coef(model)[3]Xwt <- coef(model)[4]print(Xdisp)print(Xhp)print(Xwt)
当我们执行在上面的代码中,它产生以下结果 :
Call:lm(formula = mpg ~ disp + hp + wt, data = input)Coefficients:(Intercept) disp hp wt 37.105505 -0.000937 -0.031157 -3.800891 # # # # The Coefficient Values # # # (Intercept) 37.10551 disp -0.0009370091 hp -0.03115655 wt -3.800891
为回归模型创建方程
根据上述截距和系数值,我们创建数学方程式.
Y = a+Xdisp.x1+Xhp.x2+Xwt.x3orY = 37.15+(-0.000937)*x1+(-0.0311)*x2+(-3.8008)*x3
应用公式预测新值
我们可以使用上面创建的回归方程当提供一组新的排量,马力和重量值时,预测里程数.
对于disp = 221,hp = 102和wt = 2.91的汽车,预测里程为 :
Y = 37.15+(-0.000937)*221+(-0.0311)*102+(-3.8008)*2.91 = 22.7104