2025年4月8日,Stata公司正式宣布Stata 19上線啦!或許計量小伙伴們還沒把Stata 18捂熱,Stata公司就推出了功能更為強大的Stata 19。工欲善其事,必先利其器。Stata公司正如“有匪君子,如切如磋,如琢如磨”,將Stata利器打造得日益精良與強大。
Stata之所以能成為流行的計量經濟學軟件,根本原因在于Stata十分貼近計量經濟學的實踐應用。此次Stata 19的全新升級,一如既往地切中了時下實證研究的熱點與痛點??偨Y起來,主要有以下六大方面更新,下面將分別介紹:
1、機器學習(隨機森林,梯度提升法)2、面板數據(高維固定效應,相關隨機效應,面板VAR)3、因果推斷(條件平均處理效應,控制函數法,弱工具變量穩健推斷等)4、貝葉斯方法(貝葉斯變量選擇、分位數回歸、自助法)5、其他計量方法(久期模型,相關系數的元分析等)6、Stata基礎功能升級(Do文件編輯器,畫圖,制表等)
1、機器學習
自從Stata 16引入了拉索估計量(lasso),計量小伙伴們一直在期待Stata官方命令能引入另一類常用的機器學習方法,即基于決策樹(decision trees)的集成學習方法(ensemble learning),包括隨機森林(random forest)與梯度提升法(gradient boosting machine)。Stata 19讓我們的夢想成真了!
Stata 19提供了一套新的h2oml命令,可輕松地接入開源的大數據機器學習平臺H2O,針對回歸(regression)或分類(classification)問題使用隨機森林或梯度提升法。H2O使得機器學習變得更加容易,有時稱為AutoML。我們直接上例子吧!
在Stata中初始化(initiate)H2O:
. h2o init
將Stata內存中的當前(current)數據集導入H2O,并記為“dataframe”:
. _h2oframe put, current into(dataframe)
針對二分類問題(binary classification),進行梯度提升法的估計,并自動選擇有關決策樹數目(number of trees)與學習率(learning rate)的超參數(hyperparameters):
. h2oml gbbinclass response predictors, ntrees(20(10)200) lrate(0.1(0.1)1)
其中,gbbinclass表示“gradient boosting binary classification”,response為響應變量(即被解釋變量),predictors為預測變量(即解釋變量)。選擇項“ntrees(20(10)200) ”表示從{20, 30,...,200}中選擇優的決策樹數目,而“lrate(0.1(0.1)1)”表示從{0.1, 0.2,...,1}中選擇優的學習率。
畫變量重要性圖(variable importance plot):
. h2omlgraph varimp
使用已估計模型,進行預測:
. _h2oframe change newdata
. h20mlpredict outcome_pred
2、面板數據
Stata 19引入了有關面板數據的若干新命令或選擇項,包括高維固定效應(high dimensional FE)、相關隨機效應(correlated random effects)、面板向量自回歸(panel VAR),給用戶帶來了強大的新功能與便利。
2.1 高維固定效應
不少計量小伙伴們知道用于估計高維固定效應(high-dimensional fixed effects)的非官方Stata命令reghdfe。這次Stata 19將其相應功能納入了官方命令(無須額外命令,僅新增了一個選擇項),使得操作更為簡便可靠!
例如,在估計面板固定效應模型時,假設我們還想額外地控制三個分類變量(categorical variables)z1, z2與z3,只要在常規命令加上absorb()的選擇項即可:
. xtreg y x, fe absorb(z1 z2 z3)
類似地,我們在進行二階段最小二乘法(2SLS)估計時,也可以使用absorb()的選擇項:
. ivregress 2sls y1 x1 (y2 = x2), absorb(z1 z2 z3)
這真的太方便啦!
2.2 相關隨機效應
靜態面板的兩個常用模型為隨機效應(random effects,簡記RE)與固定效應(fixed effects,簡記FE)。然而,二者均有缺點。隨機效應模型不夠穩健,如果解釋變量與個體效應相關,則得不到一致估計。另一方面,雖然固定效應模型較為穩健,但無法估計非時變(time-invariant)變量的系數。為此,Stata 19推出了“相關隨機效應”(correlated random effects,簡記CRE),可以兼顧二者的優點。
CRE模型允許解釋變量與個體效應相關,且時變(time-varying)變量的系數估計值與FE完全相同,故本質上為FE模型。在算法上,CRE估計量將時變變量的組平均值加入混合回歸中,故可視為一種控制函數法(通過時變變量的組平均值來控制遺漏變量)。由于CRE未做組內離差變換,故也可以估計出非時變變量的系數,這是CRE的優點。以數據集nlswork為例,可輸入如下命令:
. webuse nlswork
. xtreg ln_wage tenure age i.race, cre vce(cluster idcode)
其中,選擇項“CRE”表示相關隨機效應。所得回歸結果參見下圖。
在該回歸結果的zui后一行,提供了蒙德拉克設定檢驗(Mundlak specification test)的結果,強烈拒絕RE的原假設,而支持CRE模型。另外,該檢驗也可以在估計完RE或FE模型后單獨使用,例如:
. quietly xtreg ln_wage tenure age i.race, vce(cluster idcode)
. estat mundlak
蒙德拉克設定檢驗的作用類似于豪斯曼檢驗(Hausman test),但前者的優點是可直接使用聚類穩健標準誤,且只要作一個回歸即可(豪斯曼檢驗需要作兩個回歸)。檢驗結果顯示,強烈拒絕RE的原假設,而支持FE與CRE的替代假設。
2.3 面板向量自回歸
向量自回歸(vector autoregressoin,簡記VAR)是常見的時間序列模型,但由于VAR模型的待估參數較多,故一般需要較長的時間維度。面板向量自回歸(panel vector autogression,簡記Panel VAR)將VAR模型推廣到面板數據中。面板VAR模型既包含個體固定效應,也包括被解釋變量的滯后項,故可視為動態面板模型(dynamic panel-data model)與VAR模型的結合。相應地,面板VAR模型的估計方法類似于動態面板,主要使用廣義矩估計(generalized method of moment,簡記GMM)。其漸近理論要求橫截面單位的數量趨向無窮大,故適用于時間維度較短的短面板。
以瑞典政府開支數據集swedishgov為例,可輸入如下命令:
. webuse swedishgov.dta
. xtvar grants revenues expenditures, lags(2)
其中,“xtvar, lag(2)”表示將被解釋變量滯后二階進行面板VAR估計。
在估計面板VAR模型后,還可使用命令vargranger進行格蘭杰因果檢驗,并使用irf系列的命令估計脈沖響應函數,并畫脈沖響應圖;在Stata操作上非常類似于VAR模型。
3、因果推斷
因果推斷始終是實證研究的核心方法。Stata 19在因果推斷方面的功能也進一步加強,新推出的方法包括條件平均處理效應(CATE)以及有關工具變量法的一些新方法。
3.1 條件平均處理效應
因果推斷關注的對象一般為全樣本的平均處理效應(average treatment effect,簡記ATE)或處理組平均處理效應(average treatment effect on the treated,簡記ATT或ATET)。然而,不同個體的處理效應很可能存在異質性,而研究者有時感興趣,異質性處理效應如何隨著個體特征而變。例如,電商平臺可能關心價格折扣如何影響消費者行為,而價格折扣的處理效應可能依賴于消費者的年齡與收入。
為此,Stata 19推出了全新的cate命令,用于估計“條件平均處理效應”(conditional average treatment effect,簡記CATE),即在給定某種個體特征條件下的平均處理效應。命令cate可以估計三種不同類型的CATE,包括“個體平均處理效應”(individualized average treatment effect),“分組平均處理效應”(group average treatment effect)及“排序分組平均處理效應”(sorted group average treatment effect)。除了估計外,cate系列命令還可進行預測、可視化及統計推斷。
Stata 19的cate命令功能強大、靈活而穩健。例如,在對結果回歸(outcome regression)與處理效應模型(treatment models)建模時,可使用參數模型(parametric models),拉索估計量(lasso)或廣義隨機森林(generalized random forest;有時也稱為“誠實森林”,即honest forest)。該命令提供了兩個穩健估計量,即“偏效應過濾”(partialling out)與“增強逆概加權”(augmented inverse probability weighting),其中后者為雙穩健估計量(doubly robust estimator);并使用“交叉擬合”(cross-fitting)以避免過擬合(overfitting)。
3.2 控制函數法
傳統的工具變量法一般使用二階段zui小二乘法(two-stage least squares,簡記2SLS)。2SLS之所以成立,是因為第yi階段回歸為線性模型,而線性回歸的OLS估計具有正交性。這也意味著,2SLS一般無法推廣到非線性模型中;例如,當內生變量為虛擬變量時,第yi階段回歸為Probit模型。
為此,Stata 19新推出了更為靈活的“控制函數法”(control function approach,簡記CF),不僅可用于線性模型,而且也適用于非線性模型,例如第yi階段回歸為Probit。假設y1為被解釋變量,x為外生解釋變量,y2為內生解釋變量,而z1與z2為工具變量,則傳統的2SLS命令為
. ivregress 2sls y1 x (y2 = z1 z2)
若使用控制函數法,可調用Stata 19的cfregress命令:
. cfregress y1 x (y2 = z1 z2)
事實上,由于這是線性回歸,故以上兩個命令語句的回歸結果完全相同(系數估計值與標準誤均相同);盡管二者的算法不同。在算法上,二者的第yi階段回歸相同,但第二階段回歸則不同(盡管zui終結果在數值上相等):2SLS將第yi階段回歸的擬合值代入原方程,替代內生解釋變量進行OLS回歸;而CF則將第一階段回歸的殘差作為遺漏變量加入原方程,進行OLS回歸。
控制函數法的優勢在于,第yi階段回歸也可以使用非線性回歸。例如,若內生解釋變量y2為虛擬變量,則可使用Probit進行第yi階段回歸:
. cfregress y1 x (y2 = z1 z2,probit)
如果被解釋變量y1為虛擬變量,則使用2SLS將無視y1服從兩點分布的事實,而強行擬合線性模型。此時,可使用Stata 19新推出的cfprobit命令,使用控制函數法進行IV估計:
. cfprobit y1 x (y2 = z1 z2)
如果內生解釋變量y2也為虛擬變量,則可輸入命令
. cfprobit y1 x (y2 = z1 z2,probit)
3.3 弱工具變量穩健推斷
使用工具變量法進行因果推斷一般要求強工具變量。在弱工具變量(weak instrument)的情況下,2SLS估計量變得不可靠,即使在大樣本下。這是因為2SLS估計量其實是一個比值(ratio),而在弱工具變量的情況下,該比值的分母接近于0,導致統計推斷失效。
為此,Stata 19推出了安德森-魯賓檢驗(Anderson-Rubin test),不再使用上述比值進行統計推斷,故即使在弱工具變量的情況下依然穩健。例如:
. ivregress 2sls y1 x (y2 = z1 z2)
. estat weakrobust
此估計后命令(postestimation command)“estat weakrobust”也可以在命令ivregress gmm與ivregress liml之后使用。
3.4 時間序列的工具變量法
Stata 19專門推出了針對時間序列的工具變量法,包括通過工具變量法估計結構VAR模型,以及使用工具變量法估計脈沖響應函數。例如:
使用廣義矩估計(GMM)估計結構向量自回歸(Structural VAR,簡記SVAR)模型:
. ivsvar gmm y1 y2 (shock = z1 z2)
在使用“局部投影”(local projection),通過脈沖響應函數(impulse response function,簡記IRF)估計動態因果效應(dynamic causal effects)時,以工具變量法克服潛在的內生性:
. ivlpirf y, endogenous(x = iv)
其中,y為響應變量(response variable),x為內生的脈沖變量(impulse variable),而iv為工具變量。
4、貝葉斯方法
Stata 19在貝葉斯計量經濟學(Bayesian econometrics)方面的功能繼續得到加強,新增方法包括貝葉斯變量選擇、分位數回歸及自助法等。例如:
使用貝葉斯方法從變量x1-x100中進行變量選擇:
. bayesselect y x1-x100
使用貝葉斯方法進行分位數回歸(quantile regression):
. bayes: qreg y x1 x2
其中,前綴(prefix)“bayes”表示使用貝葉斯方法進行分位數回歸,而非通常頻率學派(frequentist school)的分位數回歸。
使用貝葉斯自助法(Bayesian bootstrap)估計x的均值:
. bayesboot r(mean): summarize x
其中,前綴(prefix)“bayesboot ”表示使用貝葉斯方法來匯報變量x的統計特征,并提取其均值。
5、其他計量方法
Stata 19還提供了其他方面的計量新方法,包括久期模型、相關系數的元分析、潛類別模型等。
5.1 久期模型
久期模型(duration model)的被解釋變量為某事件存續的時間,例如失業持續時間,病人存活的時長等。在原有久期模型的Stata模塊基礎上(命令均以st開頭),針對存在“區間刪失”(interval-censored)的多事件數據(multiple-events data),Stata 19提供了估計“邊際考克斯比例風險模型”(marginal Cox proportional hazards model)的新命令stmgintcox。
5.2 相關系數的元分析
在文獻中,針對同一問題,常常有多項類似的研究,但所得估計結果不盡相同。如何將這些相似研究的結果進行整合,以得到統一的結論,這正是“元分析”(meta-analysis)的目標。在Stata原有的元分析meta命令模塊中,Stata 19新增了對于相關系數的元分析功能。相關系數無疑是zui重要的描述性統計之一。
5.3 潛類別模型
“潛類別模型”(latent class model)是一種常見的統計模型,它假設數據來自于若干總體(或類別)的混合,故也稱為“有限混合模型”(finite mixture model);例如,三個服從正態分布的總體按照一定比例的混合。如果知道類別的數目,則可使用原有的Stata命令gsem(表示generalized structural equation model)進行估計。例如,分別估計單類別(one-class)、雙類別(two-class)與三類別(three-class)的潛類別模型,并存儲相應的估計結果:
. gsem (y1 y2 y3 y4 <- ), logit lclass(C 1)
. estimates store oneclass
. gsem (y1 y2 y3 y4 <- ), logit lclass(C 2)
. estimates store twoclass
. gsem (y1 y2 y3 y4 <- ), logit lclass(C 3)
. estimates store threeclass
Stata 19提供了對以上所估計的三個潛類別模型進行模型比較(model-comparison)的統計量及檢驗,可輸入命令:
. lcstats
其中,“lc”表示latent class(潛類別),而“stats”表示statistics(統計量)。
6、Stata基礎功能提升
6.1 Do文件編輯器
Stata 19的Do文件編輯器(Do-file Editor)變得更為強大,新增功能包括:
?。?)變量名(variable names)、宏(macros)與存儲結果(stored results)的自動補全(autocompletion);
?。?)方便用戶使用的Do文件編輯器模板(Do-file Editor templates);
?。?)對當前詞(current word)在編輯器中的所有出現之處均提供高亮(highlighting),無論大小寫(case-insensitive);并對當前所選內容(current selection)在編輯器中的所有出現之處均提供高亮(highlighting),區分大小寫(case sensitive)。
?。?)括號高亮(bracket hightlighting),即對包含當前光標的括號(the brackets enclosing the current cursor position)提供高亮。
?。?)代碼折疊功能的提升(code folding enhancement),包括新增的菜單欄目(menu items)“Fold all”(折疊全部可折疊代碼), “Unfold all”(展開所有已折疊代碼)與“Fold selection”(折疊所選內容)。
6.2 畫圖
Stata 19的畫圖功能也變得更為強大,新增功能包括:
?。?)通過新增命令twoway heatmap畫熱圖(heat maps),即在變量(x, y)取值的網格上,以小方塊的顏色變化來表示對應變量z的取值高低。
?。?)通過新增命令twoway rpspikes畫“刺形”的點圖或范圍圖(plot points and ranges indicated by spikes),例如展示某統計量及其相應的置信區間。
?。?)通過新增命令twoway rpcaps畫“帶帽刺形”的點圖或范圍圖(plot points and ranges indicated by spikes with caps),例如展示某統計量及其相應的置信區間。
?。?)在使用命令graph bar畫柱狀圖/條形圖(bar plot)時,可畫樣本均值及其置信區間,以及在標簽與控制條形分組方面的改進(improved labelling, and control of bar groupings)。
?。?)在使用命令graph dot畫點狀圖(dot chart)時,可畫樣本均值及其置信區間,以及在標簽與控制點狀分組方面的改進(improved labelling, and control of dot groupings)。
?。?)在使用命令graph box畫箱形圖(box plot)時,改進了標簽與對箱形分組的控制(improved labelling, and control of box groupings)。
?。?)根據變量上色(colors by variable)的選擇項colorvar(),可適用于更多的twoway plot命令,包括line, connected, tsline, rconnected及tsrline等。
6.3 制表
Stata 19的制表功能也得以進一步提升,可更方便地創建與定制表格,例如:
?。?)Stata的制表命令table新增了增加標題的選擇項title(),增加腳注的選擇項note(),以及將表格導出為指定文件格式(例如Word, LaTex, Excel等)的選擇項export()。
?。?)更簡便的方差分析表格(easier ANOVA tables)。
Stata 19制表功能的更多細節改進,可參見Stata官網(www.stata.com)。
總之,Stata 19是一次令人激動的重大升級,在機器學習、因果推斷、面板數據、貝葉斯方法、Stata基礎功能等領域均推出了功能強大的新方法,更加貼近計量實戰的需求。顯然,在可預見的將來,Stata 仍將是經管社科的shou選計量與統計軟件。
關于 Stata 19 的更多詳細內容,請點擊頁底 “閱讀原文”。
備注:為保護正版軟件權益,防止盜版軟件的傳播,如對Stata 19感興趣的學者,可聯系StataCorp, LLC官方授權合作伙伴北京友萬信息科技有限公司(友萬科技)采購正版軟件或申請試用。
具體申請方式如下:申請方式 1: 聯系徐老師 18610597626 (手機/微信同號)。申請方式 2: 掃描下方二維碼