用R進行Lasso regression回歸分析

2021-02-20 生信修煉手冊

歡迎關注」生信修煉手冊」!

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種正則化的回歸分析,功能十分強大,更多細節請參考官方文檔。

往期精彩

掃描下方二維碼,關注我們,解鎖更多精彩內容!



相關焦點

  • Stata16 新功能之Lasso系列(三):使用Lasso時,如何進行統計推斷(雙重選擇回歸)
    描述性分析 在回歸之前,先進行簡單的描述性分析。考察變量的主要統計特徵: . sum  線性回歸 在回歸分析中,先進行常規的線性回歸(OLS)。接著,使用以下命令進行 OLS 回歸: . regress react no2_class no2_home $cc i.($fc), r
  • 白話ML(6):用Lasso Regression踢出渾水摸魚的變量
    ML Model白話ML(2):產品經理都在用的線性回歸模型白話ML(3):理解機器學習中的Bias與Variance白話ML(4):公允的裁判-交叉驗證Cross-Validation評價模型白話ML(5):更高端的線性回歸模型 - Ridge Regression (上篇文章)本文白話什麼:
  • 線性回歸進階——嶺回歸和lasso回歸
    說起線性回歸大家肯定都不陌生,我們經常用這種手段來揭示一組變量間的相關性,一般情況下,我們用線性函數來對數據做出擬合,通過殘差來計算差異度
  • 醫學統計與R語言:Adaptive LASSO
    model. type.measure="class" applies to binomial and multinomial logistic regression only, and gives misclassification error. type.measure="auc" is for two-class logistic regression only, and gives area
  • 手把手帶你畫高大上的lasso回歸模型圖
    各位芝士好友,今天我們來聊一聊lasso回歸算法。與預後有關的文章,傳統的做法一般會選擇多變量cox回歸,高級做法自然就是我們今天的lasso分析。
  • Awesome R資源大全中文版來了,全球最火的R工具包一網打盡(二)
    官網:http://cran.r-project.org/web/packages/e1071/index.htmlearth - 多元自適應回歸模型.    官網:http://cran.r-project.org/web/packages/earth/index.htmlelasticnet - 稀疏估計和稀疏主成分分析.
  • Awesome R資源大全中文版來了,全球最火的R工具包一網打盡,超過300+工具,還在等什麼?
    官網:http://cran.r-project.org/web/packages/e1071/index.htmlearth - 多元自適應回歸模型.    官網:http://cran.r-project.org/web/packages/earth/index.htmlelasticnet - 稀疏估計和稀疏主成分分析.
  • 白話ML(5):更高端的線性回歸模型-Ridge Regression
    ML Model白話ML(2):產品經理都在用的線性回歸模型白話ML(3):理解機器學習中的Bias與Variance白話ML(4):公允的裁判-交叉驗證Cross-Validation評價模型本文白話什麼:更高端的回歸預測:Ridge Regression
  • 前沿: Lasso, 嶺回歸, 彈性網估計在軟體中的實現流程和示例解讀
    回歸方法深度剖析(OLS, RIDGE, ENET, LASSO, SCAD, MCP, QR),2.高維回歸方法: Ridge, Lasso, Elastic Net用了嗎,3.共線性、過度/不能識別問題的Solutions,4.
  • 一句代碼完成lasso回歸
    如果是臨床隊列,通常是會跟生存分析進行交集,或者多個數據集差異結果的交集,比如:多個數據集整合神器-RobustRankAggreg包 ,這樣的基因集就是100個以內的數量了,但是仍然有縮小的空間,比如lasso等統計學算法,最後搞成10個左右的基因組成signature即可順利發表。
  • 詳解用 statsmodels 進行回歸分析
    接下來筆者就用代碼來展示一下如何用statsmodels進行線性回歸分析,對每一個步驟和每一個結果,筆者也都會詳細解釋,目的就是讓大家了解statsmodels的用法。在statsmodels中進行回歸分析有兩種方法,分別是statsmodels.api和statsmodels.formula.api,前者和我們平常用的各種函數沒啥區別,輸入參數即可,但後者卻要求我們自己指定公式,其中formula的意思就是公式,兩者的具體用法還是直接看代碼吧。
  • 用Python進行機器學習(附代碼、學習資源)
    使用Python庫、流水線功能以及正則化方法對非線性數據進行建模。在數據科學和分析領域中,對非線性數據進行建模是一項常規任務。但找到一個結果隨自變量線性變化的自然過程很不容易。因此,需要有一種簡便並且穩健的方法來快速將測量數據集與一組變量進行擬合。我們假定測量數據可能包含了一種複雜的非線性函數關係。這應該是數據科學家或機器學習工程師常用的工具。
  • 線性回歸(Linear Regression)原理小結
    線性回歸推廣5. 加正則化項的線性回歸6. 線性回歸模型綜合評價7. 參考1.線性回歸推廣4.1 多項式回歸    以一個只有兩個特徵的p次方多項式回歸的模型為例進行說明:,然後令 ,這樣我們就得到了下式:此時,一個二元的多項式回歸,轉化為了一個五元的線性回歸,然後便可以使用線性回歸的方法來完成算法。
  • 機器學習測試筆記(12)——線性回歸方法(下)
    4.嶺回歸嶺回歸(英文名:Ridgeregression, Tikhonov regularization)是一種專用於共線性數據分析的有偏估計回歸方法,實質上是一種改良的最小二乘估計法,通過放棄最小二乘法的無偏性,以損失部分信息、降低精度為代價獲得回歸係數更為符合實際、更可靠的回歸方法,對病態數據的擬合要強於最小二乘法。
  • R語言 | 回歸分析(二)
    通過寫相關代碼我們了解到,線性回歸分析本質上是不斷添加參數以和無參數的null model (base model)進行比較,從而檢驗自變量是否對因變量有影響。首先是線性,實際上這個問題我們在前面也提到過,也很顯而易見:「線性」回歸分析,如果變量之間的相關性不是線性的,你就不能使用線性回歸分析了。這個假設不需要額外地檢驗,在我們進行線性回歸模型擬合的時候,採用了R2來判斷擬合優度。如果R2接近0,說明我們的擬合併不好,也側面說明我們的數據並不是線性相關。第二個要求是殘差正態性,即殘差的分布必須服從正態分布。
  • 一堆R語言學習資料
    ahaz - Regularization for semiparametric additive hazards regression.lars - Least Angle Regression, Lasso and Forward Stagewiselasso2 - L1 constrained estimation aka 『lasso』LiblineaR - Linear Predictive Models Based On The Liblinear C/C++ Library
  • R數據分析:逐步回歸的做法和原理,案例剖析
    ", to fit linear regression with backward selection後退"leapForward", to fit linear regression with forward selection前進"leapSeq", to fit linear regression with stepwise selection 逐步我們用到的數據為
  • R語言 | 回歸分析(四)
    邏輯回歸中,預測變量可以是連續型變量或分類變量,得到的結果是分類變量。根據結果的分類個數,邏輯回歸可以被分為二元邏輯回歸和多元邏輯回歸。glm( )是邏輯回歸所用函數。為了將非線性的結果轉變為線性內容,我們可以採用優勢比進行轉化。
  • 使用python+sklearn實現用於稀疏信號的Lasso和彈性網
    在人工生成的由加性噪聲損壞的稀疏信號上,將Lasso和彈性網(Elastic-Net)回歸模型估計的係數與真實係數進行比較
  • 使用python+sklearn實現在密集和稀疏數據上訓練Lasso
    between coefficients : 7.928463765972842e-12print(__doc__)from time import timefrom scipy import sparsefrom scipy import linalgfrom sklearn.datasets import make_regression