R - Multiple Regression

多元回归是线性回归到两个以上变量之间关系的扩展.在简单线性关系中,我们有一个预测变量和一个响应变量,但在多元回归中,我们有多个预测变量和一个响应变量.

多元回归的一般数学方程是 :

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    wt
Mazda RX4          21.0  160    110   2.620
Mazda RX4 Wag      21.0  160    110   2.875
Datsun 710         22.8  108     93   2.320
Hornet 4 Drive     21.4  258    110   3.215
Hornet Sportabout  18.7  360    175   3.440
Valiant            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 &plus; hp &plus; 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&plus;Xdisp.x1&plus;Xhp.x2&plus;Xwt.x3
or
Y = 37.15&plus;(-0.000937)*x1&plus;(-0.0311)*x2&plus;(-3.8008)*x3

应用公式预测新值

我们可以使用上面创建的回归方程当提供一组新的排量,马力和重量值时,预测里程数.

对于disp = 221,hp = 102和wt = 2.91的汽车,预测里程为 :

Y = 37.15&plus;(-0.000937)*221&plus;(-0.0311)*102&plus;(-3.8008)*2.91 = 22.7104