常見的三種組間係數差異檢驗的方法是:引入交叉項(chow檢驗)、基於似無相關模型的檢驗方法(suest)和費舍爾組合檢驗(permutation test)。這三種方法不同於ttest單變量分析;前者是組間係數檢驗,後者是單變量(均值/中位數)差異檢驗。
(1)引入交叉項(chow檢驗):直接在線性回歸中加入交乘項然後檢驗交乘項的係數顯著性即可,這是用得最多最廣泛的一種方法;也叫做大名鼎鼎的chow檢驗,可以通過chowtest 命令快速完成。使用的前提條件是:假設幹擾項同方差、獨立同分布;而且假設控制變量係數在兩組之間無明顯差異。若不滿足前提條件,如變量係數在兩組之間存在差異,或存在異方差的情形,用chow檢驗就會存在問題。變量係數在兩組之間存在差異的解決方法是可以加入更多的交乘項,存在異方差的情形的解決方法是用robust或cluster聚類穩健標準誤來解決。
(2)基於似無相關模型的檢驗方法(suest):在假設兩組樣本的幹擾項相關的前提下進行似無相關模型檢驗。前提條件比chow檢驗更為寬鬆,可以允許兩個幹擾項有不同的分布。在stata中根據suest命令操作即可。需要注意的是,suest適用於截面數據,不適用於面板數據;不能用xtreg個體固定效應模型進行檢驗;除此之外,suest中不能用robust進行異方差修正(這一點無關緊要,因為robust不會影響回歸係數,不加也不影響test結果)。
reg y x1 x2 if group==0
est store a
reg y x1 x2 if group==0
est store b
suest a b
// 對兩組樣本進行suest似無相關估計;
test [a_mean]y=[b_mean]y
test [a_mean]x1=[b_mean]x1
test [a_mean]x2=[b_mean]x2
// 檢驗組間係數差異;
(3)費舍爾組合檢驗(permutation test):原理是bootstrap抽樣,檢驗兩組係數差異是否異於零,所以每次結果可能不一樣。具體做法是先算出兩組係數差異,然後通過估計該統計量所處分布來推出經驗p值,判斷組間差異的顯著性(在stata中可通過bdiff命令來實現)。費舍爾檢驗要求兩組的虛擬變量個數一樣(i.ind後各個ind就成了虛擬變量,保證兩組各個ind內個數一樣,要求太苛刻);
bdiff, group(xx) model(y x1 x2) reps(1000) detail
// bdiff檢驗;
// group括號內必須是二元虛擬變量,若有多組,需刪除超過0-1之外的其他組;
// model括號內是回歸模型;
// reps括號內是bootstraps抽樣次數,可選擇1000次-5000次;
// detail選項可進一步呈現兩組的實際估計係數。