最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

R語(yǔ)言里的非線性模型:多項(xiàng)式回歸、局部樣條、平滑樣條、 廣義相加模型GAM分析

2021-03-04 10:57 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=9706

總覽

在這里,我們放寬了流行的線性方法的假設(shè)。有時(shí)線性假設(shè)只是一個(gè)很差的近似值。有許多方法可以解決此問(wèn)題,其中一些方法可以通過(guò)使用正則化方法降低模型復(fù)雜性來(lái)??解決??。但是,這些技術(shù)仍然使用線性模型,到目前為止只能進(jìn)行改進(jìn)。本文本專注于線性模型的擴(kuò)展

  • 多項(xiàng)式回歸? ? 這是對(duì)數(shù)據(jù)提供非線性擬合的簡(jiǎn)單方法。

  • 階躍函數(shù)??將變量的范圍劃分為??K個(gè)??不同的區(qū)域,以生成定性變量。這具有擬合分段常數(shù)函數(shù)的效果。

  • 回歸樣條??比多項(xiàng)式和階躍函數(shù)更靈活,并且實(shí)際上是兩者的擴(kuò)展。?

  • 局部樣條曲線??類似于回歸樣條曲線,但是允許區(qū)域重疊,并且可以平滑地重疊。

  • 平滑樣條曲線??也類似于回歸樣條曲線,但是它們最小化平滑度懲罰的殘差平方和準(zhǔn)則 。

  • 廣義加性模型??允許擴(kuò)展上述方法以處理多個(gè)預(yù)測(cè)變量。

多項(xiàng)式回歸

這是擴(kuò)展線性模型的最傳統(tǒng)方法。隨著我們?cè)黾?多項(xiàng)式的項(xiàng),多項(xiàng)式回歸使我們能夠生成非線性的曲線,同時(shí)仍使用最小二乘法估計(jì)系數(shù)。

逐步回歸

它經(jīng)常用于生物統(tǒng)計(jì)學(xué)和流行病學(xué)中。

回歸樣條

回歸樣條是?擴(kuò)展多項(xiàng)式和逐步回歸技術(shù)的許多基本函數(shù)之一??。事實(shí)上。多項(xiàng)式和逐步回歸函數(shù)只是基??函數(shù)的特定情況??。

這是分段三次擬合的示例(左上圖)。

為了解決此問(wèn)題,更好的解決方案是采用約束,使擬合曲線必須連續(xù)。

選擇結(jié)的位置和數(shù)量

一種選擇是在我們認(rèn)為變化最快的地方放置更多的結(jié),而在更穩(wěn)定的地方放置更少的結(jié)。但是在實(shí)踐中,通常以統(tǒng)一的方式放置結(jié)。

要清楚的是,在這種情況下,實(shí)際上有5個(gè)結(jié),包括邊界結(jié)。

那么我們應(yīng)該使用多少個(gè)結(jié)?一個(gè)簡(jiǎn)單的選擇是嘗試許多個(gè)結(jié),然后看哪個(gè)會(huì)產(chǎn)生最好的曲線。但是,更客觀的方法是使用交叉驗(yàn)證。

與多項(xiàng)式回歸相比,樣條曲線可以顯示出更穩(wěn)定的效果。

平滑樣條線

我們討論了回歸樣條曲線,該樣條曲線是通過(guò)指定一組結(jié),生成一系列基函數(shù),然后使用最小二乘法估計(jì)樣條系數(shù)而創(chuàng)建的。平滑樣條曲線是創(chuàng)建樣條曲線的另一種方法。讓我們回想一下,我們的目標(biāo)是找到一些非常適合觀察到的數(shù)據(jù)的函數(shù),即最大限度地減少RSS。但是,如果對(duì)我們的函數(shù)沒(méi)有任何限制,我們可以通過(guò)選擇精確內(nèi)插所有數(shù)據(jù)的函數(shù)來(lái)使RSS設(shè)為零。

選擇平滑參數(shù)Lambda

同樣,我們求助于交叉驗(yàn)證。事實(shí)證明,我們實(shí)際上可以非常有效地計(jì)算LOOCV,以平滑樣條曲線,回歸樣條曲線和其他任意基函數(shù)。

平滑樣條線通常比回歸樣條線更可取,因?yàn)樗鼈兺ǔ?huì)創(chuàng)建更簡(jiǎn)單的模型并具有可比的擬合度。

局部回歸

局部回歸涉及僅使用附近的訓(xùn)練觀測(cè)值來(lái)計(jì)算目標(biāo)點(diǎn)x?0?處的擬合度? 。

可以通過(guò)各種方式執(zhí)行局部回歸,尤其是在涉及擬合p??線性回歸模型的多變量方案中尤為明顯??,因此某些變量可以全局?jǐn)M合,而某些局部擬合。

廣義加性模型

?

GAM模型提供了一個(gè)通用框架,可通過(guò)允許每個(gè)變量的非線性函數(shù)擴(kuò)展線性模型,同時(shí)保持可加性。

具有平滑樣條的GAM并不是那么簡(jiǎn)單,因?yàn)椴荒苁褂米钚《?。取而代之?是使用一種稱為反向擬合的方法??。

GAM的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

  • GAM允許將非線性函數(shù)擬合到每個(gè)預(yù)測(cè)變量,以便我們可以自動(dòng)對(duì)標(biāo)準(zhǔn)線性回歸會(huì)遺漏的非線性關(guān)系進(jìn)行建模。我們不需要對(duì)每個(gè)變量分別嘗試許多不同的轉(zhuǎn)換。

  • 非線性擬合可以潛在地對(duì)因變量Y做出更準(zhǔn)確的預(yù)測(cè)??。

  • 因?yàn)槟P褪强杉拥?,所以我們?nèi)匀豢梢詸z查每個(gè)預(yù)測(cè)變量對(duì)Y的影響,???同時(shí)保持其他變量不變。

缺點(diǎn)

  • 主要局限性在于該模型僅限于累加模型,因此可能會(huì)錯(cuò)過(guò)重要的交互作用。

?

范例

多項(xiàng)式回歸和階躍函數(shù)

  1. library(ISLR)

  2. attach(Wage)

我們可以輕松地使用來(lái)擬合多項(xiàng)式函數(shù),然后指定多項(xiàng)式的變量和次數(shù)。該函數(shù)返回正交多項(xiàng)式的矩陣,這意味著每列是變量的變量的線性組合??age,??age^2,??age^3,和??age^4。如果要直接獲取變量,可以指定??raw=TRUE,但這不會(huì)影響預(yù)測(cè)結(jié)果。它可用于檢查所需的系數(shù)估計(jì)。

  1. fit = lm(wage~poly(age, 4), data=Wage)

  2. kable(coef(summary(fit)))

?

現(xiàn)在讓我們創(chuàng)建一個(gè)ages?我們要預(yù)測(cè)的向量。最后,我們將要繪制數(shù)據(jù)和擬合的4次多項(xiàng)式。

  1. ageLims <- range(age)

  2. age.grid <- seq(from=ageLims[1], to=ageLims[2])


  3. pred <- predict(fit, newdata = list(age = age.grid),

  4. se=TRUE)

  1. plot(age,wage,xlim=ageLims ,cex=.5,col="darkgrey")

  2. lines(age.grid,pred$fit,lwd=2,col="blue")

  3. matlines(age.grid,se.bands,lwd=2,col="blue",lty=3)

在這個(gè)簡(jiǎn)單的示例中,我們可以使用ANOVA檢驗(yàn) 。


  1. ## Analysis of Variance Table

  2. ##

  3. ## Model 1: wage ~ age

  4. ## Model 2: wage ~ poly(age, 2)

  5. ## Model 3: wage ~ poly(age, 3)

  6. ## Model 4: wage ~ poly(age, 4)

  7. ## Model 5: wage ~ poly(age, 5)

  8. ## ? Res.Df ? ? RSS Df Sum of Sq ? ? ?F Pr(>F)

  9. ## 1 ? 2998 5022216

  10. ## 2 ? 2997 4793430 ?1 ? ?228786 143.59 <2e-16 ***

  11. ## 3 ? 2996 4777674 ?1 ? ? 15756 ? 9.89 0.0017 **

  12. ## 4 ? 2995 4771604 ?1 ? ? ?6070 ? 3.81 0.0510 .

  13. ## 5 ? 2994 4770322 ?1 ? ? ?1283 ? 0.80 0.3697

  14. ## ---

  15. ## Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

我們看到,_M_1?與二次模型??相比,p值??_M_2?實(shí)質(zhì)上為零,這表明線性擬合是不夠的。 因此,我們可以得出結(jié)論,二次方或三次模型可能更適合于此數(shù)據(jù),并且偏向于簡(jiǎn)單模型。

我們也可以使用交叉驗(yàn)證來(lái)選擇多項(xiàng)式次數(shù)。

?

在這里,我們實(shí)際上看到的最小交叉驗(yàn)證誤差是針對(duì)4次多項(xiàng)式的,但是選擇3次或2次模型并不會(huì)造成太大損失。接下來(lái),我們考慮預(yù)測(cè)個(gè)人是否每年收入超過(guò)25萬(wàn)。

但是,概率的置信區(qū)間是不合理的,因?yàn)槲覀冏罱K得到了一些負(fù)概率。為了生成置信區(qū)間,更有意義的是轉(zhuǎn)換對(duì)??數(shù)??預(yù)測(cè)。

繪制:

  1. plot(age,I(wage>250),xlim=ageLims ,type="n",ylim=c(0,.2))

  2. lines(age.grid,pfit,lwd=2, col="blue")

  3. matlines(age.grid,se.bands,lwd=1,col="blue",lty=3)

逐步回歸函數(shù)

在這里,我們需要拆分?jǐn)?shù)據(jù)。?

table(cut(age, 4))

  1. ##

  2. ## (17.9,33.5] ? (33.5,49] ? (49,64.5] (64.5,80.1]

  3. ## ? ? ? ? 750 ? ? ? ?1399 ? ? ? ? 779 ? ? ? ? ?72

  1. fit <- lm(wage~cut(age, 4), data=Wage)

  2. coef(summary(fit))

?

  1. ## ? ? ? ? ? ? ? ? ? ? ? ?Estimate Std. Error t value ?Pr(>|t|)

  2. ## (Intercept) ? ? ? ? ? ? ?94.158 ? ? ?1.476 ?63.790 0.000e+00

  3. ## cut(age, 4)(33.5,49] ? ? 24.053 ? ? ?1.829 ?13.148 1.982e-38

  4. ## cut(age, 4)(49,64.5] ? ? 23.665 ? ? ?2.068 ?11.443 1.041e-29

  5. ## cut(age, 4)(64.5,80.1] ? ?7.641 ? ? ?4.987 ? 1.532 1.256e-01

?

splines?樣條函數(shù)

在這里,我們將使用三次樣條。

由于我們使用的是三個(gè)結(jié)的三次樣條,因此生成的樣條具有六個(gè)基函數(shù)。?


  1. ## [1] 3000 ? ?6

  2. dim(bs(age, df=6))


  3. ## [1] 3000 ? ?6

  4. ## ? 25% ? 50% ? 75%

  5. ## 33.75 42.00 51.00

擬合樣條曲線。

?

我們也可以擬合平滑樣條。在這里,我們擬合具有16個(gè)自由度的樣條曲線,然后通過(guò)交叉驗(yàn)證選擇樣條曲線,從而產(chǎn)生6.8個(gè)自由度。


  1. fit2$df


  2. ## [1] 6.795

  3. lines(fit, col='red', lwd=2)

  4. lines(fit2, col='blue', lwd=1)

  5. legend('topright', legend=c('16 DF', '6.8 DF'),

  6. col=c('red','blue'), lty=1, lwd=2, cex=0.8)


局部回歸

執(zhí)行局部回歸。?

GAMs

現(xiàn)在,我們使用GAM通過(guò)年份,年齡和受教育程度的樣條來(lái)預(yù)測(cè)工資。由于這只是具有多個(gè)基本函數(shù)的線性回歸模型,因此我們僅使用??lm()?函數(shù)。

為了擬合更復(fù)雜的樣條曲線 ,我們需要使用平滑樣條曲線。

繪制這兩個(gè)模型

?

year?是線性的。我們可以創(chuàng)建一個(gè)新模型,然后使用ANOVA檢驗(yàn) 。


  1. ## Analysis of Variance Table

  2. ##

  3. ## Model 1: wage ~ ns(age, 5) + education

  4. ## Model 2: wage ~ year + s(age, 5) + education

  5. ## Model 3: wage ~ s(year, 4) + s(age, 5) + education

  6. ## ? Res.Df ? ? RSS Df Sum of Sq ? ?F ?Pr(>F)

  7. ## 1 ? 2990 3712881

  8. ## 2 ? 2989 3693842 ?1 ? ? 19040 15.4 8.9e-05 ***

  9. ## 3 ? 2986 3689770 ?3 ? ? ?4071 ?1.1 ? ?0.35

  10. ## ---

  11. ## Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

似乎添加線性year?成分要比不添加線性??成分的GAM好得多。?


  1. ##

  2. ## Deviance Residuals:

  3. ## ? ? Min ? ? ?1Q ?Median ? ? ?3Q ? ? Max

  4. ## -119.43 ?-19.70 ? -3.33 ? 14.17 ?213.48

  5. ##

  6. ## (Dispersion Parameter for gaussian family taken to be 1236)

  7. ##

  8. ## ? ? Null Deviance: 5222086 on 2999 degrees of freedom

  9. ## Residual Deviance: 3689770 on 2986 degrees of freedom

  10. ## AIC: 29888

  11. ##

  12. ## Number of Local Scoring Iterations: 2

  13. ##

  14. ## Anova for Parametric Effects

  15. ## ? ? ? ? ? ? ?Df ?Sum Sq Mean Sq F value ?Pr(>F)

  16. ## s(year, 4) ? ?1 ? 27162 ? 27162 ? ? ?22 2.9e-06 ***

  17. ## s(age, 5) ? ? 1 ?195338 ?195338 ? ? 158 < 2e-16 ***

  18. ## education ? ? 4 1069726 ?267432 ? ? 216 < 2e-16 ***

  19. ## Residuals ?2986 3689770 ? ?1236

  20. ## ---

  21. ## Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

  22. ##

  23. ## Anova for Nonparametric Effects

  24. ## ? ? ? ? ? ? Npar Df Npar F ?Pr(F)

  25. ## (Intercept)

  26. ## s(year, 4) ? ? ? ?3 ? ?1.1 ? 0.35

  27. ## s(age, 5) ? ? ? ? 4 ? 32.4 <2e-16 ***

  28. ## education

  29. ## ---

  30. ## Signif. codes: ?0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

在具有非線性關(guān)系的模型中,???我們可以再次確認(rèn)year?對(duì)模型沒(méi)有貢獻(xiàn)。

接下來(lái),我們 將局部回歸擬合GAM? 。

在調(diào)用GAM之前,我們還可以使用局部回歸來(lái)創(chuàng)建交互項(xiàng)。

我們可以 繪制結(jié)果曲面圖? 。


參考文獻(xiàn)?

1.R語(yǔ)言多元Logistic邏輯回歸 應(yīng)用案例

2.面板平滑轉(zhuǎn)移回歸(PSTR)分析案例實(shí)現(xiàn)

3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)

4.R語(yǔ)言泊松Poisson回歸模型分析案例

5.R語(yǔ)言回歸中的Hosmer-Lemeshow擬合優(yōu)度檢驗(yàn)

6.r語(yǔ)言中對(duì)LASSO回歸,Ridge嶺回歸和Elastic Net模型實(shí)現(xiàn)

7.在R語(yǔ)言中實(shí)現(xiàn)Logistic邏輯回歸

8.python用線性回歸預(yù)測(cè)股票價(jià)格

9.R語(yǔ)言如何在生存分析與Cox回歸中計(jì)算IDI,NRI指標(biāo)

? ?請(qǐng)選中你要保存的內(nèi)容,粘貼到此文本框


R語(yǔ)言里的非線性模型:多項(xiàng)式回歸、局部樣條、平滑樣條、 廣義相加模型GAM分析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
全南县| 浦城县| 巨鹿县| 晴隆县| 临猗县| 南和县| 淮滨县| 赤水市| 蒲城县| 平塘县| 曲水县| 玉门市| 平谷区| 隆昌县| 贺州市| 柳江县| 江安县| 咸阳市| 平塘县| 昌江| 大姚县| 永登县| 石屏县| 武宣县| 慈利县| 德州市| 永春县| 呈贡县| 兴仁县| 开阳县| 内乡县| 长宁县| 重庆市| 新乡县| 苍南县| 沅陵县| 宣化县| 双鸭山市| 大关县| 泗水县| 阜康市|