
R數(shù)據(jù)分析案例:邏輯回歸
邏輯回歸,也稱之為邏輯模型,用于預(yù)測二分結(jié)果變量。在邏輯模型當中,輸出結(jié)果所占的比率就是預(yù)測變量的線性組合。
這篇文章將要使用下面這幾個包,而且你們需要保證在運行我所舉的例子的時候,你已經(jīng)把這些包都裝好了。如果你還沒裝好這些包,那么,運行install.packages(“R包名稱”)這個操作,或者你可能需要更新版本,運行update.packages()。
library(aod)
library(ggplot2)
library(Rcpp)
版本說明:本文基于R3.2.3進行測試的,一下是包的版本:
Rcpp:0.12.3 ggplot2:2.0.0 knitr:1.12.3
記?。罕疚囊庠谝阒廊绾斡孟嚓P(guān)的指令進行邏輯回歸分析,而并沒有涵蓋所有研究人員可能會做的事情,尤其是數(shù)據(jù)是沒有進行清洗和查閱的,而且假設(shè)并非最嚴謹,其它方面也不會相當?shù)臉藴省?
案例
案例1: 假如我們對這些因素感興趣,它們表示政治候選人是否贏得選舉的因子,其中,我們把結(jié)果變量表示為0或1,也可以表達成贏或者輸。而預(yù)測變量的利益可由一場運動中所投入的金額表示,或者是選舉人所花的時間,再或者在職人員是否獲得足夠的支持。
案例2:一個研究者可能會對GRE(研究生入學(xué)考試成績)、GPA(大學(xué)平均績點),以及研究生學(xué)院的名譽感興趣,因為它們影響學(xué)校的招生問題。這里,我們用允許/不允許這個二進制結(jié)果表示其因變量。
數(shù)據(jù)的描述
對于我們接下來要進行的數(shù)據(jù)分析來說,我們要對案例2的入學(xué)問題進行深入的探討。我們有了通常情況下假設(shè)所產(chǎn)生的數(shù)據(jù),而它們可從R的相關(guān)網(wǎng)站得到。記住,當我們要調(diào)用相關(guān)函數(shù)導(dǎo)入數(shù)據(jù)的時候,如果我們要具體表示一個硬盤驅(qū)動器的文件,我們需要打上斜杠(/),而不是反斜杠(\)。
這個數(shù)據(jù)集有二進制的結(jié)果(輸出值,依賴),它表示允許。這里有3個預(yù)測變量:gre、gpa以及rank。我們把gre和gpa看作是連續(xù)變量。rank表示有4個值為1。這里,為0的那所學(xué)校聲望最高,其它的這4所高校聲望最低。這時,我們可以用summary()函數(shù)來匯總一下這個數(shù)據(jù)集的情況,而且,如果想要計算里面的標準差,我們可以使用sapply()函數(shù),并在里面寫上sd來獲取其標準差。
你可能會考慮到的分析方法
接下來,我會列舉一些你可能會用到的方法。這里所列舉的一些方法相對來說比較合理,畢竟有些其他方法不能執(zhí)行或者尤其局限性。
1.邏輯回歸,也是本文的重點
2.概率回歸。概率分析所產(chǎn)生的結(jié)果類似于邏輯回歸。我們可以依據(jù)我們的需要進行有選擇性的進行概率回歸或邏輯回歸。
3.最小二乘法。當你使用二進制輸出變量的時候,這種模型就是常用于線性回歸分析的,而且也可以用它來進行條件概率的運算。然而,這里的誤差(例如殘差)來自于線性概率模型,而且會影響到異方差性最小二乘法回歸的正態(tài)誤差檢驗,它也影響無效標準誤差和假設(shè)性分析。想要了解更多關(guān)于線性概率模型的相關(guān)問題,可以查閱Long(1997,p.38-40)。
4.雙組判別函數(shù)分析。這是一個多元的方法處理輸出變量。
5.Hotelling 的T2。0/1的輸出結(jié)果轉(zhuǎn)換到分組變量中,而前一個預(yù)測值則成為輸出變量。這樣可以進行一個顯著性測試,然而并沒有給沒個變量分別給一個系數(shù),而且這對于某個變量根據(jù)影響情況調(diào)整到其它變量的程度是不清楚的。
使用邏輯模型
接下來的代碼,通過使用glm()函數(shù)(廣義線性模型)進行相關(guān)評估。首先,我們要把rank(秩)轉(zhuǎn)換成因子,并預(yù)示著rank在這里被視為分類變量。
由于我們得到了模型的名字(mylogit),而R并不會從我們的回歸中產(chǎn)生任何輸出結(jié)果。為了得到結(jié)果,我們使用summary()函數(shù)進行提?。?
1.在上面的結(jié)果中,我們首先看到的就是call,這提示我們這時的R在運行什么東西,我們設(shè)定了什么選項,等等。
2.接下來,我們看到了偏差殘差,用于測量模型的擬合度。這部分的結(jié)果顯示了這個分布的偏差殘差,而針對每個使用在模型里的個案。接下來,我們討論一下如何匯總偏差估計,從而知道模型的擬合結(jié)果。
3.下一部分的結(jié)果顯示了相關(guān)系數(shù),標準誤差,z統(tǒng)計量(有時也叫Wald Z統(tǒng)計量),以及它的相關(guān)結(jié)果。gre和gpa都是同等重要的統(tǒng)計量,并作為rank的3個變量。邏輯回歸系數(shù)給改變了在預(yù)測變量中增加一個單位的輸出結(jié)果誤差。
對于gre,每改變一個單位,輸出結(jié)果的允許誤差(相對于不允許來說)增加0.002。
對于gpa,每改變一個單位,入學(xué)的研究生的允許誤差增加0.804。
ranK的指示變量的觀察方法就有點不同了。例如,層在本科學(xué)習(xí)過的在rank的值是2,其它為1,使之允許誤差變?yōu)?0.675。
我們可以使用confint()函數(shù)來獲取相關(guān)的區(qū)間的預(yù)測信息。對于邏輯回歸模型來說,其置信區(qū)間時基于異形對數(shù)似然函數(shù)求出來的。同樣,我們得到的CL是基于默認方法求出的標準差算的。
我們可以調(diào)用aod包里的wald.test()函數(shù)來測試rank的所有影響。圖表里的系數(shù)的順序和模型里的項順序是一樣的。這樣很重要,因為wald.test()函數(shù)就是基于這些模型的項順序進行測試的。b提供了系數(shù),而Sigma提供了誤差項的方差協(xié)方差矩陣,而且最終,這些項告訴R哪些項用來進行測試,而在這種情況下,第4、5、6這三項作為rank的層次進行測試。
卡方檢驗算出來的值是20.9,這里涉及到3個自由度,p值算出來是0.00011,這預(yù)示著我們所假設(shè)的這些項之間具有顯著的影響效果。
我們也可以測試而外的假設(shè),這些假設(shè)包含rank里不同層次的差異。下面,我們通過測試得知rank=2的測試結(jié)果和rank=3的時候一樣。下面的第一行代碼創(chuàng)造的向量是1,這定義了測試里我們要執(zhí)行的內(nèi)容。在這種情況下,我們想要測試rank=2和rank=3(即模型的第4項、第5項)這兩個不同的項所產(chǎn)生的差異(減)。為了對比這2項,我們對其中一項乘以1,另一項乘以-1。其它項不包含在測試里,所以它們統(tǒng)一都乘上0。第二行代碼寫上L=1,這告訴R基于向量為1時執(zhí)行這次測試(并不是我們之前所選擇的進行測試)。
卡方檢驗所在自由度為1的情況下算出來的結(jié)果為5.5,并得出相關(guān)的p值為0.019,這預(yù)示著rank=2和rank=3之間存在著顯著的差異。
你一可以把系數(shù)指數(shù)化,并從誤差率進行解讀,而R會自動幫你算出來。為了要得到指數(shù)化系數(shù),你可以告訴R你想要指數(shù)化(exp),而R也會按照你的要求把它們指數(shù)化,它屬于mylogit(coef(mylogit))的一部分。我們可以使用相同的誤差率以及它們的置信區(qū)間,并可先前就把置信區(qū)間指數(shù)化。把它們都放到其中一個圖表,我們可以使用cbind系數(shù)和系數(shù)置信區(qū)間這些列整合起來。
現(xiàn)在,我們可以說gpa增加了一個單位,而研究生入學(xué)(反之就是沒有入學(xué)的)的誤差則在因子上增加2.23。對于更多關(guān)于誤差率信息的解讀,查看我們的FAQ頁 How do I interpret odds ratios in logistic regression? 。注意,當R產(chǎn)生了這個結(jié)果時,關(guān)于誤差率的攔截一般都不被解讀。
你也可以使用預(yù)測概率來幫助你解讀這個模型。預(yù)測概率可以均可由分類預(yù)測變量或連續(xù)預(yù)測變量計算出來。為了算出預(yù)測概率,我們首先要創(chuàng)建含有我們需要的獨立變量來創(chuàng)建新的數(shù)據(jù)框。
我們將要開始計算每個rank值的預(yù)測概率的允許值,并計算gre和gpa的平均值。首先,我們要創(chuàng)建新的數(shù)據(jù)框:
這些值必須含有和你之前所創(chuàng)建的邏輯回歸分析相同的名字(例如,在這個例子中,gre的就必須命名為gre)。既然,我們現(xiàn)在已經(jīng)創(chuàng)建好了我們需要進行運算的數(shù)據(jù)框,那么我們可以告訴R根據(jù)這個來創(chuàng)建預(yù)測概率。第一行代碼經(jīng)過了壓縮,我們現(xiàn)在就把它分開來,討論這些值是怎樣執(zhí)行的。Newdata$rankP告訴R我們要根據(jù)數(shù)據(jù)集(數(shù)據(jù)框)的newdata1里的rankP創(chuàng)建一個新的變量剩余的指令告訴R這些rankP值應(yīng)當使用prediction()函數(shù)進行預(yù)測。圓括號里的選項告訴R這些預(yù)測值應(yīng)該基于分析mylogit進行預(yù)測,mylogit的值源自newdata1以及它的預(yù)測值類型就是預(yù)測概率(type=”response”)。第二行代碼列舉了數(shù)據(jù)框newdata1的值,盡管它不是十分理想,而這就是圖表的預(yù)測概率。
在上面的預(yù)測結(jié)果中,我們看到來自最好的名校(rank=1)并被接收到研究生的本科生預(yù)測概率是0.52,而0.18的學(xué)生來自最低檔次的學(xué)校(rank=4),以gre和gpa作為平均值。我們可以做相似的事情來創(chuàng)建一個針對不斷變化的變量gre和gpa的預(yù)測概率圖表。我們可以基于此作圖,所以我們可以在200到800之間創(chuàng)建100個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ù)測概率(下面第一行)和之前算的一樣,除非我們還想要對標準差進行要求,否則我們可以對置信區(qū)間作圖。我們可以對關(guān)聯(lián)規(guī)模進行預(yù)測,同時反向變換預(yù)測值和置信區(qū)間的臨近值到概率中。
當然,使用圖像描繪預(yù)測概率來解讀和展示模型也是相當有用的。我們會使用ggplot2包來作圖。下面我們作圖描繪預(yù)測概率,和95%置信區(qū)間。
我們也許很想看到這個模型的擬合效果怎么樣,而剛剛那樣做是非常有用的,尤其是對比這些競爭的模型。Summary(mylogit)所產(chǎn)生的結(jié)果包含了擬合系數(shù)(下面展示了其系數(shù)),包含了空值、偏差殘差和AIC。模型擬合度的一個衡量標準就是整個模型的顯著程度。這個測試問了我們使用了預(yù)測值的模型是否比僅僅含有截距的模型(即,空模型)更加顯著,而這個測試里的統(tǒng)計量是含有預(yù)測值的預(yù)測擬合指數(shù)和空模型的差,而且這個模型的統(tǒng)計量也是含有其自由度等于現(xiàn)有的模型(即,模型里的預(yù)測變量個數(shù))和空模型的自由度之差的卡方分布。為了要找到這兩個模型的偏差(即,這個測試的統(tǒng)計量),我們可以使用下面的指令:文章來源cda數(shù)據(jù)分析培訓(xùn)
這兩個模型的自由度之差等于這個模型里預(yù)測變量的個數(shù),而且我們可以按照下面的方法獲取它:
最后,我們提取一下p值:
在自由度為5的情況下算出來的卡方是41.46,而相關(guān)的p值則小于0.001。這告訴我們,此模型的擬合效果比一個空模型所產(chǎn)生的擬合效果更加顯著。這個,我們有時稱它為似然比測試(偏差殘差為-2*log似然值)。要看到它的對數(shù)似然,我們可以這樣寫:
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計學(xué)領(lǐng)域,假設(shè)檢驗是驗證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學(xué)計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學(xué)計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務(wù)價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導(dǎo)向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10CDA 數(shù)據(jù)分析師:商業(yè)數(shù)據(jù)分析實踐的落地者與價值創(chuàng)造者 商業(yè)數(shù)據(jù)分析的價值,最終要在 “實踐” 中體現(xiàn) —— 脫離業(yè)務(wù)場景的分 ...
2025-09-10機器學(xué)習(xí)解決實際問題的核心關(guān)鍵:從業(yè)務(wù)到落地的全流程解析 在人工智能技術(shù)落地的浪潮中,機器學(xué)習(xí)作為核心工具,已廣泛應(yīng)用于 ...
2025-09-09SPSS 編碼狀態(tài)區(qū)域中 Unicode 的功能與價值解析 在 SPSS(Statistical Product and Service Solutions,統(tǒng)計產(chǎn)品與服務(wù)解決方案 ...
2025-09-09