2013-12-17 1 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 :

Количество набл = 28091

Количество групп = 4697

Как прокомментировал @NickCox, если вы не возражаете проигрышные наблюдения вы можете drop или keep (ип) желательно группы:

bysort idcode: drop if _N != 4 

или

bysort idcode: keep if _N == 4 

, за которым следует безусловный xtreg (т.е. без if).

Обратите внимание, что оба подхода подсчитывают пропуски, поэтому вам может понадобиться учитывать это.

С другой стороны, вам может потребоваться подумать о том, почему вы хотите отбросить эти данные в своем анализе.

+1

Однострочный вкладыш - это панели «drop», которые не подходят для царапин или «держать» те, которые делают. В простейшем случае это будет нечто вроде 'bysort panelid: keep if _N == 4'. Отсутствующие значения требуют дополнительной осторожности и дополнительного кода. –

Смежные вопросы