logistic回归 如何_R_语言 logistic回归分析
當涉及到二分類時,我們第一想到的就是logistic回歸。前面也講解過其他的二分類其的構建。本文主要分享logistic有關的二分類,無序多分類,有序多分類和條件logistic回歸。
本文因沒有配圖,略顯枯燥,建議在運行本代碼的過程中1.全神貫注,盯住每一個結果;2.建議對統(tǒng)計學知識有一個自學或復習,甚至建議各位朋友找到相關關于logistic回歸的帖子或教材,配合著學習/理解,同時大家多多交流。通過這些合作,相信會學好logistic回歸,包括其他知識。多學習,多總結,取長補短,才能進步。
##一. 二分類,涉及到二分類數(shù)據(jù),可以使用logistic回歸進行危險因素和相關因素的探索
##目的是構建P=P(Y=1 |X)與影響因素x之間的關系,出現(xiàn)陽性概率的結果 rm(list = ls()) library(MPV) knitr::kable(head(p13.2)) log_fix <- glm(y~x,family = "binomial",data = p13.2) summary(log_fix)#結果解讀 exp(coef(log_fix)[2])#結果=1.000201,即x每增加一個單位,y相應的增加1.00020倍 exp(confint(log_fix)[2,])##95%CI,若pvalue<0.05,則95%不包括1,反之包括1##其實在進行l(wèi)ogistics后還需要判斷或檢測是否有過度離勢φ=Deviance(res)/df,即殘差偏差/自由度
##若φ>>1,則表明存在過度離勢,檢測方法如下
φ <- log_fix$deviance/log_fix$df.residual##如果驗證了之后存在過度離勢,那么驗證了之后如何去校正吶?
##首先可以返回原始數(shù)據(jù),看看有無離群值或高杠桿
##若沒有離群值或高杠桿,檢測結果仍顯示過度離勢,則如下操作
log_fix <- glm(y~x,family = quasibinomial(),data = p13.2) summary(log_fix)##二.無序多分類logistic回歸
##比如血型A,B,AB,O
rm(list = ls()) library(foreign) library(nnet) ml <- read.dta("http://stats.idre.ucla.edu/stat/data/hsbdemo.dta") head(ml) ml$prog2 <- relevel(ml$prog,ref = "academic") test <- multinom(prog2~ses + write,data = ml) summary(test) ##計算pvalue z <- summary(test)$coefficients/summary(test)$standard.errors p <- (1 - pnorm(abs(z),0,1))*2#雙側,所以*2 p exp(coef(test))#得到OR值#####三.有序多分類logistic回歸
#因變量有多個,且為有序變量 require(foreign) require(MASS) dat <- read.dta("http://stats.idre.ucla.edu/stat/data/ologit.dta") head(dat) #查看數(shù)據(jù) ftable(xtabs(~public+apply+pared,data = dat))m <- polr(apply~pared+public+gpa,data = dat,Hess = TRUE,method = "logistic") summary(m) ctable <- coef(summary(m)) (ctable <- coef(summary(m)))#計算p值 p <- pnorm(abs(ctable[,"t value"]),lower.tail = FALSE)*2 (ctable <- cbind(ctable,"p value"=p))(ci <- confint(m))#95%CIexp(cbind(OR=coef(m),ci))#OR值##解讀:pared↑ 1 unit → OR=2.85(class1→class2;class2→class3) ##OR c1vsCk>1 = OR c2vsCk>2####三.條件logistic回歸--1:n,目的是通過匹配對照組,將混雜因素匹配掉,比如說地域/年齡等
#1:M case control 1個病例;M m個對照組,m<=4 library(faraway) data(amlxray,package = "faraway") head(amlxray) str(amlxray) library(survivv) cmod <- clogit(disease~Sex+Mray+Fray+CnRay+strata(ID),data = amlxray)##strate函數(shù)中的ID如果自 #自己數(shù)據(jù)中沒有,需要加入進去。summary(cmod) ##對于條件logistic,重點是需要知道什么時候需要采用條件logistic回歸。學習的過程就是分享的過程,分享的過程也是交流的過程,交流的過程就是進步的過程。
總結
以上是生活随笔為你收集整理的logistic回归 如何_R_语言 logistic回归分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab simulink_MATL
- 下一篇: jwt获取token_Koa开发之koa