R語言多元(多重)迴歸
多元(多重)迴歸是線性迴歸擴展到兩個以上變量之間的關係。在簡單的線性關係中,我們有一個預測因子和一個響應變量,但在多元迴歸中,可以有多個預測變量和一個響應變量。
多元迴歸的一般數學方程爲 -
y = a + b1x1 + b2x2 +...bnxn
以下是使用的參數的描述 -
- y - 是響應變量。
- a,b1,b2 … bn - 是係數。
- x1,x2,… xn - 是預測變量。
我們使用R中的lm()
函數創建迴歸模型。該模型使用輸入數據確定係數的值。 接下來,可以使用這些係數來預測給定的一組預測變量的響應變量的值。
lm()函數
該函數創建預測變量與響應變量之間的關係模型。
語法
lm()
函數在多元迴歸中的基本語法是 -
lm(y ~ x1+x2+x3...,data)
以下是使用的參數的描述 -
- formula - 即:
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 + 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.x3
## 或者
Y = 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