2013-12-17 154 views
1

我有一組面板數據,但並非所有人都存在於所有時段。我看到當我運行我的xtreg時,每組有1-4個觀察值,平均值爲1.9。我只想包括那些有4個觀察值的那些。有什麼辦法可以輕鬆做到這一點嗎?僅使用Stata在面板迴歸中包括完整的組

回答

2

我知道你只想在迴歸中包含那些恰好有4個觀察值的組。如果是這種情況,那麼一種解決方案是計數每組觀測值的數量和條件使用if迴歸:

clear all 
set more off 

webuse nlswork 
xtset idcode 

list idcode year in 1/50, sepby(idcode) 

bysort idcode: gen counter = _N 

xtreg ln_w grade age c.age#c.age ttl_exp c.ttl_exp#c.ttl_exp tenure /// 
    c.tenure#c.tenure 2.race not_smsa south if counter == 12, be 

在這個例子中迴歸調節爲基團與12個觀察。該xtreg命令提供(除其他事項外):

觀測數= 1881

組數= 158

,你可以與運行迴歸沒有if的結果比較:

OBS總數= 28091

組數= 4697

正如評論說@NickCox,如果你不介意丟失的意見,你可以dropkeep(UN)所需的組:

bysort idcode: drop if _N != 4 

bysort idcode: keep if _N == 4 

後跟無條件xtreg(ie沒有if)。

請注意,兩種方法都會計算錯誤,所以您可能需要對此進行解釋。

另一方面,您可能想要考慮爲什麼要在分析中丟棄該數據。

+1

單線是爲了避免劃傷或「保留」那些「掉落」面板。在最簡單的情況下,這將會像'bysort panelid:keep if _N == 4'。缺少值需要額外的注意和額外的代碼。 –