, 內,LPM 非常接近 Logit 模型,在小範圍超過這個區間,LPM 的表現也較好。第四 ,由於 Logit 模型使用的極大似然估計 (下簡稱 MLE) 的準完全分離 (quansi-complete separation),Logit 模型可能會崩潰,但是 LPM 沒有這方面的問題。論點 2: Logit 優於 LPM
reg2logit命令的另一作者 Paul Allison 更加偏好使用 Logit 模型,他有以下幾個觀點。
第一 ,LPM 可能會產生無效的概率預測值,而 Logit 不會。由於 LPM 的被解釋變量是 1 和 0,在進行線性回歸時,最終得到的概率預測值可能大於 1 或小於 0,然而這是無效的概率預測值。第二 ,對於二分類的情況,Logit 的係數及估計值將比 LPM 更穩定。Allison 認為 LPM 不是真實的產生二分結果的機制。第三 ,Logit 模型受解釋變量間相互作用影響小,參數更加穩定。在 一篇文章 裡,Allison 具體地闡釋了這一觀點。Logit 模型和 LPM 之間的優劣難以比較,是否有另一種方法能夠結合兩者的優勢,估計二元變量的概率值呢?
答案是肯定的,就是開篇所介紹的 LDM 模型。下面將從判別分析說起,推導 LDM 的具體轉換方式,模擬 reg2logit 命令的應用,並對本文內容做一個小結,總結 LDM 的優勢和應用場景。
1.2 判別分析 (DA) 與線性判別模型 (LDM)判別分析是根據個體的特徵將個體分為若干類別中的一類。其基本原理如下:按照一定的判別準則,建立一個或多個判別函數,用研究對象的大量信息確定判別函數中的待定係數,並計算判別指標。例如,對於一個兩類問題的判別,就是將模式 劃分成 、 。
判別分析和 Logistic 回歸有著密不可分的聯繫。兩者都可以達到對樣本進行分類的目的。在 Logistic 回歸中,變量 可能反映幾個群體中的一個群體的隸屬關係,而在判別分析的每個群體中,向量 都有一個多變量正態分布。
判別分析和 Logistic 回歸也有區別。logit 模型主要是探究解釋變量對離散的被解釋變量的影響,而判別分析需要用已有的訓練集進行訓練,得到判別準則係數,從而實現對目標樣品的歸類,從這個維度看,判別分析是一種機器學習的方法。
然而部分用於進行判別分析的電腦程式不提供 Logit 模型係數的估計值、標準誤、T 值。Haggstrom (1983) 指出對於大型數據集,在判別分析中使用 OLS 可以實現。這就是這位大牛推導由 OLS 轉換 Logit 模型參數方法的初衷,其推導出發點是線性判別模型 (LDM)。
2. 理論推導2.2 由 LDM 推導 logit 模型LDM 方法是一種根據解釋變量的線性函數將被解釋變量分為兩類 (0\1) 的方法,線性判別模型在給定 值的情況下指定了 的條件分布。使用貝葉斯公式,可以將線性判別模型重新表示為每個 的條件概率(後驗概率),並以此推導出 logit 模型,具體推導過程如下。
假設數據集服從同方差假設, 代表當 的類別為 時 的概率密度。
即
根據貝葉斯公式,由先驗概率 推出 Y=y 的後驗概率,此時只考慮二分情況,即 只有兩個可能的取值,分別是 1 和 0。下面簡單介紹 Y=1 的後驗概率公式推導過程。
將分母由全概率公式展開,可以得到:
分子分母同時除以
為了將上式寫為 logistic 分布概率 的形式,使 ,得到判別函數:
將 (1) 式中正態分布密度函數代入下式:
最終
若 ,相應的概率為 ,那麼
此時就得到了服從線性的 logistic 回歸模型了。
從以上推導過程中可以看出,在二元情況下,假設 ,有下式成立:
上式可以泛化為一般情況,即在多元條件下,Y=1、2……k,共有k組,且 (1) 式仍然成立。
將上式寫為 logistic 回歸形式:
其中:
由 (1) 可得,當 時, , 是每組的同方差。總之,後驗概率 P (Y=j |x) 滿足一個參數等於判別函數係數組合的 Logit 模型。
2.2 "推導後 Logit" 參數的 MLE對由 LDM 推導後的 Logit 模型進行參數估計時,假定存在一個 個獨立觀測值 的訓練集, ,使得對任意對 ,給定 時, 的分布為 。設 是 的 cluster 裡觀察值的個數。
在 是常數的情況下,使用極大似然估計方法估計 (5)、(6) 的係數。
似然函數如下:
其中當 時 ,否則 。參數 和 的 MLE 都是用 (5) 中 和 的 MLE 代替得到的判別函數估計值。
的極大似然估計是樣本均值,即 。
2.3 由 OLS 計算 "推導後 Logit" 參數的 MLE在二元情況下,即 ,設 和 表示 OLS 估計值,將觀測值 當作滿足線性模型來處理。
此時該回歸的殘差平方和為:
根據 Haggstorm (1983) 的推導,推導後 Logit 係數的MLE與 OLS 估計中參數 和 有關。具體關係為下式:
從上式可以看出,在 不確定時, ,且 。所以 (9) 式可以寫為:
在多元情況下,以最後一組 作為基準組,使用 , 兩式替換 (5) 中的 和 ,得到
以上就是二元和多元情況下用 OLS 估計 logit 模型參數的表達式。
方法: 固定效應模型、FM 估計、動態面板、穩健性檢驗、衡量偏誤問題 直接聽課 | 課件展示:https://gitee.com/arlionn/paper101
3. reg2logit 命令介紹3.1 步驟根據第二部分的理論推導,可以看出,通過 OLS 獲取 logit 模型的參數只需要兩步。
Step1: 通過 OLS 估算 LPM 的參數 和
即上文 1.4 中 (7) 式 中斜率 和截距項 。
Step2: 變換參數為 、
按照 (8)、(10) 兩式變換參數,可以得到 (4) 式的估計值 、
以上就是命令 reg2logit 的具體運行步驟。進一步地,我們還可以繼續得到在 或 時後驗概率 、 的預測概率值,從 LPM 轉化到 Logit 模型獲取概率預測值的過程就是 LDM 方法。
3.2 語法結構安裝命令:
. ssc install reg2logit, replacereg2logit 的語法結構如下:
reg2logit yvar [xvars] [if] [in], iterate(#) iterate(#): 轉換 OLS 估計參數後要迭代的次數。默認值為 0。如果將 iter()選項設置為大於零的值,轉換後的 OLS 估計值為迭代極大似然估計值提供了起點。3.3 模擬實例*-生成數據 set obs 1000 gen id = _n set seed 123 gen y = (id <= 750) //將前750個數的y設置為1 gen x1 = rnormal(3, 1) if id <= 750 //當y=1時,X1|Y~N(3,0.5) replace x1 = rnormal(6, 1) if id > 750 //當y=0時,X1|Y~N(6, 0.5) gen x2 = rnormal(10, 1) if id <= 750 //當y=1時,X2|Y~N(10,1) replace x2 = rnormal(8, 1) if id > 750 //當y=0時,X2|Y~N(8,1) *-參數比較 qui logit y x1 x2 est store m1 qui reg2logit y x1 x2 est store m2 qui reg2logit y x1 x2, iter(1) est store m3 qui reg2logit y x1 x2, iter(3) est store m4上面生成了 1000 個觀察值,其中 在 已知的 cluster 中,滿足獨立的正態分布,故而其聯合分布是多元正態分布,其滿足多元正態性。將常規 logit 模型作為標準,比較 LDM 方法、迭代一次以及迭代三次的模型參數和擬合效果。因為對被解釋變量的條件更苛刻,我們假設 LDM 方法生成的 logit 參數不會比 logit 模型本身更好。
. esttab m1 m2 m3 m4, s(r2_p) b(%6.4f) star(* 0.1 ** 0.05 *** 0.01) --- (1) (2) (3) (4) y y y y --- y x1 -3.0198*** -3.1425*** -2.9943*** -3.0198*** (-9.58) (-9.24) (-9.63) (-9.58) x2 1.8406*** 1.9772*** 1.8190*** 1.8406*** (7.28) (7.20) (7.30) (7.28) _cons -2.0693 -2.5695 -2.0062 -2.0693 (-0.95) (-1.13) (-0.93) (-0.95) --- r2_p 0.8534 0.8526 0.8534 0.8534 --- t statistics in parentheses * p<0.1,** p<0.05,*** p<0.01在本次模擬中,logit 模型 (1) 需要迭代 6 次才能獲得最終結果,而使用 reg2logit 命令,即 LDM (2) 模型則無需迭代,這解釋了使用 reg2logit 的速度快於 logit 的原因。在解釋變量滿足多元正態性的條件下,LDM 模型近似 logit 模型的效果非常好,係數和擬合優度均十分接近。且 LDM (4) 模型只需迭代三次,就可以得到和使用 logit 命令幾乎一樣的係數估計。
*-預測概率pi qui logit y x1 x2 predict pr1 sum pr1 qui reg2logit y x1 x2 predict pr2 sum pr2 ttest pr1==pr2使用 ttest 命令比較 LDM 方法和典型 logit 方法預測出的概率 P (Y=1|x) 是否存在顯著差異。
. ttest pr1==pr2 Paired t test --- Variable | Obs Mean Std. Err. Std. Dev. [95% Conf. Interval] ----+--- pr1 | 1,000 .75 .0128063 .4049695 .7248697 .7751303 pr2 | 1,000 .7535263 .0128085 .4050392 .7283918 .7786609 ----+--- diff | 1,000 -.0035263 .0002747 .0086865 -.0040654 -.0029873 --- mean(diff) = mean(pr1 - pr2) t = -12.8375 Ho: mean(diff) = 0 degrees of freedom = 999 Ha: mean(diff) < 0 Ha: mean(diff) != 0 Ha: mean(diff) > 0 Pr(T < t) = 0.0000 Pr(|T| > |t|) = 0.0000 Pr(T > t) = 1.0000可以看出在此例中兩者預測的概率均值仍然存在顯著差異,然而大部分差異僅在 -0.004~0.003 之間,難以對預測 的準確度產生決定性的影響。
*-預測準確率 gen y1 = (pr1 >= 0.5) gen y2 = (pr2 >= 0.5) count if y1 == y // accuracy = 969/1000 = 96.9% count if y2 == y // accuracy = 969/1000 = 96.9% count if y1 != y2 & y1 ==y // logit win while LDM lose : 2 count if y1 != y2 & y2 ==y // LDM win while logit lose : 2 3.4 應用實例:mroz 數據集這裡使用了 753 名已婚婦女的勞動力參與情況的數據集(Mroz 1987)來比較 LPM \ Logit \ LDM 模型的概率預測情況。被解釋變量 inlf 表示,處於勞動力中的婦女為 1,否則為 0。解釋變量 kidslt6 是該婦女撫養的六歲以下兒童的人數,age 是婦女年齡,educ 是受教育程度(年),exper 勞動經驗 (年),以及 expersq 經驗的平方。
*-導入數據 ssc install bcuse, replace // 安裝 bcuse 命令 bcuse mroz, clear *-LPM Logit LDM qui reg inlf kidslt6 age educ exper expersq //LPM predict yhat_lpm, xb qui logit inlf kidslt6 age educ exper expersq //Logit predict yhat_logit reg2logit inlf kidslt6 age educ exper expersq //LDM predict yhat_ldm從下表中可以看出,雖然 LPM 的均值合 Logit 模型最為接近,然而 LPM 預測值的最大值 1.12 超過了 1,最小值為 -0.28 小於 0,對於概率預測值來說,這是不合常理的。此外,LDM 和 logit 的預測值都在 (0, 1) 之間,極值也較為相近。
. sum yhat* Variable | Obs Mean Std. Dev. Min Max -+---- yhat_lpm | 753 .5683931 .2517531 -.2782369 1.118993 yhat_ldm | 753 .5745898 .2605278 .0136687 .9676127 yhat_logit | 753 .5683931 .2548012 .0145444 .9651493從三類模型預測概率的相關係數來看,logit 模型與 LDM 的概率預測值相關性最高。
. pwcorr yhat* | yhat_lpm yhat_l~t yhat_ldm ---+-- yhat_lpm | 1.0000 yhat_logit | 0.9880 1.0000 yhat_ldm | 0.9870 0.9994 1.0000下圖繪製了 LDM\LPM 同 Logit 模型概率預測值的散點圖。可以看到,當 Logit 模型預測概率值接近於 1 和 0 時,LPM 概率預測值出現了較大的偏差,而 LDM 模型概率預測值與 Logit 概率預測值的關係較為穩定。整體而言,LDM 在一定程度上要優於 LPM。
set scheme s2color label var yhat_lpm "LPM" label var yhat_logit "Logit" label var yhat_ldm "LDM" twoway /// (scatter yhat_lpm yhat_logit, m(Oh) msize(*0.6)) /// (scatter yhat_ldm yhat_logit, m(+) msize(*0.6) mc(red%70)) /// , legend(ring(0) position(5)) graph export "lianxh-Logit-LPM-LDM.png", replace
4. 總結本文簡要地介紹了以 OLS 估計轉換為 Logit 模型參數的方法,以及應用此方法預測二元概率值的線性判別模型 (LDM)。值得注意的是,該轉換方法和 LDM 均需滿足被解釋變量的條件多元正態性假設,且 LDM 僅是應用該轉換方法的一種實踐。對於 的非 取值和多元情況,雖然本文沒有介紹,但是以 OLS 轉化估計 Logit 模型參數的方法都是普適的。
總之,LDM 方法是一種有效的方法,reg2logit 命令是一種實現 LDM 的有效方式,本文結論如下。
第一,LDM 方法運算速度更快且估計值有效。 對於大數據或數量多、相關係數大的被解釋變量,logit 這樣的迭代命令可能很慢,致使其無法產生 MLE (minka 2003 ; ji&telgarsky 2018)。Reg2logit 無需迭代,只需進行 OLS 估計並進行轉換,故而可以快速估計參數。LDM 估計的參數值通常是有效的。
第二,LDM 能夠替代 LPM。 LDM 推導的基礎是 LPM 的 OLS 估計,LDM 吸收了 LPM 模型的大部分優勢,且能夠獲得更有效的預測概率 。
第三,reg2logit 還具有其他應用場景。 Paul T. von Hippel 提到該命令還可以在擬合一個多元正態插補模型時插補虛擬變量。
雖然 LPM 和 Logit 之辯暫時還沒有結論,然而可以確定的是,LDM 在一定程度上 (多元正態性限制) 要優於 LPM,故而 LPM 和 Logit 之辯的命題似乎能夠轉換為 LDM 和 Logit 之辯了。
5. 參考文獻溫馨提示: 文中連結在微信中無法生效。請點擊底部「閱讀原文」。
Haggstrom G W. Logistic regression and discriminant analysis by ordinary least squares[J]. Journal of Business & Economic Statistics, 1983, 1(3): 229-238.-PDF-Mroz T A. The sensitivity of an empirical model of married women's hours of work to economic and statistical assumptions[J]. Econometrica: Journal of the econometric society, 1987: 765-799.-PDF-Minka T P. A comparison of numerical optimizers for logistic regression[J]. Unpublished draft, 2003: 1-18.-PDF-Ji Z, Telgarsky M. Risk and parameter convergence of logistic regression[J]. arXiv preprint arXiv:1803.07300, 2018.-PDF-PAUL ALLISON, Statistical Horizons 博客, Better Predicted Probabilities from Linear Probability Models維剛, csdn 博客, 第3章-線性概率模型(1)-logistics/probit模型tang_1994, csdn博客, 從線性判別分析(LDA)來理解線性分類(linear classifiers)和概率模型 (probabilistic modeling)
6. 相關推文Note:產生如下推文列表的命令為: lianxh logit 二元, m 安裝最新版 lianxh 命令: ssc install lianxh, replace
Stata新命令:面板-LogitFE-ProbitFEStata:多元 Logit 模型詳解 (mlogit)詳解 Logit/Probit 模型中的 completely determined 問題Stata:嵌套 Logit 模型 (Nested Logit)溫馨提示: 文中連結在微信中無法生效。請點擊底部「閱讀原文」。
連享會 · 最受歡迎的課 🍓 2021 Stata 寒假班 ⌚ 2021 年 1.25-2.4
🌲 主講:連玉君 (中山大學);江艇 (中國人民大學)
👉 課程主頁 :https://gitee.com/arlionn/PX
關於我們
🍎 連享會 ( 主頁:lianxh.cn ) 由中山大學連玉君老師團隊創辦,定期分享實證分析經驗。👉 直達連享會: 【百度一下: 連享會】即可直達連享會主頁。亦可進一步添加 主頁,知乎,面板數據,研究設計 等關鍵詞細化搜索。
New! lianxh 命令發布了: GIF 動圖介紹 隨時搜索連享會推文、Stata 資源,安裝命令如下: . ssc install lianxh 使用詳情參見幫助文件 (有驚喜): . help lianxh