溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用Python計(jì)算雙重差分模型DID及其對(duì)應(yīng)P值

發(fā)布時(shí)間:2021-09-29 17:32:01 來(lái)源:億速云 閱讀:2063 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“如何使用Python計(jì)算雙重差分模型DID及其對(duì)應(yīng)P值”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

目錄
  • 1. DID(Differences-in-Differences)定義

  • 2. DID模型形式

  • 3. OLS多項(xiàng)式擬合

1. DID(Differences-in-Differences)定義

雙重差分法,其主要被用于社會(huì)學(xué)中的政策效果評(píng)估。這種方法需要兩個(gè)「差異」數(shù)據(jù)。一個(gè)是干預(yù)前后的「差異」,這個(gè)是自身實(shí)驗(yàn)前后的差異。另外一個(gè)是干預(yù)組與對(duì)照組的「差異」。DID利用這兩個(gè)「差異」的差異來(lái)推算干預(yù)的效果。因此,顧名思義叫做雙重差分法。

其原理是基于一個(gè)反事實(shí)的框架來(lái)評(píng)估政策發(fā)生和不發(fā)生這兩種情況下被觀測(cè)因素y的變化。如果一個(gè)外生的政策沖擊將樣本分為兩組:受政策干預(yù)的Treat組和未受政策干預(yù)的Control組(在政策沖擊前,Treat組和Control組的y沒有顯著差異)。那么,可以將Control組在政策發(fā)生前后y的變化看作Treat組未受政策沖擊時(shí)的狀況(反事實(shí)的結(jié)果)。通過(guò)比較Treat組y的變化(D1)以及Control組y的變化(D2),就可以得到政策沖擊的實(shí)際效果(DD=D1-D2)。

注意:只有在滿足“政策沖擊前Treat組和Control組的y沒有顯著差異”(即平行性假定)的條件下,得到的雙重差分估計(jì)量才是無(wú)偏的。

如下圖所示:

如何使用Python計(jì)算雙重差分模型DID及其對(duì)應(yīng)P值

干預(yù)組實(shí)驗(yàn)前為A1,實(shí)驗(yàn)后為A2。對(duì)照組實(shí)驗(yàn)前為B1,實(shí)驗(yàn)后為B2。對(duì)于干預(yù)組實(shí)驗(yàn)前后差異為A2-A1,對(duì)于對(duì)照組實(shí)驗(yàn)后為B2-B1。兩者之差(A2-A1)-(B2-B1)即為DID結(jié)果,因果效應(yīng)/處理效應(yīng)。如下圖處理效應(yīng)所代表的部分。

如何使用Python計(jì)算雙重差分模型DID及其對(duì)應(yīng)P值

2. DID模型形式

如何使用Python計(jì)算雙重差分模型DID及其對(duì)應(yīng)P值

如何使用Python計(jì)算雙重差分模型DID及其對(duì)應(yīng)P值 為分組虛擬變量(處理組=1,控制組=0);

如何使用Python計(jì)算雙重差分模型DID及其對(duì)應(yīng)P值 為分期虛擬變量(政策實(shí)施后=1,政策實(shí)施前=0);

交互項(xiàng) 如何使用Python計(jì)算雙重差分模型DID及其對(duì)應(yīng)P值 表示處理組在政策實(shí)施后的效應(yīng),其系數(shù)即為雙重差分模型重點(diǎn)考察的處理效應(yīng)。

3. OLS多項(xiàng)式擬合

根據(jù)DID公式,我們可以通過(guò)使用多項(xiàng)式擬合的方法來(lái)求得DID及其P值。以下為Pyhton方法:使用statsmodels庫(kù)中ols方法,需要根據(jù)上述公式準(zhǔn)備數(shù)據(jù),t代表時(shí)間(干預(yù)前=0,干預(yù)后=1)、g代表分組(干預(yù)組=1,對(duì)照組=0)、還有一個(gè)是交叉項(xiàng)tg(計(jì)算其t*g即可)。

代碼如下:

import statsmodels.formula.api as smf
import pandas as pd
v1 =[0.367730,0.377147,0.352539,0.341864,0.29276,0.393443,0.374697,0.346989,0.385783,0.307801]
t1 = [0,0,0,0,1,0,0,0,0,1]
g1 =[1,1,1,1,1,0,0,0,0,0]
tg1 = [0,0,0,0,1,0,0,0,0,0]
aa = pd.DataFrame({'t1':t1,'g1':g1,'tg1':tg1,'v1':v1})
X = aa[['t1', 'g1','tg1']]
y = aa['v1']
est = smf.ols(formula='v1 ~ t1 + g1 + tg1', data=aa).fit() 
y_pred = est.predict(X)
aa['v1_pred'] = y_pred
print(aa)
print(est.summary()) 
print(est.params)

準(zhǔn)備數(shù)據(jù)格式如下:

如何使用Python計(jì)算雙重差分模型DID及其對(duì)應(yīng)P值

OLS結(jié)果Summary如下:

如何使用Python計(jì)算雙重差分模型DID及其對(duì)應(yīng)P值

交叉項(xiàng)的系數(shù)就是DID結(jié)果,處理效應(yīng)。P>| t |為其P值,小于0.05表示差異顯著。

“如何使用Python計(jì)算雙重差分模型DID及其對(duì)應(yīng)P值”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI