* For further details see http://jutze.com/research/2015-schult-sparfeldt-compulsory-military-service * SOEP manuscript * analysing data regarding military service or community service (serviceV1long.dta) * using the long form SOEP data * written by Johannes Schult (jutze@jutze.com) * last updated 2015-04-14 version 13.1 set more off clear capture log close log using anserviceV1, replace use serviceV1long * for listwise deletion delete the following cases (helps with the degrees of freedom): anova amean wehrdienst##year pid, repeated(year) bse(pid) keep if e(sample) drop if (year == 2009 & pid != pid[_n-1]) | (year == 2005 & pid != pid[_n+1]) tab pgsbilXXXX year * Table 1 bysort wehrdienst: pwcorr nmean-cmean plh0182 if year == 2005, sig tabstat nmean-cmean plh0182 startage if year == 2005, statistics(mean sd n) by(wehrdienst) format(%8.3g) foreach var of varlist nmean-cmean plh0182 { di "`var'" ttest `var' if year == 2005, by(wehrdienst) di -(r(mu_1)-r(mu_2))/(sqrt(((r(N_1)-1)*r(sd_1)^2+(r(N_2)-1)*r(sd_2)^2)/(r(N_1)+r(N_2)))) } * Table 2 gen spalte = year + 10000*wehrdienst tab spalte foreach i of varlist nmean-cmean plh0182 { di "`i'" table spalte, contents(mean `i' sd `i' freq ) cellwidth(5) } * Table 2 foreach i of varlist nmean-cmean plh0182 { di "`i'" table wehrdienst year, contents(mean `i' sd `i' freq ) cellwidth(5) anova `i' wehrdienst / pid|wehrdienst year wehrdienst#year , repeated(year) di round(e(ss_1)/(e(ss_1)+e(rss)),.001) di round(e(ss_3)/(e(ss_3)+e(rss)),.001) di round(e(ss_4)/(e(ss_4)+e(rss)),.001) } clear log close translate anserviceV1.smcl anserviceV1.txt, replace exit * * * SO FAR, SO GOOD * * *