R語言組lasso改進邏輯回歸變量選擇分析高血壓、易感因素、2型糖尿病和LDL

2023-06-29     tecdat拓端

原標題:R語言組lasso改進邏輯回歸變量選擇分析高血壓、易感因素、2型糖尿病和LDL

全文連結:https://tecdat.cn/?p=33015

原文出處:拓端數據部落公眾號

本文用邏輯回歸和lasso算法醫學上的疾病的相關因素,幫助客戶確定哪種模型可用於某種疾病的相關因素分析。3個模型:Logistic模型、成組Lasso Logistic模型、由組Lasso選出協變量的Logistic模型,有3個易感因素、高血壓、2型糖尿病和LDL,得出誤差率和變量數目的圖。

為了比較不同調整參數篩選解釋變量的效果, 建立如下三個包含不同協變量的模型並通過十折交叉驗證計算判斷誤差:

1)模型 I:包含所有待選協變量的 Logistic 模型;

2)模型 II:成組 Lasso Logistic 模型;

3)模型 III:僅包含由成組 Lasso 選出協變量的 Logistic 模型

查看數據變量

讀取數據

data=read.spss("test1_3.sav", to.data.frame=T)

head(data)

1)模型I:包含所有待選協變量的Logistic模型;

包含所有待選協變量的Logistic模型是一種統計模型,用於預測二分類結果的機率。協變量是指與待預測結果相關的特徵或變量。在這種模型中,使用了所有待選的協變量作為自變量,並基於這些自變量與待預測結果之間的關係,建立了一個數學模型。

具體而言,模型使用logistic函數(也稱為sigmoid函數)來建立自變量和待預測結果之間的關係。logistic函數將自變量的線性組合映射到一個0到1之間的機率值,表示該樣本屬於某個特定類別的機率。

在構建模型時,需要確定每個協變量的係數(也稱為權重),以及和結果之間的關係。通常使用最大似然估計方法來確定這些係數,以最大化模型對觀測數據的擬合度。

該模型的目標是通過對待選協變量的使用,最大化對結果的預測準確性和可解釋性。然而,選擇合適的協變量需要基於領域知識、統計分析和模型評估等綜合考慮。

需要注意的是,選擇所有待選協變量並不意味著所有的協變量都是對結果有幫助的,也可能存在一些多餘或不相關的協變量。因此,在模型構建過程中,還需要進行變量篩選、特徵工程和模型評估等步驟來確保選擇的協變量和模型的可靠性和精確性。

split <- sample(1:nrow(data),nrow(data)*(2/3))

data$HP=as.numeric(data$HP!=0)

HP ~.,family=binomial(link='logit'

混淆矩陣

混淆矩陣是用於評估分類模型性能的一種表格形式。它是由預測結果和實際結果組成的二維矩陣,其中行表示實際類別,列表示預測類別。每個單元格的值代表了在特定類別下的樣本數量。

混淆矩陣的四個主要單元格包括:

通過混淆矩陣,我們可以計算出一些常用的分類模型評估指標,例如準確率(Accuracy)、精確率(Precision)、召回率(Recall)和 F1 值等。這些指標可以幫助我們了解模型在不同類別上的表現,並判斷其分類能力的好壞。

res <- data.frame(real,predict =ifelse(predict>0.5,'good','bad'))

table(res)

auc

AUC (Area Under the Curve) 是一種常用的評估二分類模型性能的指標。它表示模型在不同閾值下的真陽性率(True Positive Rate,也稱為召回率)與假陽性率(False Positive Rate)之間的關係。

AUC的取值範圍在0到1之間,其中0.5表示模型的預測性能與隨機猜測相當,而1表示模型完美地預測了正例和負例。

AUC的計算方法是首先將模型的預測結果按照機率從高到低進行排序,然後根據不同的閾值,計算出對應的真陽性率和假陽性率。最後,通過對這些真陽性率和假陽性率的數值進行積分,得到AUC的值。

AUC的優點是不受分類閾值的影響,能夠全面評估模型的性能。它適用於不平衡數據集和多類別問題,並且對於數據集中存在噪聲和異常值的情況也比較魯棒。因此,AUC是評估和比較分類模型性能的重要指標之一。

performance( prediction( predict, real ), "auc" )@y.values[[1]]

## [1] 0.7642045

2)模型II:組Lasso Logistic模型;

組Lasso Logistic模型是一種用於分類問題的機器學習模型。它結合了Lasso回歸和邏輯回歸的方法。Lasso回歸是一種用於特徵選擇和正則化的線性回歸方法,它傾向於將參數稀疏化,即將一些參數設為零,從而獲得更簡單的模型。邏輯回歸則是一種常用的分類算法,適用於二分類或多分類問題。

組Lasso Logistic模型通過結合Lasso回歸和邏輯回歸的思想,旨在同時實現特徵選擇和分類任務。它在建模過程中考慮了特徵選擇的問題,從而可以處理高維數據集中的冗餘特徵,並且能夠在給定的特徵集中選擇出對分類任務最有用的特徵。通過對損失函數進行優化,模型可以找到最佳的參數設置,以最大程度地減小預測錯誤,並增強模型的泛化能力。

組Lasso Logistic模型在許多實際應用中都表現出很好的性能。它在生物信息學、文本分類、圖像識別和金融預測等領域都有廣泛的應用。通過結合Lasso回歸的特徵選擇能力和邏輯回歸的分類能力,組Lasso Logistic模型能夠提供更準確和可解釋的分類結果。

##建立lasso模型

cv.lasso <- cv.ata_train$HP[1:nrow(xmat)] ) )

繪製誤差

coef(cv.lasso

根據lasso篩選出最優的變量

Lasso(Least Absolute Shrinkage and Selection Operator)是一種用於變量選擇和模型建立的統計方法。它通過對目標函數添加一個懲罰項,將某些變量的係數縮減為零,從而實現變量篩選和模型簡化。

根據Lasso篩選出最優的變量的過程可以概括為以下幾個步驟:

總之,根據Lasso篩選出最優的變量是通過使用Lasso算法建立回歸模型,並根據變量係數的收縮情況來確定哪些變量被選中,從而得到最優的變量組合。這可以幫助簡化模型、提高預測準確性,並揭示出對目標變量具有顯著影響的變量。

#篩選變量

data_train=data_train[,c(variables

=binomial(link='logit')

混淆矩陣

table(res)

lot( performance( prediction(

"auc" )@y.values[[1]]

## [1] 0.75

3)模型III:僅包含由成組Lasso選出協變量的Logistic模型。

僅包含由成組Lasso選出協變量的Logistic模型是一種統計模型,用於預測二元分類問題。在此模型中,使用了Lasso方法來選擇協變量(也稱為特徵或自變量),該方法可以幫助確定對目標變量有最強預測能力的協變量。

Lasso方法是一種特徵選擇和正則化技術,它可以通過對模型中的係數進行懲罰,將某些係數推向零,從而實現變量選擇的效果。這意味著,在僅包含由成組Lasso選出的協變量的Logistic模型中,只有少數對預測目標有重要影響的協變量被保留下來,而其他對預測目標沒有重要影響的協變量則被排除。

Logistic模型是一種廣泛應用於分類問題的模型。它使用邏輯函數(也稱為sigmoid函數)來將輸入特徵映射到0和1之間的機率值,該機率值表示樣本屬於某個類別的可能性。在僅包含由成組Lasso選出的協變量的Logistic模型中,利用這些協變量的值來預測樣本的分類標籤。

這種模型在實際應用中具有一定的優勢,因為它可以減少模型的複雜性和計算成本,同時提供準確的預測能力。然而,需要注意的是,選擇哪些協變量是一個重要的決策,並且應該考慮相關領域的專業知識和實際需求。

reg(X, y ,colnames(data)[-14], penalty

select(fit, "AIC")

最受歡迎的見解

1.R語言多元Logistic邏輯回歸 應用案例

2.面板平滑轉移回歸(PSTR)分析案例實現

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

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

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

6.r語言中對LASSO回歸,Ridge嶺回歸和Elastic Net模型實現

7.在R語言中實現Logistic邏輯回歸

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

9.R語言如何在生存分析與Cox回歸中計算IDI,NRI指標

文章來源: https://twgreatdaily.com/zh-hk/724126b672030f59067e09c57a05c6c3.html