歡迎關注」生信修煉手冊」!
glmnet是由史丹福大學的統計學家們開發的一款R包,用於在傳統的廣義線性回歸模型的基礎上添加正則項,以有效解決過擬合的問題,支持線性回歸,邏輯回歸,泊松回歸,cox回歸等多種回歸模型,連結如下
https://cran.r-project.org/web/packages/glmnet/index.html
對於正則化,提供了以下3種正則化的方式
ridge regression,嶺回歸
lasso regression,套索回歸
elastic-net regression,彈性網絡回歸
這3者的區別就在於正則化的不同,套索回歸使用回歸係數的絕對值之和作為正則項,即L1範式;嶺回歸採用的是回歸係數的平方和,即L2範式;彈性網絡回歸同時採用了以上兩種策略,其正則項示意如下
可以看到,加號左邊對應的是lasso回歸的正則項,加號右邊對應的是ridge回歸的正則項。在glmnet中,引入一個新的變量α, 來表示以上公式
可以看到,隨著α取值的變化,正則項的公式也隨之變化
alpha = 1, lasso regression
alpha = 0, ridge regression
alpha 位於0到1之間, elastic net regression
利用alpha的取值來確定回歸分析的類型,然後就只需要關注lambda值就可以了。除此之外,還有一個關鍵的參數family, 用來表示回歸模型的類型,其實就是因變量y的數據分布,有以下幾種取值
gaussian, 說明因變量為連續型變量,服從高斯分布,即正態分布,對於的模型為線性回歸模型
binomial, 說明因變量為二分類變量,服從二項分布,對應的模型為邏輯回歸模型
poisson, 說明因變量為非負正整數,離散型變量,服從泊松分布,對應的模型為泊松回歸模型
cox, 說明因變量為生存分析中的因變量,同時擁有時間和狀態兩種屬性,對應的模型為cox回歸模型
mbinomial, 說明因變量為多分類的離散型變量,對應的模型為邏輯回歸模型
mgaussian, 說明因變量為服從高斯分布的連續型變量,但是有多個因變量,輸入的因變量為一個矩陣,對應的模型為線性回歸模型
理解這兩個參數之後,就可以使用這個R包來進行分析了。以線性回歸模型的的lasso分析為例,代碼如下
上述代碼以swiss這個數據集為例,構建了一個多元線性回歸模型,而且抽取了50%的數據作為訓練集,剩下的50%作為測試集,準備好數據集之後,就可以進行分析了
glmnet支持嶺回歸,套索回歸,彈性網絡回歸3種正則化的回歸分析,功能十分強大,更多細節請參考官方文檔。
往期精彩
掃描下方二維碼,關注我們,解鎖更多精彩內容!