R语言中如何进行多元逻辑回归
小編給大家分享一下R語言中如何進行多元邏輯回歸,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
如何進行多元邏輯回歸
可以使用階梯函數通過逐步過程確定多元邏輯回歸。此函數選擇模型以最小化AIC。
通常建議不要盲目地遵循逐步程序,而是要使用擬合統計(AIC,AICc,BIC)比較模型,或者根據生物學或科學上合理的可用變量建立模型。
多元相關是研究潛在自變量之間關系的一種工具。例如,如果兩個獨立變量彼此相關,可能在最終模型中都不需要這兩個變量,但可能有理由選擇一個變量而不是另一個變量。
多元相關
創建數值變量的數據框
Data.num$Status=as.numeric(Data.num$Status) Data.num$Length=as.numeric(Data.num$Length) Data.num$Migr=as.numeric(Data.num$Migr) Data.num$Insect=as.numeric(Data.num$Insect) Data.num$Diet=as.numeric(Data.num$Diet) Data.num$Broods=as.numeric(Data.num$Broods) Data。num$Wood=as.numeric(Data.num$Wood) Data.num$Upland=as.numeric(Data.num$Upland) Data.num$Water=as.numeric(Data.num$Water) Data.num$Release=as.numeric(Data.num$Release) Data.num$Indiv=as.numeric(Data.num$Indiv) ###檢查新數據框 headtail(Data.num) 1115209600.01.2111226.01001629 2112505000.00.561016.010011085 318703360.00.071014.0100138 77017031.00.5531224.0NA10012 78021036.92.002823.7100112 790225106.51.2021224.8200012 ###檢查變量之間的相關性 ###這里使用了Spearman相關性
多元邏輯回歸的例子
在此示例中,數據包含缺失值。在R中缺失值用NA表示。SAS通常會無縫地處理缺失值。雖然這使用戶更容易,但可能無法確保用戶了解這些缺失值的作用。在某些情況下,R要求用戶明確如何處理缺失值。處理多元回歸中的缺失值的一種方法是從數據集中刪除具有任何缺失值的所有觀察值。這是我們在逐步過程之前要做的事情,創建一個名為Data.omit的數據框。但是,當我們創建最終模型時,我們只想排除那些在最終模型中實際包含的變量中具有缺失值的觀察。為了測試最終模型的整體p值,繪制最終模型,或使用glm.compare函數,我們將創建一個名為Data.final的數據框,只排除那些觀察結果。
盡管二項式和poission系列中的模型應該沒問題,但是對于使用某些glm擬合的步驟過程存在一些注意事項。
用逐步回歸確定模型
最終模型
summary(model.final) Coefficients: EstimateStd.ErrorzvaluePr(>|z|) (Intercept)-3.54964822.0827400-1.7040.088322. Upland-4.54842892.0712502-2.1960.028093* Migr-1.81840490.8325702-2.1840.028956* Mass0.00190290.00070482.7000.006940** Indiv0.01370610.00387033.5410.000398*** Insect0.23947200.13734561.7440.081234. Wood1.81344451.31059111.3840.166455
偽R方
$Pseudo.R.squared.for.model.vs.null Pseudo.R.squared McFadden0.700475 CoxandSnell(ML)0.637732 Nagelkerke(CraggandUhler)0.833284
模型總體p值
在最終模型中創建包含變量的數據框,并省略NA。
偏差表分析
AnalysisofDevianceTable Model1:Status~Upland+Migr+Mass+Indiv+Insect+Wood Model2:Status~1 Resid.DfResid.DevDfDeviancePr(>Chi) 16330.392 26993.351-6-62.9591.125e-11***
似然比檢驗
Likelihoodratiotest #DfLogLikDfChisqPr(>Chisq) 17-15.196 21-46.675-662.9591.125e-11***
標準化殘差圖
簡單的預測值圖
在最終模型中創建包含變量的數據框,并在NA中省略
過度離散檢驗
過度離散是glm的deviance殘差相對于自由度較大的情況。這些值顯示在模型的摘要中。一個指導原則是,如果deviance殘差與剩余自由度的比率超過1.5,則模型過度離散。過度離散表明模型不能很好地擬合數據:解釋變量可能無法很好地描述因變量,或者可能無法為這些數據正確指定模型。如果存在過度離散,一種可能的解決方案是 在glm中使用quasibinomial family選項。
Nulldeviance:93.351on69degreesoffreedom Residualdeviance:30.392on63degreesoffreedom deviance/df.residual [1]0.482417
評估模型的替代方法
使用逐步程序的替代或補充是將模型與擬合統計進行比較。我的compare.glm 函數將為glm模型顯示AIC,AICc,BIC和偽R平方。使用的模型應該都擬合相同的數據。也就是說,如果數據集中的不同變量包含缺失值,則應該謹慎使用。如果您對使用哪種擬合統計數據沒有任何偏好,您希望在最終模型中使用較少的術語,我可能會推薦AICc或BIC。
一系列模型可以與標準的anova 功能進行比較。模型應嵌套在先前模型中或anova函數列表中的下一個模型中; 和模型應該擬合相同的數據。在比較多個回歸模型時,通常放寬p值為0.10或0.15。
在以下示例中,使用通過逐步過程選擇的模型。請注意,雖然模型9最小化了AIC和AICc,但模型8最小化了BIC。anova結果表明模型8不是對模型7的顯著改進。這些結果支持選擇模型7,8或9中的任何一個。
compareGLM(model.1,model.2,model.3,model.4,model.5,model.6, model.7,model.8,model.9) $Models Formula 1"Status~1" 2"Status~Release" 3"Status~Release+Upland" 4"Status~Release+Upland+Migr" 5"Status~Release+Upland+Migr+Mass" 6"Status~Release+Upland+Migr+Mass+Indiv" 7"Status~Release+Upland+Migr+Mass+Indiv+Insect" 8"Status~Upland+Migr+Mass+Indiv+Insect" 9"Status~Upland+Migr+Mass+Indiv+Insect+Wood" $Fit.criteria RankDf.resAICAICcBICMcFaddenCox.and.SnellNagelkerkep.value 116694.3494.5398.750.00000.00000.0000Inf 226562.1362.5168.740.37870.39990.54012.538e-09 336456.0256.6764.840.46840.46830.63253.232e-10 446351.6352.6162.650.53920.51670.69797.363e-11 556250.6452.0463.870.57230.53770.72637.672e-11 666149.0750.9764.500.61180.56180.75885.434e-11 776046.4248.9064.050.66330.59120.79852.177e-11 866144.7146.6160.140.66010.58940.79616.885e-12 976044.0346.5161.670.68970.60550.81787.148e-12 AnalysisofDevianceTable Model1:Status~1 Model2:Status~Release Model3:Status~Release+Upland Model4:Status~Release+Upland+Migr Model5:Status~Release+Upland+Migr+Mass Model6:Status~Release+Upland+Migr+Mass+Indiv Model7:Status~Release+Upland+Migr+Mass+Indiv+Insect Model8:Status~Upland+Migr+Mass+Indiv+Insect Model9:Status~Upland+Migr+Mass+Indiv+Insect+Wood Resid.DfResid.DevDfDeviancePr(>Chi) 16690.343 26556.130134.2134.94e-09*** 36448.02418.1060.004412** 46341.63116.3930.011458* 56238.64312.9880.083872. 66135.07013.5730.058721. 76030.41514.6550.030970* 86130.710-1-0.2950.587066 96028.03112.6790.101686
總結
以上是生活随笔為你收集整理的R语言中如何进行多元逻辑回归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java getscale_Java M
- 下一篇: 风险投资家:以后想在科技巨头工作,你最好