Quantcast
Channel: Statalist
Viewing all articles
Browse latest Browse all 72797

Panel Attrition - too many Rejoiners

$
0
0
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

:
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
STATA produces this output

:
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
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
:
 quietly summ miss if (wavenum == `j' & miss[_n-1] == .)
. 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:

:
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)
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




Viewing all articles
Browse latest Browse all 72797

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>