
R數(shù)據(jù)分析案例:邏輯回歸
邏輯回歸,也稱之為邏輯模型,用于預(yù)測(cè)二分結(jié)果變量。在邏輯模型當(dāng)中,輸出結(jié)果所占的比率就是預(yù)測(cè)變量的線性組合。
這篇文章將要使用下面這幾個(gè)包,而且你們需要保證在運(yùn)行我所舉的例子的時(shí)候,你已經(jīng)把這些包都裝好了。如果你還沒裝好這些包,那么,運(yùn)行install.packages(“R包名稱”)這個(gè)操作,或者你可能需要更新版本,運(yùn)行update.packages()。
library(aod)
library(ggplot2)
library(Rcpp)
版本說明:本文基于R3.2.3進(jìn)行測(cè)試的,一下是包的版本:
Rcpp:0.12.3 ggplot2:2.0.0 knitr:1.12.3
記?。罕疚囊庠谝阒廊绾斡孟嚓P(guān)的指令進(jìn)行邏輯回歸分析,而并沒有涵蓋所有研究人員可能會(huì)做的事情,尤其是數(shù)據(jù)是沒有進(jìn)行清洗和查閱的,而且假設(shè)并非最嚴(yán)謹(jǐn),其它方面也不會(huì)相當(dāng)?shù)臉?biāo)準(zhǔn)。
案例
案例1: 假如我們對(duì)這些因素感興趣,它們表示政治候選人是否贏得選舉的因子,其中,我們把結(jié)果變量表示為0或1,也可以表達(dá)成贏或者輸。而預(yù)測(cè)變量的利益可由一場(chǎng)運(yùn)動(dòng)中所投入的金額表示,或者是選舉人所花的時(shí)間,再或者在職人員是否獲得足夠的支持。
案例2:一個(gè)研究者可能會(huì)對(duì)GRE(研究生入學(xué)考試成績(jī))、GPA(大學(xué)平均績(jī)點(diǎn)),以及研究生學(xué)院的名譽(yù)感興趣,因?yàn)樗鼈冇绊憣W(xué)校的招生問題。這里,我們用允許/不允許這個(gè)二進(jìn)制結(jié)果表示其因變量。
數(shù)據(jù)的描述
對(duì)于我們接下來要進(jìn)行的數(shù)據(jù)分析來說,我們要對(duì)案例2的入學(xué)問題進(jìn)行深入的探討。我們有了通常情況下假設(shè)所產(chǎn)生的數(shù)據(jù),而它們可從R的相關(guān)網(wǎng)站得到。記住,當(dāng)我們要調(diào)用相關(guān)函數(shù)導(dǎo)入數(shù)據(jù)的時(shí)候,如果我們要具體表示一個(gè)硬盤驅(qū)動(dòng)器的文件,我們需要打上斜杠(/),而不是反斜杠(\)。
這個(gè)數(shù)據(jù)集有二進(jìn)制的結(jié)果(輸出值,依賴),它表示允許。這里有3個(gè)預(yù)測(cè)變量:gre、gpa以及rank。我們把gre和gpa看作是連續(xù)變量。rank表示有4個(gè)值為1。這里,為0的那所學(xué)校聲望最高,其它的這4所高校聲望最低。這時(shí),我們可以用summary()函數(shù)來匯總一下這個(gè)數(shù)據(jù)集的情況,而且,如果想要計(jì)算里面的標(biāo)準(zhǔn)差,我們可以使用sapply()函數(shù),并在里面寫上sd來獲取其標(biāo)準(zhǔn)差。
你可能會(huì)考慮到的分析方法
接下來,我會(huì)列舉一些你可能會(huì)用到的方法。這里所列舉的一些方法相對(duì)來說比較合理,畢竟有些其他方法不能執(zhí)行或者尤其局限性。
1.邏輯回歸,也是本文的重點(diǎn)
2.概率回歸。概率分析所產(chǎn)生的結(jié)果類似于邏輯回歸。我們可以依據(jù)我們的需要進(jìn)行有選擇性的進(jìn)行概率回歸或邏輯回歸。
3.最小二乘法。當(dāng)你使用二進(jìn)制輸出變量的時(shí)候,這種模型就是常用于線性回歸分析的,而且也可以用它來進(jìn)行條件概率的運(yùn)算。然而,這里的誤差(例如殘差)來自于線性概率模型,而且會(huì)影響到異方差性最小二乘法回歸的正態(tài)誤差檢驗(yàn),它也影響無效標(biāo)準(zhǔn)誤差和假設(shè)性分析。想要了解更多關(guān)于線性概率模型的相關(guān)問題,可以查閱Long(1997,p.38-40)。
4.雙組判別函數(shù)分析。這是一個(gè)多元的方法處理輸出變量。
5.Hotelling 的T2。0/1的輸出結(jié)果轉(zhuǎn)換到分組變量中,而前一個(gè)預(yù)測(cè)值則成為輸出變量。這樣可以進(jìn)行一個(gè)顯著性測(cè)試,然而并沒有給沒個(gè)變量分別給一個(gè)系數(shù),而且這對(duì)于某個(gè)變量根據(jù)影響情況調(diào)整到其它變量的程度是不清楚的。
使用邏輯模型
接下來的代碼,通過使用glm()函數(shù)(廣義線性模型)進(jìn)行相關(guān)評(píng)估。首先,我們要把rank(秩)轉(zhuǎn)換成因子,并預(yù)示著rank在這里被視為分類變量。
由于我們得到了模型的名字(mylogit),而R并不會(huì)從我們的回歸中產(chǎn)生任何輸出結(jié)果。為了得到結(jié)果,我們使用summary()函數(shù)進(jìn)行提?。?
1.在上面的結(jié)果中,我們首先看到的就是call,這提示我們這時(shí)的R在運(yùn)行什么東西,我們?cè)O(shè)定了什么選項(xiàng),等等。
2.接下來,我們看到了偏差殘差,用于測(cè)量模型的擬合度。這部分的結(jié)果顯示了這個(gè)分布的偏差殘差,而針對(duì)每個(gè)使用在模型里的個(gè)案。接下來,我們討論一下如何匯總偏差估計(jì),從而知道模型的擬合結(jié)果。
3.下一部分的結(jié)果顯示了相關(guān)系數(shù),標(biāo)準(zhǔn)誤差,z統(tǒng)計(jì)量(有時(shí)也叫Wald Z統(tǒng)計(jì)量),以及它的相關(guān)結(jié)果。gre和gpa都是同等重要的統(tǒng)計(jì)量,并作為rank的3個(gè)變量。邏輯回歸系數(shù)給改變了在預(yù)測(cè)變量中增加一個(gè)單位的輸出結(jié)果誤差。
對(duì)于gre,每改變一個(gè)單位,輸出結(jié)果的允許誤差(相對(duì)于不允許來說)增加0.002。
對(duì)于gpa,每改變一個(gè)單位,入學(xué)的研究生的允許誤差增加0.804。
ranK的指示變量的觀察方法就有點(diǎn)不同了。例如,層在本科學(xué)習(xí)過的在rank的值是2,其它為1,使之允許誤差變?yōu)?0.675。
我們可以使用confint()函數(shù)來獲取相關(guān)的區(qū)間的預(yù)測(cè)信息。對(duì)于邏輯回歸模型來說,其置信區(qū)間時(shí)基于異形對(duì)數(shù)似然函數(shù)求出來的。同樣,我們得到的CL是基于默認(rèn)方法求出的標(biāo)準(zhǔn)差算的。
我們可以調(diào)用aod包里的wald.test()函數(shù)來測(cè)試rank的所有影響。圖表里的系數(shù)的順序和模型里的項(xiàng)順序是一樣的。這樣很重要,因?yàn)閣ald.test()函數(shù)就是基于這些模型的項(xiàng)順序進(jìn)行測(cè)試的。b提供了系數(shù),而Sigma提供了誤差項(xiàng)的方差協(xié)方差矩陣,而且最終,這些項(xiàng)告訴R哪些項(xiàng)用來進(jìn)行測(cè)試,而在這種情況下,第4、5、6這三項(xiàng)作為rank的層次進(jìn)行測(cè)試。
卡方檢驗(yàn)算出來的值是20.9,這里涉及到3個(gè)自由度,p值算出來是0.00011,這預(yù)示著我們所假設(shè)的這些項(xiàng)之間具有顯著的影響效果。
我們也可以測(cè)試而外的假設(shè),這些假設(shè)包含rank里不同層次的差異。下面,我們通過測(cè)試得知rank=2的測(cè)試結(jié)果和rank=3的時(shí)候一樣。下面的第一行代碼創(chuàng)造的向量是1,這定義了測(cè)試?yán)镂覀円獔?zhí)行的內(nèi)容。在這種情況下,我們想要測(cè)試rank=2和rank=3(即模型的第4項(xiàng)、第5項(xiàng))這兩個(gè)不同的項(xiàng)所產(chǎn)生的差異(減)。為了對(duì)比這2項(xiàng),我們對(duì)其中一項(xiàng)乘以1,另一項(xiàng)乘以-1。其它項(xiàng)不包含在測(cè)試?yán)?,所以它們統(tǒng)一都乘上0。第二行代碼寫上L=1,這告訴R基于向量為1時(shí)執(zhí)行這次測(cè)試(并不是我們之前所選擇的進(jìn)行測(cè)試)。
卡方檢驗(yàn)所在自由度為1的情況下算出來的結(jié)果為5.5,并得出相關(guān)的p值為0.019,這預(yù)示著rank=2和rank=3之間存在著顯著的差異。
你一可以把系數(shù)指數(shù)化,并從誤差率進(jìn)行解讀,而R會(huì)自動(dòng)幫你算出來。為了要得到指數(shù)化系數(shù),你可以告訴R你想要指數(shù)化(exp),而R也會(huì)按照你的要求把它們指數(shù)化,它屬于mylogit(coef(mylogit))的一部分。我們可以使用相同的誤差率以及它們的置信區(qū)間,并可先前就把置信區(qū)間指數(shù)化。把它們都放到其中一個(gè)圖表,我們可以使用cbind系數(shù)和系數(shù)置信區(qū)間這些列整合起來。
現(xiàn)在,我們可以說gpa增加了一個(gè)單位,而研究生入學(xué)(反之就是沒有入學(xué)的)的誤差則在因子上增加2.23。對(duì)于更多關(guān)于誤差率信息的解讀,查看我們的FAQ頁 How do I interpret odds ratios in logistic regression? 。注意,當(dāng)R產(chǎn)生了這個(gè)結(jié)果時(shí),關(guān)于誤差率的攔截一般都不被解讀。
你也可以使用預(yù)測(cè)概率來幫助你解讀這個(gè)模型。預(yù)測(cè)概率可以均可由分類預(yù)測(cè)變量或連續(xù)預(yù)測(cè)變量計(jì)算出來。為了算出預(yù)測(cè)概率,我們首先要?jiǎng)?chuàng)建含有我們需要的獨(dú)立變量來創(chuàng)建新的數(shù)據(jù)框。
我們將要開始計(jì)算每個(gè)rank值的預(yù)測(cè)概率的允許值,并計(jì)算gre和gpa的平均值。首先,我們要?jiǎng)?chuàng)建新的數(shù)據(jù)框:
這些值必須含有和你之前所創(chuàng)建的邏輯回歸分析相同的名字(例如,在這個(gè)例子中,gre的就必須命名為gre)。既然,我們現(xiàn)在已經(jīng)創(chuàng)建好了我們需要進(jìn)行運(yùn)算的數(shù)據(jù)框,那么我們可以告訴R根據(jù)這個(gè)來創(chuàng)建預(yù)測(cè)概率。第一行代碼經(jīng)過了壓縮,我們現(xiàn)在就把它分開來,討論這些值是怎樣執(zhí)行的。Newdata$rankP告訴R我們要根據(jù)數(shù)據(jù)集(數(shù)據(jù)框)的newdata1里的rankP創(chuàng)建一個(gè)新的變量剩余的指令告訴R這些rankP值應(yīng)當(dāng)使用prediction()函數(shù)進(jìn)行預(yù)測(cè)。圓括號(hào)里的選項(xiàng)告訴R這些預(yù)測(cè)值應(yīng)該基于分析mylogit進(jìn)行預(yù)測(cè),mylogit的值源自newdata1以及它的預(yù)測(cè)值類型就是預(yù)測(cè)概率(type=”response”)。第二行代碼列舉了數(shù)據(jù)框newdata1的值,盡管它不是十分理想,而這就是圖表的預(yù)測(cè)概率。
在上面的預(yù)測(cè)結(jié)果中,我們看到來自最好的名校(rank=1)并被接收到研究生的本科生預(yù)測(cè)概率是0.52,而0.18的學(xué)生來自最低檔次的學(xué)校(rank=4),以gre和gpa作為平均值。我們可以做相似的事情來創(chuàng)建一個(gè)針對(duì)不斷變化的變量gre和gpa的預(yù)測(cè)概率圖表。我們可以基于此作圖,所以我們可以在200到800之間創(chuàng)建100個(gè)gre值,基于它的rank(1,2,3,4)。
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))))
這些代碼所產(chǎn)生的預(yù)測(cè)概率(下面第一行)和之前算的一樣,除非我們還想要對(duì)標(biāo)準(zhǔn)差進(jìn)行要求,否則我們可以對(duì)置信區(qū)間作圖。我們可以對(duì)關(guān)聯(lián)規(guī)模進(jìn)行預(yù)測(cè),同時(shí)反向變換預(yù)測(cè)值和置信區(qū)間的臨近值到概率中。
當(dāng)然,使用圖像描繪預(yù)測(cè)概率來解讀和展示模型也是相當(dāng)有用的。我們會(huì)使用ggplot2包來作圖。下面我們作圖描繪預(yù)測(cè)概率,和95%置信區(qū)間。
我們也許很想看到這個(gè)模型的擬合效果怎么樣,而剛剛那樣做是非常有用的,尤其是對(duì)比這些競(jìng)爭(zhēng)的模型。Summary(mylogit)所產(chǎn)生的結(jié)果包含了擬合系數(shù)(下面展示了其系數(shù)),包含了空值、偏差殘差和AIC。模型擬合度的一個(gè)衡量標(biāo)準(zhǔn)就是整個(gè)模型的顯著程度。這個(gè)測(cè)試問了我們使用了預(yù)測(cè)值的模型是否比僅僅含有截距的模型(即,空模型)更加顯著,而這個(gè)測(cè)試?yán)锏慕y(tǒng)計(jì)量是含有預(yù)測(cè)值的預(yù)測(cè)擬合指數(shù)和空模型的差,而且這個(gè)模型的統(tǒng)計(jì)量也是含有其自由度等于現(xiàn)有的模型(即,模型里的預(yù)測(cè)變量個(gè)數(shù))和空模型的自由度之差的卡方分布。為了要找到這兩個(gè)模型的偏差(即,這個(gè)測(cè)試的統(tǒng)計(jì)量),我們可以使用下面的指令:文章來源cda數(shù)據(jù)分析培訓(xùn)
這兩個(gè)模型的自由度之差等于這個(gè)模型里預(yù)測(cè)變量的個(gè)數(shù),而且我們可以按照下面的方法獲取它:
最后,我們提取一下p值:
在自由度為5的情況下算出來的卡方是41.46,而相關(guān)的p值則小于0.001。這告訴我們,此模型的擬合效果比一個(gè)空模型所產(chǎn)生的擬合效果更加顯著。這個(gè),我們有時(shí)稱它為似然比測(cè)試(偏差殘差為-2*log似然值)。要看到它的對(duì)數(shù)似然,我們可以這樣寫:
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國(guó)內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03