1
我有一組面板數據,但並非所有人都存在於所有時段。我看到當我運行我的xtreg
時,每組有1-4個觀察值,平均值爲1.9。我只想包括那些有4個觀察值的那些。有什麼辦法可以輕鬆做到這一點嗎?僅使用Stata在面板迴歸中包括完整的組
我有一組面板數據,但並非所有人都存在於所有時段。我看到當我運行我的xtreg
時,每組有1-4個觀察值,平均值爲1.9。我只想包括那些有4個觀察值的那些。有什麼辦法可以輕鬆做到這一點嗎?僅使用Stata在面板迴歸中包括完整的組
我知道你只想在迴歸中包含那些恰好有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,如果你不介意丟失的意見,你可以drop
或keep
(UN)所需的組:
bysort idcode: drop if _N != 4
或
bysort idcode: keep if _N == 4
後跟無條件xtreg
(ie沒有if
)。
請注意,兩種方法都會計算錯誤,所以您可能需要對此進行解釋。
另一方面,您可能想要考慮爲什麼要在分析中丟棄該數據。
單線是爲了避免劃傷或「保留」那些「掉落」面板。在最簡單的情況下,這將會像'bysort panelid:keep if _N == 4'。缺少值需要額外的注意和額外的代碼。 –