簡單線性迴歸: 當迴歸模型中包含一個因變量和自變量時,dom
多項式迴歸:當只有一個與預測變量,但同時包含變量的冪(如,X^2,X^3)函數
多元線性迴歸:當有不止一個預測變量時spa
例code
#欲利用身高的預測體重,如圖1 > par(ask=TRUE) > opar <- par(no.readonly = TRUE) #複製一份當前的圖形參數設置 > fit <- lm(weight ~ height, data = women) > summary(fit) #單詞爲概要、摘要的意思, 擬合模型的詳細結果 Call: lm(formula = weight ~ height, data = women) Residuals: Min 1Q Median 3Q Max -1.7333 -1.1333 -0.3833 0.7417 3.1167 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -87.51667 5.93694 -14.74 1.71e-09 *** #截距(Intercept) height 3.45000 0.09114 37.85 1.09e-14 *** #迴歸係數 爲3.45 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 1.525 on 13 degrees of freedom Multiple R-squared: 0.991, Adjusted R-squared: 0.9903 #Multiple R-squared:斷定係數 ,Adjusted R-squared:調整斷定係數 F-statistic: 1433 on 1 and 13 DF, p-value: 1.091e-14 > women$weight [1] 115 117 120 123 126 129 132 135 139 142 146 150 154 159 164 > fitted(fit) #列出擬合模型的預測值 1 2 3 4 5 6 7 8 9 10 112.5833 116.0333 119.4833 122.9333 126.3833 129.8333 133.2833 136.7333 140.1833 143.6333 11 12 13 14 15 147.0833 150.5333 153.9833 157.4333 160.8833 > residuals(fit) #列出擬合模型的殘差值 1 2 3 4 5 6 7 2.41666667 0.96666667 0.51666667 0.06666667 -0.38333333 -0.83333333 -1.28333333 8 9 10 11 12 13 14 -1.73333333 -1.18333333 -1.63333333 -1.08333333 -0.53333333 0.01666667 1.56666667 15 3.11666667 > plot(women$height,women$weight, #畫出散點圖 + xlab = "heiht", + ylab = "weight") Hit <Return> to see next plot: abline(fit) > abline(fit) #畫出參考線
圖1orm
經過輸出結果,能夠獲得預測等式:ip
Weight = -87.52 + 3.45*Heightci
由於身高不可能爲0,因此不必給截距項一個物理解釋,它僅僅是一個常量調整項,it
在Pr(>| t |)欄,能夠看到迴歸係數(3.45)顯著不爲0(p<0.0.1),代表身高每增高1英寸,體重將預期增長3.45磅。form
R平方項(0.991)代表模型能夠解釋體重99.1%的方差,它也是實際和預測值之間相關係數的平方。變量
殘差標準誤(1.53lbs)則可認爲是模型用身高預測提供的平均偏差
F 統計量檢驗全部的預測變量與此相應變量是否都在某各概率水平之上,因爲是簡單回只有一個預測變量,此處F檢驗等同於身高迴歸係數的 t 檢驗
由圖1,能夠看到能夠用一個彎曲的曲線來提升預測的精度,擬合一個多項式迴歸試試
#接着上述的例子,添加一個二項式(X^2)來提升迴歸的預測精度,如圖2 > fit2 <- lm(weight ~ height + I(height^2),data=women) #I(height^2)表示身高的平方項 > summary(fit2) Call: lm(formula = weight ~ height + I(height^2), data = women) Residuals: Min 1Q Median 3Q Max -0.50941 -0.29611 -0.00941 0.28615 0.59706 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 261 .87818 25.19677 10.393 2.36e-07 *** height -7.34832 0.77769 -9.449 6.58e-07 *** I(height^2) 0.08306 0.00598 13.891 9.32e-09 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.3841 on 12 degrees of freedom Multiple R-squared: 0.9995, Adjusted R-squared: 0.9994 F-statistic: 1.139e+04 on 2 and 12 DF, p-value: < 2.2e-16 > plot(women$height,women$weight, #畫圖的時候注意加上women$ + xlab = "height", + ylab = "weight") > lines(women$height,fitted(fit2)) #注意:經過lines(x,y)添加參考線 x表示身高,fitted(fit)迴歸的預測值
圖2
新的預測等式爲:
Weight = 261.88- 7.35*Height + 0.083*Height^2
在 p < 0.001水平下,迴歸係數都很是的顯著,模型的方差解釋率已經增長到99.9%,二次項的顯著性(t = 13.89,p <0.001)代表包含了二次項提升了模型的擬合度
多項式等式仍可認爲是線性迴歸模型,由於等式還是預測變量的加權和形式,即便這樣的模型
仍可認爲是線性模型(參數項是線性的),能用這樣的表達式進行擬合
Y ~log(X1) + sin(X2)
相反,下面的例子才能算是真正的非線性模型:
使用car包中的scatterplot()函數,它能夠很容易、方便地繪製二元關係圖
#以下圖3 >library(car) > scatterplot(weight~height,data = women, + spread= F, #選項刪除殘差正負均方根在平滑曲線上的展開和非對稱信息 + smoother.args =list(lty =2), #選擇設置loess擬合曲線爲虛線 + pch =19, #符號設置爲實心圓 + xlab = "Height(inches)", + ylab = "Weight(bs.)"
圖3
功能增強的圖形,既提供了身高和體重的散點圖、線性擬合曲線和平滑擬合(loess)曲線,還在相應邊界展現了每一個變量的箱線圖