今天將邏輯回歸和泊松回歸放一起給大家寫寫报账,因?yàn)樗鼉稍赗中的做法都非常的相似和非常的簡(jiǎn)單,同時(shí)還有兩個(gè)回歸的圖形化表達(dá)董济。
什么時(shí)候用邏輯回歸
Logistic regression, also known as logit regression, is what you use when your outcome variable (dependent variable) is dichotomous
就是如果你的因變量是二分類的時(shí)候就得考慮用邏輯回歸了步清,多分類也得用,所以你就記住因變量只要是分類的虏肾,基本邏輯回歸跑不掉廓啊。
Rather than estimate beta sizes, the logistic regression estimates the probability of getting one of your two outcomes (i.e., the probability of voting vs. not voting) given a predictor/independent variable(s). For our purposes
傳統(tǒng)的回歸都會(huì)出來一個(gè)β值,解釋為當(dāng)自變量改變一個(gè)單位時(shí)封豪,因變量會(huì)改變?chǔ)聜€(gè)單位谴轮,那么在做邏輯回歸的時(shí)候也會(huì)有這個(gè)β值,但是意思卻大大不同吹埠,此時(shí)的β值為自變量改變一個(gè)單位時(shí)第步,logOR的改變量,怎么解釋呢缘琅?就是說自變量改變一個(gè)單位陽(yáng)性結(jié)果(通常編碼為1)的發(fā)生概率比陰性結(jié)果的發(fā)生概率會(huì)增加expβ倍粘都。
什么時(shí)候用泊松回歸
Poisson regression, also known as a log-linear model, is what you use when your outcome variable is a count (i.e., numeric, but not quite so wide in range as a continuous variable.)
當(dāng)你的因變量是單位時(shí)間某事件的發(fā)生次數(shù)時(shí)你就應(yīng)該考慮用泊松回歸,比如你想研究的因變量是過去一個(gè)月病人發(fā)生心梗的次數(shù)刷袍,你就考慮用泊松回歸翩隧。
實(shí)例展示
今天的例子為研究GRE,GPA和學(xué)校排名是否會(huì)影響一個(gè)人被錄取為研究生呻纹,在這個(gè)例子中GRE和GPA都是連續(xù)變量堆生,學(xué)校排名rank為分類變量,是否錄取admit為(0/1)二分類雷酪。
讀入數(shù)據(jù)(數(shù)據(jù)請(qǐng)私信獲仁缙汀):
mydata <- read.csv('C:/Users/hrd/Desktop/bootcamp/dataset/binary.csv')
head(mydata)
那么對(duì)于這么一個(gè)數(shù)據(jù)集,我們就應(yīng)該使用邏輯回歸模型太闺,首先我們得告訴R我們的學(xué)校排名rank這個(gè)變量是分類變量,然后再擬合模型:
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
summary(mylogit)
從上面的結(jié)果看出:
- 結(jié)果中首先會(huì)提示你跑的什么模型
- 然后我們會(huì)看到deviance residuals嘁圈,這個(gè)和線性回歸的殘差一個(gè)意思省骂,是表示模型好壞的一個(gè)指標(biāo)
- 然后就是各個(gè)預(yù)測(cè)變量的系數(shù)和標(biāo)準(zhǔn)誤,z統(tǒng)計(jì)量和p值最住,我們可以看到gpa,gre和rank都有顯著意義钞澳,系數(shù)的解釋就是預(yù)測(cè)變量每增加一個(gè)單位,LogOR的改變量涨缚,比如對(duì)于gre就有學(xué)生的gre每增加一個(gè)單位轧粟,那么它被錄取為研究生的概率增加exp0.002倍。
默認(rèn)輸出的這個(gè)結(jié)果其實(shí)是不直觀的,我們可以通過下面的代碼直接輸出OR改變量和置信區(qū)間
exp(cbind(OR = coef(mylogit), confint(mylogit)))
這樣解釋起來就會(huì)直觀很多兰吟。
那么模型建立好了之后通惫,我們還可以使用該模型做預(yù)測(cè),比如我們想看看不同學(xué)校排名是如何預(yù)測(cè)了學(xué)生是否能上研究生:
newdata1 <- with(mydata, data.frame(gre = mean(gre), gpa = mean(gpa), rank = factor(1:4)))
newdata1$rankP <- predict(mylogit, newdata = newdata1, type = "response")
newdata1
在上面的代碼中我們將gpa和gre都固定為均值混蔼,只改變學(xué)校排名履腋,然后我們得到的結(jié)果就是排名為1的學(xué)校的學(xué)生能上研究生的概率為0.517,排名為2惭嚣,3遵湖,4的學(xué)校的學(xué)生能上研究生的概率分別為0.352,0.219晚吞,0.185延旧。
我們還可以將不同的gre或者gpa與能否上研究生的關(guān)系以學(xué)校排名分組畫出來,比如我們想畫gre與能否上研究生的概率槽地,此時(shí)我們需要有很多的gre分?jǐn)?shù):
newdata2 <- with(mydata, data.frame(gre = rep(seq(from = 200, to = 800, length.out = 100),
4), gpa = mean(gpa), rank = factor(rep(1:4, each = 100))))
上面的代碼就給不同排名的學(xué)校都生成了一百個(gè)200到800的gre分?jǐn)?shù)迁沫,同時(shí)依然固定gpa。
此時(shí)我們的newdata2就只有3個(gè)預(yù)測(cè)變量gre闷盔,gpa弯洗,和rank,我們用之前訓(xùn)練的模型來給這個(gè)數(shù)據(jù)做預(yù)測(cè)逢勾,生成newdata3:
newdata3 <- cbind(newdata2, predict(mylogit, newdata = newdata2, type = "link",
se = TRUE))
此時(shí)這個(gè)newdata3就包含一個(gè)fit列以及fit的標(biāo)準(zhǔn)誤牡整,fit就是logOdds,如下圖:
因?yàn)槲覀冃枰氖歉怕誓绻埃晕覀冃枰獙it轉(zhuǎn)化為預(yù)測(cè)概率逃贝,下面的代碼就可以實(shí)現(xiàn)概率和概率的置信區(qū)間計(jì)算:
newdata3 <- within(newdata3, {
PredictedProb <- plogis(fit)
LL <- plogis(fit - (1.96 * se.fit))
UL <- plogis(fit + (1.96 * se.fit))
})
此時(shí)再看我們的newdata3,里面就有我們的預(yù)測(cè)概率和置信區(qū)間了:
我們現(xiàn)在就可以以rank這個(gè)變量分組迫摔,畫出gre和預(yù)測(cè)概率的關(guān)系:
ggplot(newdata3, aes(x = gre, y = PredictedProb)) + geom_ribbon(aes(ymin = LL,
ymax = UL, fill = rank), alpha = 0.2) + geom_line(aes(colour = rank),
size = 1)
到這兒這篇文章的邏輯回歸就寫完了沐扳,在具體分析的時(shí)候如果我們要用泊松回歸,我們只需要將擬合模型時(shí)的family 參數(shù)修改為family=poisson就行句占,其余都完全一樣沪摄。
那么對(duì)于本文中的例子來說,如果我們不是模擬的數(shù)據(jù)集纱烘,如果我們的newdata3中還有實(shí)際的admit這個(gè)變量杨拐,我們就可以進(jìn)一步的做出真陽(yáng)性率和假陽(yáng)性率,進(jìn)而畫出ROC曲線擂啥。具體的操作之前文章應(yīng)該有寫的哄陶,有興趣的可以翻看。
小結(jié)
今天給大家寫了一個(gè)邏輯回歸的例子哺壶,并對(duì)模型的輸出和結(jié)果解釋做了說明屋吨,希望對(duì)大家有幫助蜒谤,很多人愛做預(yù)測(cè)模型,其實(shí)本文就是一個(gè)很好的例子至扰。感謝大家耐心看完鳍徽,也歡迎大家的意見和建議。
如果你是一個(gè)大學(xué)本科生或研究生渊胸,如果你正在因?yàn)槟愕慕y(tǒng)計(jì)作業(yè)旬盯、數(shù)據(jù)分析、論文翎猛、報(bào)告胖翰、考試等發(fā)愁,如果你在使用SPSS,R切厘,Python萨咳,Mplus, Excel中遇到任何問題,都可以聯(lián)系我疫稿。因?yàn)槲铱梢越o您提供最好的培他,最詳細(xì)和耐心的數(shù)據(jù)分析服務(wù)。
如果你對(duì)Z檢驗(yàn)遗座,t檢驗(yàn)舀凛,方差分析,多元方差分析途蒋,回歸猛遍,卡方檢驗(yàn),相關(guān)号坡,多水平模型懊烤,結(jié)構(gòu)方程模型,中介調(diào)節(jié)等等統(tǒng)計(jì)技巧有任何問題宽堆,請(qǐng)私信我腌紧,獲取最詳細(xì)和耐心的指導(dǎo)。
If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.
Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??
Then Contact Me. I will solve your Problem...
加油吧畜隶,打工人壁肋!