Hello,
I´m working with the SOEP(Lecture-Dataset). I would like to analyse the panel attrition from 2000 - 2008 using the code provied in Applied Health Economics Chapter 10.
miss = 1 if in sample and miss = . if not in sample
STATA produces this output
My problem is that in some waves there are more Re-joiners in the following wave than there are Drop outs in this wave. For example Wave 6(and Wave 3).: Drop outs 385 In Wave 7 Re-joiners 663.
To my understanding re-joinrs are defined as
. They are in the current wave but have been missing prevoisuly but in Wave 6 only 385 have been missing but in Wave 7 663 rejoined. So somewhere I have made a mistake but I can not find it.
The next is that I tryed to analyse the attrition pattern by looking for monoton attrition with this code:
STATA output:
My interpretation was that the changes in moAtt showed me when the monton attrition drop out happend. But again in Wave 6 more changes than there should be dropouts.
So where is my problem ?
Thank you in advance for your comments.
Ben
I´m working with the SOEP(Lecture-Dataset). I would like to analyse the panel attrition from 2000 - 2008 using the code provied in Applied Health Economics Chapter 10.
miss = 1 if in sample and miss = . if not in sample
:
program define table1 { quietly summ miss if wavenum == 0 scalar N0 = r(N) forvalues j = 1(1)8 { display "wavenum == "`j' quietly summ miss if (wavenum == `j'-1) scalar N1 = r(N) quietly summ miss if (wavenum == `j' & miss[_n-1] ~= .) scalar N2 = r(N) quietly summ miss if (wavenum == `j' & miss[_n-1] == .) scalar N3 = r(N) quietly summ miss if (wavenum == `j') scalar N4 = r(N) scalar dropout = N1 - N2 scalar rejoiner = N3 scalar rattr = ((N1 - N2)/N1) scalar nattr = ((N1 - N4)/N1) scalar surv = N4/N0 display "No. individuals at wave = " `j'-1 " = " N1 display "No. individuals at wave = " `j' " = " N4 display "Survival rate = " surv " Drop outs = " dropout " Re-joiner = " rejoiner display "Raw Attrition rate = " rattr "Net Attrition rate = " nattr display " " } } end
:
wavenum == 1 No. individuals at wave = 0 = 11165 No. individuals at wave = 1 = 10168 Survival rate = .91070309 Drop outs = 1695 Re-joiner = 698 Raw Attrition rate = .1518137Net Attrition rate = .08929691 wavenum == 2 No. individuals at wave = 1 = 10168 No. individuals at wave = 2 = 10350 Survival rate = .92700403 Drop outs = 799 Re-joiner = 981 Raw Attrition rate = .07857986Net Attrition rate = -.01789929 wavenum == 3 No. individuals at wave = 2 = 10350 No. individuals at wave = 3 = 10262 Survival rate = .91912226 Drop outs = 1222 Re-joiner = 1134 Raw Attrition rate = .11806763Net Attrition rate = .00850242 wavenum == 4 No. individuals at wave = 3 = 10262 No. individuals at wave = 4 = 10055 Survival rate = .90058218 Drop outs = 902 Re-joiner = 695 Raw Attrition rate = .0878971Net Attrition rate = .02017151 wavenum == 5 No. individuals at wave = 4 = 10055 No. individuals at wave = 5 = 9587 Survival rate = .85866547 Drop outs = 1083 Re-joiner = 615 Raw Attrition rate = .10770761Net Attrition rate = .04654401 wavenum == 6 No. individuals at wave = 5 = 9587 No. individuals at wave = 6 = 10002 Survival rate = .8958352 Drop outs = 385 Re-joiner = 800 Raw Attrition rate = .04015855Net Attrition rate = -.04328779 wavenum == 7 No. individuals at wave = 6 = 10002 No. individuals at wave = 7 = 9561 Survival rate = .85633677 Drop outs = 1104 Re-joiner = 663 Raw Attrition rate = .11037792Net Attrition rate = .04409118 wavenum == 8 No. individuals at wave = 7 = 9561 No. individuals at wave = 8 = 8921 Survival rate = .79901478 Drop outs = 1153 Re-joiner = 513 Raw Attrition rate = .12059408Net Attrition rate = .0669386
To my understanding re-joinrs are defined as
:
quietly summ miss if (wavenum == `j' & miss[_n-1] == .)
The next is that I tryed to analyse the attrition pattern by looking for monoton attrition with this code:
:
gen wave0 = 1 if wave ==0 & insampm ==1 gen wave1 = 1 if wave ==1 & insampm ==1 gen wave2 = 1 if wave ==2 & insampm ==1 gen wave3 = 1 if wave ==3 & insampm ==1 gen wave4 = 1 if wave ==4 & insampm ==1 gen wave5 = 1 if wave ==5 & insampm ==1 gen wave6 = 1 if wave ==6 & insampm ==1 gen wave7 = 1 if wave ==7 & insampm ==1 gen wave8 = 1 if wave ==8 & insampm ==1 gen moAtt= 0 sort pid by pid: replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==. & wave2[_n+2] ==. & wave3[_n+3] ==. & wave4[_n+4] ==. & wave5[_n+5] ==. & wave6[_n+6]==. & wave7[_n+7]==. & wave8[_n+8] ==. by pid: replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] ==. & wave3[_n+3] ==. & wave4[_n+4] ==. & wave5[_n+5] ==. & wave6[_n+6]==. & wave7[_n+7]==. & wave8[_n+8] ==. by pid: replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] ==1 & wave3[_n+3] ==. & wave4[_n+4] ==. & wave5[_n+5] ==. & wave6[_n+6]==. & wave7[_n+7]==. & wave8[_n+8] ==. by pid:replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] == 1& wave3[_n+3] ==1 & wave4[_n+4] ==. & wave5[_n+5] ==. & wave6[_n+6]== .& wave7[_n+7]==. & wave8[_n+8] ==. by pid:replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] ==1 & wave3[_n+3] ==1 & wave4[_n+4] ==1 & wave5[_n+5] ==. & wave6[_n+6]==. & wave7[_n+7]==. & wave8[_n+8] ==. by pid:replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] ==1 & wave3[_n+3] ==1 & wave4[_n+4] ==1 & wave5[_n+5] ==1 & wave6[_n+6]==. & wave7[_n+7]==. & wave8[_n+8] ==. by pid:replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] ==1 & wave3[_n+3] ==1 & wave4[_n+4] ==1 & wave5[_n+5] ==1 & wave6[_n+6]==1 & wave7[_n+7]==. & wave8[_n+8] ==. by pid:replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] ==1 & wave3[_n+3] ==1 & wave4[_n+4] ==1 & wave5[_n+5] ==1 & wave6[_n+6]==1 & wave7[_n+7]==1 & wave8[_n+8] == .
STATA output:
:
. by pid: replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==. & wave2[_n+2] ==. & wave3[_n+3] ==. & wave4[_n+4] ==. & wave5[_n+5 > ] ==. & wave6[_n+6]==. & wave7[_n+7]==. & wave8[_n+8] ==. (1348 real changes made) . by pid: replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] ==. & wave3[_n+3] ==. & wave4[_n+4] ==. & wave5[_n+5 > ] ==. & wave6[_n+6]==. & wave7[_n+7]==. & wave8[_n+8] ==. (730 real changes made) . by pid: replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] ==1 & wave3[_n+3] ==. & wave4[_n+4] ==. & wave5[_n+5 > ] ==. & wave6[_n+6]==. & wave7[_n+7]==. & wave8[_n+8] ==. (513 real changes made) . by pid:replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] == 1& wave3[_n+3] ==1 & wave4[_n+4] ==. & wave5[_n+5] > ==. & wave6[_n+6]== .& wave7[_n+7]==. & wave8[_n+8] ==. (394 real changes made) . by pid:replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] ==1 & wave3[_n+3] ==1 & wave4[_n+4] ==1 & wave5[_n+5] > ==. & wave6[_n+6]==. & wave7[_n+7]==. & wave8[_n+8] ==. (407 real changes made) . by pid:replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] ==1 & wave3[_n+3] ==1 & wave4[_n+4] ==1 & wave5[_n+5] > ==1 & wave6[_n+6]==. & wave7[_n+7]==. & wave8[_n+8] ==. (427 real changes made) . by pid:replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] ==1 & wave3[_n+3] ==1 & wave4[_n+4] ==1 & wave5[_n+5] > ==1 & wave6[_n+6]==1 & wave7[_n+7]==. & wave8[_n+8] ==. (384 real changes made) . by pid:replace moAtt = 1 if wave0 ==1 & wave1[_n+1] ==1 & wave2[_n+2] ==1 & wave3[_n+3] ==1 & wave4[_n+4] ==1 & wave5[_n+5] > ==1 & wave6[_n+6]==1 & wave7[_n+7]==1 & wave8[_n+8] == . (503 real changes made)
So where is my problem ?
Thank you in advance for your comments.
Ben