本文主要包括傾向匹配得分命令簡介、語法格式、傾向匹配得分操作步驟 思路,涉及傾向匹配得分應用、平衡性檢驗、共同取值範圍檢驗、核密度函數圖等內容。
1
命令簡介
Stata沒有一個內置的傾向評分匹配的命令,一種非實驗性的抽樣方法,它產生一個控制組,它的協變量分布與被處理組的分布相似。但是,這個方法有幾個用戶編寫的模塊。以下是最受歡迎的模塊(主要有如下幾個外部命令)
psmatch2.ado
pscore.ado
nnmatch.ado
上述主要介紹了如何獲得PSM相關的命令,本文主要介紹如何使用pscore、psmatch2以及Stata官方的PSM命令Teffects。
2
語法格式
pscore語法格式為:
pscore treatment varlist [weight] [if exp] [in range] , pscore(newvar) [blockid(newvar) detail logit comsup level(#) numblo(#) ]選項含義為:
pscore(newvar)是必需的,它要求用戶為估計的傾向評分指定變量名,並將其添加到數據集中。
blockid(newvar)允許用戶為估計傾向分數指定變量名,並將其添加到數據集中。
detail顯示更詳細的輸出,說明為獲得最終結果而執行的步驟。
logit使用logit模型來估計傾向評分,而不是默認的probit模型
本文將平衡特性的分析局限於所有處理和共同支撐區域的控制。選項comsup表示使用具有共同支撐區域樣本。
level(real)允許設置平衡屬性測試的顯著性水平。默認值是0.01。
teffects語法格式為:
help teffects
teffects psmatch (ovar) (tvar tmvarlist [, tmodel]) [if] [in] [weight] [, stat options]選項含義為:
ovar 結果變量
tvar 處理變量
tmvarlist 預測變量
logit指定使用logit模型進行擬合,默認的是probit模型;
psmatch2語法
psmatch2 depvar [indepvars] [if exp] [in range] [, outcome(varlist) pscore(varname) neighbor(integer) radius caliper(real) mahalanobis(varlist) ai(integer) population altvariance kernel llr kerneltype(type) bwidth(real) spline nknots(integer) common trim(real) noreplacement descending odds index logit ties quietly w(matrix) ate]選項含義為:
depvar因變量 ;
indepvars表示協變量;
outcome(varlist)表示結果變量;
logit指定使用logit模型進行擬合,默認的是probit模型;
neighbor(1)指定按照1:1進行匹配,如果要按照1:3進行匹配,則設定為neighbor(3);
radius表示半徑匹配
核匹配 (Kernel matching)
其他匹配方法
廣義精確匹配(Coarsened Exact Matching) || help cem
局部線性回歸匹配 (Local linear regression matching)
樣條匹配 (Spline matching)
馬氏匹配 (Mahalanobis matching)
pstest $X, both做匹配前後的均衡性檢驗,理論上說此處只能對連續變量做均衡性檢驗,對分類變量的均衡性檢驗應該重新整理數據後運用χ2檢驗或者秩和檢驗。但此處對於分類變量也有一定的參考價值。
psgraph對匹配的結果進行圖示。
3
案例應用1
背景數據描述:
這是國家支持工作示範(NSW)處理組數據的子樣本和當前人口調查(CPS)的比較樣本。Lalonde(1986)、Dehejia和Wahba(1999)對這些數據進行了廣泛的分析。
1、首先進行數據結構查看
use "ldw_exper.dta", clear eddesc結果為:
2、描述性分析
tabstat age edu black hisp married re74 re75 u74 u75,statistics(mean) by(t)結果為:
3、Pscore命令進行操作
pscore t age edu black hisp married re74 re75 u74 u75, logit blockid(myblock) comsup pscore(mypscore)結果為:
4、使用attnd命令進行後續分析
attnd re78 t, pscore(mypscore)
結果為:
等價於下面命令
attnd re78 t age edu black hisp married re74 re75 u74 u75, logit結果為:
5、psmatch2命令進行操作
psmatch2 t age edu black hisp married re74 re75 u74 u75, out(re78) neighbor(1) ate ties logit common
結果為:
6、teffects命令進行操作
teffects psmatch (re78) (t married age edu black hisp married re74 re75 u74 u75,logit), atet nneighbor(1)
結果為:
7、平衡性檢驗,需要在psmatch2後面做,上述teffects實現不了。
7.1 傾向匹配得分
local v1 "t"local v2 "age edu black hisp married re74 re75 u74 u75"global x "`v1' `v2' "
psmatch2 $x, out(re78) neighbor(1) ate ties logit common $表示引用宏變量,
等價於 psmatch2 t age edu black hisp married re74 re75 u74 u75, out(re78) neighbor(1) ate ties logit common結果為:
7.2 查看匹配後數據
結果為:
打開數據編輯窗口,會發現軟體自動生成了幾個新變量:
其中_pscore是每個觀測值對應的傾向值;
_id是自動生成的每一個觀測對象唯一的ID(事實上這列變量即是對_pscore排序);
_treated表示某個對象是否試驗組;
_n1表示的是他被匹配到的對照對象的_id(如果是1:3匹配,還會生成_n2, _n3);
_pdif表示一組匹配了的觀察對象他們概率值的差。
7.3 均衡性檢驗
結果為:
7.4 共同取值範圍
結果為:
7.5 核密度函數圖
twoway(kdensity _ps if _treat==1,legend(label(1 "Treat")))(kdensity _ps if _treat==0, legend(label(2 "Control"))),xtitle(Pscore> ) title("Before Matching")
. twoway(kdensity _ps if _treat==1,legend(label(1 "Treat")))(kdensity _ps if (_weight!=1&_weight!=.), legend(label(2 "Control"))),> xtitle(Pscore) title("After Matching")結果為:
4
案例應用1
1、首先進行數據結構查看
webuse cattaneo2
Estimate the average treatment effect of mbsmoke on bweight, using a logistic model (the default) to predict each subject's propensity scoreteffects psmatch (bweight) (mbsmoke mmarried c.mage##c.mage fbaby medu)
Refit the previous model, but only consider a pair of observations a match if the absolute difference in the propensity score is less than 0.1teffects psmatch (bweight) (mbsmoke mmarried c.mage##c.mage fbaby medu), caliper(0.1)結果為:
5
2020國慶Stata研討班
為了幫助大家全面系統的掌握stata,我們在一貫堅持高水平授課辦會的基礎上,特別打造「小班教學、理論與軟體並重、精品課程解析」的課程培訓亮點,現推出2020年Stata國慶班!截至目前,計量經濟學服務中心已經在西安、北京、上海、廣州等地成功舉辦了15場stata高級班,並在深圳南方科技大學舉辦了一場stata編程研討班。由於種種原因,很多學員一直想學卻沒有學,2020,給自己一個勇敢的理由,一起來放大你的小目標。零基礎起步,高級計量及Stata應用遠程班,採用線上的授課模式進行授課。以理論+軟體+案例+操作+講解答疑的模式,初級+高級課程,涵蓋數據管理+橫截面+時間序列+面板數據+門限回歸+因果推斷(傾向匹配得分+合成控制法)+空間計量等專題,幫助你建立系統的計量體系,具體內容如下:
Class 1. A Quick Tour of Stata
stata簡介Why Stata?/what is stata
軟體界面The Stata Interface/What Stata looks like
參考書籍推薦Textbooks
log工作日誌和do文檔What to do first?Set a working directory/Keeping track of things(Do-files and log-files )
命令以及幫助the command & Getting Help(包括help的使用以及ssc install 、findit等外部命令獲取和使用)
Class 2. DATABASE MANIPULATION數據管理
導入導出 Import and Export
面板數據、時間數據、官方數據Time series data &Panel data & Example Datasets
變量以及數據Variable and data types/Indicator or data variables
數據管理Data management
排序Order, aorder, and move
變量標籤Variable Labels and Notes
文字變量處理之數據類型轉換Converting strings to numerics and vice versa(encode 、decode、 destring、 tostring 等)
數據橫向合併和縱向合併Append and merge(merge,包括一對一、一對多、多對一等合併,append、cross、joinby等,)
數據生成Generating new variables
描述分析Describing the data (summarize)
基礎命令Basic commands(table tabulate)
tabstat命令
CSMAR及中經網資料庫複雜的使用技巧
Class 3. 相關分析Correlation analysis(相關分析簡介、相關命令corr、pwcorr、pwcorr_a等應用介紹、分析結果輸出等)
Class 4. 回歸分析Estimation
Class 5. 時間序列
Class 6&7. 靜態面板與動態面板數據
Class 8. 門限回歸
Class 9. 內生性問題專題I:傾向匹配得分
Class 10. 內生性問題專題II:合成控制法
Class 11. 結果輸出Extracting results
Post summary statistics(summarize、tabstat)
Post correlation coefficients (pwcorr、correlate、logout )
Coefficients/equations
Basic syntax and usage
estout、esttab、estadd and other useful Stata commands
Standard errors, p-values, and summary statistics
Use with Word/Rtf/Excel/LaTeX
Other Advanced Examples(esttab、outreg2、logout等)
Class 12. 經濟金融資料庫(國泰安資料庫、中經網)使用技巧
Class 13. 論文寫作專題(從源頭數據處理到分析)
Class 14. 空間計量經濟學模型(橫截面空間計量模型與面板空間模型,包括空間自相關檢驗、空間效應檢驗、SAR、SEM模型以及空間面板隨機與固定效應檢驗等)
重軟體操作、重實戰是課程一直以來的優勢與好評。控制人數的小班教學以確保每一位學員真正學到操作技能。理論與軟體並重,手把手教學,零基礎起步,小白也能學會的Stata研討班!
重要的事情說三遍,我們課程手把手帶大家操作學習,並提供完整do文檔以及數據、講義、資料書等,手把手教學和操作學習!
2,學術學習資料大禮包一份;
3,課後贈送三個配套精品課程視頻:《零基礎學空間計量:空間計量及Geoda、stata應用》+初級班視頻《零基礎學stata,讓每一個文科生都成為計量高手》+高級班視頻《高級量化回歸分析:讓每一個文科生都能學會回歸分析》,全網累計1000人訂閱,價值1000元;
4,後續相同課程現場班可以五折優惠參加。
立體化的服務體系,真正保障學有所成!
1、系統化的知識體系。15場線上+線下班成功舉辦的經驗積累,知識點精細,學習成長路徑更放心;
2、在線直播。授課以直播形式,能夠及時答疑,互動性更強,感受線下課堂學習氛圍
3、課後答疑。有學習上的疑問,可與老師1對1溝通解答。
4、零基礎起步,理論與軟體並重,手把手教學,小白也能學會的計量班。
開課時間:
時間:2020年10月1日-10月4日(四天)
參會人數:限額60人,報名成功與否以實際付款為準,不接受口頭報名。
價格:原價4000元 /3600元 (學生價,僅限全日制本科生和碩士在讀);
授課形式:老師講授指導、學員操作練習、線上答疑解惑。
課程資料:提供PPT、課程講義以及完整的do文檔等。
1.同一單位3人以上報名,9折優惠;
2.同一單位5人以上報名,8折優惠(前2項優惠不能疊加)
1、掌握計量經濟學及Stata操作,能夠運用Stata完成複雜的數據處理工作,並熟練運用Stata完成寫作;2、了解常用模型的思路、原理和建模方法,從源頭資料庫等數據下載、搜集、整理、管理,到stata數據操作,培養數據分析能力;
3、通過中心精心準備的do文檔講義來完成學習,並實現do文檔中現成命令的可複製性(只需要修改部分do文檔命令的變量,就可以一鍵實現數據分析和數據管理的結果,具有複製性),然後根據相關計量經濟學知識學習,能夠獨立完成計量經濟學模型建模以及實證分析!
經濟及社科類青年教師、博士生、碩士生、高年級本科生。(1 Stata愛好學習者。2 經濟管理以及人文社科領域人員、各類市場調查公司、諮詢公司、網際網路公司和科研機構需要進行數據處理的人士。)
支持網絡付款以及對公轉帳
報名流程
2、交費(微信、支付寶或者對公轉帳等),報名前請確認信息。
3、開課前發送培訓通知以及軟體準備,電子版預習資料等。
4、開課後領取發票及邀請函。
網絡付款:掃描下方二維碼立即報名哦
▲(教師)掃碼報名
▲(學生價)掃碼報名
1、即日起接受報名,具體報名截止日期根據實際招生而定,人員招滿將關閉報名通道。2、如人數滿15人,即可開班;若報名人數不夠15人,本次訓練營自動取消,學員所繳納報名費全額返還。3、如您報名後有事不能參加,請及時告知!2020年9月150日17:00之後不再接受退費。4、本次會議可提供增值稅普通發票,如需開具(請聯繫微信:Xindream1992),並根據自己單位財務部門要求填寫抬頭和類目信息(一旦開具不能重開),發票類目為:會議服務費、信息服務費、培訓費、會議費、諮詢費等,報名時可以直接任選其一,其他類目無法開具。5、會議邀請函通知及課程試看和報名諮詢等直接聯繫王老師。請學員自己網絡搜索下載stata15.0/16.0。本次會議最終解釋權歸計量經濟學服務中心所有。
在線諮詢:
王老師
電話:18729083980
微信:Xindream1992
掃碼添加微信