當前位置:股票大全官網 - 股票投資 - r語言的廣義加性模型GAM

r語言的廣義加性模型GAM

原文鏈接:/?p=20882?

1簡介

本文討論了為什麽使用廣義加法模型。是個不錯的選擇。為此,我們需要先看看線性回歸,看看為什麽它在某些情況下可能不是最佳選擇。

2回歸模型

假設我們有壹些具有兩個屬性y和x的數據。如果它們是線性相關的,它們可能如下所示:

a & lt-ggplot(my_data,aes(x=X,y=Y))+geom_point()+

為了檢驗這種關系,我們可以使用回歸模型。線性回歸是壹種通過使用x來預測變量y的方法。將其應用於我們的數據會將壹組值預測為紅線:

a+geom_smooth(col="red ",method="lm")+

這就是“線性方程”。根據這個方程,我們可以從Y軸上直線開始的位置(“截距”或α)開始,X的每個單位增加了多少Y(“斜率”),我們稱之為X或β的系數)。有壹點自然的波動,如果沒有,所有的點都是完美的。我們稱之為“剩余”(?)。數學上:

或者,如果我們用實際數字來代替,我們會得到以下結果:

本文通過考慮每個數據點和線之間的差異(“殘差”)來估計模型,然後最小化該差異。我們在線的上方和下方都有正負誤差,所以通過將它們平方並使“平方和”最小化,它們對於估計都是正的。這被稱為“普通最小二乘法”或OLS。

3什麽是非線性關系?

那麽,如果我們的數據看起來像這樣,我們應該怎麽做:

我們剛剛看到的模型的壹個關鍵假設是y和x是線性相關的。如果我們的y不是正態分布,那麽用廣義線性模型?(內爾德&威德伯恩,1972),其中y由鏈接函數變換,但再次假設f(y)和x線性相關。如果不是這樣,關系在x的範圍內變化,可能不是最合適的。我們有壹些選擇:

我們可以使用線性擬合,但如果我們這樣做,我們會高於或低於某些部分的數據。

我們可以分為幾類。下圖我用了三個,是比較合理的選擇。同樣,我們可能在數據的某些部分之下或之上,在類別之間的邊界附近似乎是準確的。比如x = 49,y和x = 50差別很大嗎?

我們可以使用多項式之類的變換。接下來我用的是三次多項式,所以模型適用於:這些的組合使得函數平滑近似的變化。這是壹個很好的選擇,但它可能會出現極大的波動,並可能導致數據中的相關性,從而降低擬合度。

請點擊輸入圖片說明。

請點擊輸入圖片說明。

4樣條曲線

多項式的進壹步細化是擬合“分段”多項式,我們在數據範圍內將多項式鏈接在壹起來描述形狀。樣條是壹種分段多項式,因繪圖員繪制曲線時使用的工具而得名。物理樣條曲線是壹種柔性的長條,可以通過重量來彎曲和固定。在構造數學樣條曲線時,我們有多項式函數,二階導數是連續的,在接合點處是固定的。

下面是壹個ggplot2?對象。對象?geom_smooth?的公式包含ns?函數中的“自然三次樣條”?。該樣條曲線為三次曲線,使用10節。

請點擊輸入圖片說明。

請點擊輸入圖片說明。

5平滑函數

樣條曲線可以是平滑的或“不穩定的”,這可以通過改變節點數(k)或使用平滑懲罰γ來控制。如果增加結數,會更“搖搖晃晃”。這可能更接近數據,誤差會更小,但我們開始“過度擬合”關系,擬合我們數據中的噪聲。當我們結合平滑懲罰時,我們將懲罰模型中的復雜性,這將有助於減少過擬合。

請點擊輸入圖片說明。

6廣義加性模型(GAM)

廣義可加模型(GAM)(Hastie,1984)在回歸模型中使用光滑函數(如樣條曲線)作為預測器。這些模型是嚴格可加的,這意味著我們不能像正態回歸壹樣使用交互項,但我們可以通過重新參數化作為更平滑的模型來達到同樣的效果。事實並非如此,但本質上,我們正在轉向壹個模型,比如:

請點擊輸入圖片說明。

木頭做的?(2017)中GAM更正式的例子?是:

請點擊輸入圖片說明。

其中包括:

μi≡E(Yi),y的期望

易?EF(μi,?I),Yi是響應變量,根據均值μi和形狀參數?的指數族分布。

Ai是任何嚴格參數化模型組件的模型矩陣的壹行,其中θ是相應的參數向量。

Fi是協變xk的光滑函數,其中k是每個函數的基。

如果妳想建立壹個回歸模型,但懷疑平滑擬合會做得更好,GAM是壹個不錯的選擇。它們適用於非線性或噪聲數據。

7 gam配件

那麽,怎麽樣?為以上s型數據建立?GAM模式?這裏我就用三次樣條回歸?:

gam(Y ~ s(X,bs="cr ")

上述設置意味著:

s()指定了壹個平滑器。還有其他選項,但是s是壹個很好的默認選項。

BS = "Cr "告訴它使用三次回歸樣條(' basis ')。

s函數計算要使用的默認結數,但您可以將其更改為k=10,例如10結。

8模型輸出:

查看模型摘要:

####族:高斯##鏈接函數:恒等式##參數系數:##估計標準差。誤差測試值Pr(& gt;|t|)##(截距)?43.9659 0.8305 ?52.94 ?& lt2e-16 ***## - ##有效位。代碼:?0 '***' 0.001 '**' 0.01 '*' 0.05 '.'0.1 ' ' 1####光滑項的近似意義:## edf Ref.df F p-value## s(X) 6.087?7.143 296.3 ?& lt2e-16 ***## - ##有效位。代碼:?0 '***' 0.001 '**' 0.01 '*' 0.05 '.'0.1 ' ' 1#### R-sq。(adj) =?0.876 ?解釋偏差= 87.9%## GCV = 211.94?估計規模。= 206.93 n = 300

顯示我們截距的模型系數,所有非平滑參數將在此顯示。

每個平滑項的壹般含義如下。

這是基於“有效自由度”(edf),因為我們使用的樣條函數可以擴展到很多參數,但我們也在懲罰它們,減少它們的影響。

9檢查型號:

應該?gam.check()?該函數可用於查看殘差圖,但它也可以測試平滑器,以查看是否有足夠的結來描述數據。但是如果p值很低,就需要更多的結。

請點擊輸入圖片說明。

####方法:GCV?優化器:magic##平滑參數選擇在4次叠代後收斂。收斂時的RMS GCV分數梯度是1.107369e-05。##黑森是肯定的。##型號排名=?10 / 10####基礎尺寸(k)檢查結果。低p值(k指數& lt1)可能##表示k太低,尤其是當edf接近k '時。####好嗎?edf k指數p值# # s(X)9.00 6.09 1.1 0.97

10比線性模型好嗎?

讓我們比較壹下同樣數據的普通線性回歸模型:

方差分析(我的lm,我的gam)

##方差分析表####模型1: Y ~ X##模型2: Y ~ s(X,bs = "cr")##?Res.Df?RSS Df平方和?公關(& gtf)# # 1 298.00 88154 # # 2 292.91 60613 5.0873 27540 26.161 & lt;2.2e-16 ***## - ##有效位。代碼:?0 '***' 0.001 '**' 0.01 '*' 0.05 '.'0.1 ' ' 1

我們的ANOVA函數在這裏執行f檢驗,我們的GAM模型明顯優於線性回歸。

11匯總

我們看了什麽是回歸模型,以及我們如何解釋壹個變量Y和另壹個變量x。基本假設之壹是線性關系,但情況並非總是如此。當關系在x的範圍內變化時,我們可以用函數來改變這個形狀。壹個好的方法是在“結”點將光滑的曲線連接在壹起,我們稱之為“樣條曲線”

我們可以在常規回歸中使用這些樣條曲線,但是如果在GAM的後臺使用,我們還要估計回歸模型,以及如何讓我們的模型更平滑。

上面的例子展示的是基於樣條的GAM,其擬合度遠好於線性回歸模型。

12參考:

內爾德,J. A。韋德爾伯恩,郵編:1972。廣義線性模型。皇家統計學會雜誌。A系列(通用),135,370-384。

哈勒爾,F. E .,JR. 2001。回歸建模策略,紐約,斯普林格出版社,紐約。

請點擊輸入圖片說明。

最流行的觀點

多元Logistic回歸在1中的應用案例。r語言

2.面板平滑過渡回歸(PSTR)分析案例的實現。

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

4.R語言泊松回歸模型案例研究

5.R語言回歸中的Hosmer-Lemeshow擬合優度檢驗

6.套索回歸、嶺脊回歸和彈性網模型的r語言實現

7.用R語言實現邏輯回歸。

8.python使用線性回歸來預測股票價格。

9.R語言如何計算生存分析和Cox回歸中的IDI和NRI指數?