可有償投稿計量經濟圈,計量相關則可
所有計量經濟圈方法論叢的do文件都放在社群裡,可以直接取出使用運行,也歡迎到研究小組交流訪問.感謝鄒恆甫教授對計量經濟圈的關注和支持.
今天,我們「面板數據研究小組」將為計量經濟圈的圈友引薦一個處理多重高維固定效應的方法(multiple high dimensional fixed effects)。我們經常聽說面板數據相對於截面數據有更大的空間去控制異質性,尤其是那些看不見的卻不隨著時間變動的異質性。
比如,我們想要研究學習時長與學生學習成績之間的關係,數據包括整個學校5000名學生在100次考試期間的學習時長和這100次考試的最終成績,還有其他一些可能看不見的影響因素:學生個人能力和學校的校風等。
現在,我們需要做一個面板數據的回歸,除了學生學習時長外,解釋變量還包括每個學生的個人能力(D1)和學校的校風(D2)。如果我們直接把他們按照i.D1和i.D2這種虛擬變量形式放進去進行回歸,那帶給我們最大的難處是運行時間長且會導致我們的電腦系統崩潰。通俗地講,LSDV模型(Least dummy dependent variable)的回歸會帶來更長的運算時間和系統內存佔用。
那如果不止這兩個學生的個體特徵,那我們就需要用更長的時間和佔據更多的電腦內存去運算。在經濟學研究中,我們經常需要控制公司層面、行業類別、省市縣層面的固定效應,那如果直接按照添加虛擬變量的形式進行回歸,我們會等到花兒都謝了也等不到結果。更重要的是,隨著樣本亮的增大N—∞,然後我們那些固定效應因素,比如i.D1和i.D2的維度也會增大((每個人一個dummy),這會導致「incidental parameters」問題(伴隨參數問題)。而作為伴隨參數的固定效應因素的出現,其他由極大似然函數估計的參數的一致性問題就受到挑戰。
感受一下曾經做過的嘗試,我們就知道對於大樣本的微觀數據,高維固定效應確實讓我們的估計出現問題。樣本量過大而導致的運行問題,如果還是用之前的那一套方式,那不管多好的電腦內存都出現了卡殼現象。
我們現在就引薦一個Frisch-Waugh-Lovell定理,他實際上是通過組內估計的方式解決了這個問題(固定效應模型)。第一步:通過減去組內的均值,我們可以把這些固定效應因素(即D1和D2)去除掉;第二部:通過用去掉了組內均值的的Y 對去掉了組內均值的X做線性回歸,然後我們可以得到β;第三部:用第二部回歸中的殘差項μ對D1和D2做回歸,我們可以得到α和γ。這就是我們經常說的固定效應模型——組內估計模型。
這個方法屬於應用型的,裡面的估計程序會涉及到矩陣運算,因此我們就不在這裡具體講解更複雜的過程。這一次,我們把相關操作命令放出來,這樣你就會知道操作格式是怎樣的,今後你只需要修改一下裡面的參數就可以出結果。這個方法之所以能夠節約運算時間和電腦內存,在於他採用的是通過iteration方式獲得最終的結果。這個方法能夠同時處理很多問題:多維固定效應、聚類穩健標準誤、工具變量方法
GP方法得到的這個運算程序,下面的文字解釋了為什麼GP很具有吸引力。
GP algorithm that is commonly used to deal with multiple high-dimensional fixed effects.It uses the iteration and convergence implementationof Least Squared estimation instead of the explicit calculation of theinverse of matrices.Another valuable innovation is that it stores and retrieves each fixed effect as a columnvector, which compresses the dimensions of fixed effects to ones. Hence in each iteration,the estimation of each fixed effect merely involves taking simple average of residuals bygroups, after which the OLS regression is then run for other regressors along with theupdated fixed effect vector as a variable. After convergence of the estimates, the fixedeffects remain identifiable.
reghdfe y x1 x2 x3 x4 x5 x6, cluster(industry) absorb(year city industry)通常的程序表達式,控制了年份、城市和行業固定效應,而且得到行業聚類標準誤。
示例如下
set matsize 1000 //把Mata空間設置大一點,因為牽涉到矩陣運算
clear
sysuse auto //運用系統自帶資料庫
**最簡單的一維固定效應
reghdfe price weight length, absorb(rep78) //把rep78這個固定效應控制起來
est store reg4 //可以把結果保存起來
areg price weight length, absorb(rep78) //這個也可以控制一維固定效應
我們得到的結果與上面通過reghdfe得到的結果是一樣的,這證明reghdfe是一個一般化的控制多重高維固定效應方法的方法。
**一維固定效應但得出聚類標準誤,以下兩種表達式結果一樣
reghdfe price weight length, absorb(rep78)vce(cluster rep78)
reghdfe price weight length, absorb(rep78)cluster(rep78)
**二維和三維固定效應
clear
webuse nlswork
reghdfe ln_w grade age ttl_exp tenure not_smsa south , absorb(idcode year)
reghdfe ln_w grade age ttl_exp tenure not_smsa south , absorb(idcode year occ)
**分類因變量存在交互行為
reghdfe ln_w i.grade#i.age ttl_exp tenure not_smsa , absorb(idcode occ)
**固定效應存在交互行為
reghdfe ln_w grade age ttl_exp tenure not_smsa , absorb(idcode#occ)
**工具變量估計
clear
sysuse auto
reghdfe price weight (length=head), absorb(rep78)
reghdfe price weight (length=head), absorb(rep78) ffirst //報告第一階段回歸
reghdfe price weight (length=head), absorb(rep78) ivsuite(ivregress) //用ivregress估計
reghdfe price weight (length=head), absorb(rep78 turn##c.price) //出現固定效應的交叉項
面板數據研究小組各種方法論叢的do file都放在咱們的社群,可以直接到社群提取使用。