use "soepv38\pl.dta", clear merge 1:1 pid syear using "soepv38\ppathl.dta", keepusing(phrf phrf1 sampreg) nogenerate merge 1:1 pid syear using "soepv38\pgen.dta", keepusing(pgisced97 pgnation) drop if pid==. drop if hid==. keep pid syear pgisced97 phrf1 ple0010_h pgnation pla0009* plh0042 plh0037 plh0038 plh0036 plh0033 plh0032 /// plh0007 plh0011_h plh0012_h plh0013_h plh0105 plh0106 plh0107 plh0108 plh0109 plh0110 /// plh0111 plh0112 plh0188 pli0097_v2 pli0096_v2 pli0095_v2 pli0096_v2 pli0097_v2 plh0054 plh0056 plh0058 plh0061 sampreg plb0022_h /// plh0012_h foreach var of varlist * { replace `var'=. if `var'<0 } rename ple0010 gebjahr label define gebjahr 1925 "Skeptische Generation" 1940 "68er Generation" 1955 "Babyboomer" 1969 "BB Ende" 1970 "X Erste" 1977 "X Mitte" 1985 "Y Erste" 2000 "Z", replace label values gebjahr gebjahr recode syear gebjahr (min/0=.) drop if gebjahr==. // drop if we don't know when people are born... generate alter=syear-gebjahr label var alter "Alter" *hist alter, discrete tab alter, miss generate jugend=0 if alter!=. replace jugend=1 if alter<26 & alter!=. label var jugend "Jugend (bis 25)" * Generationenvariable capture drop generation recode gebjahr (min/1925=0 "Vorkrieg 1888-25") (1925/1940=1 "Skeptisch 1926-40") (1940/1955=2 "68er 1941-55") (1955/1970=3 "Babyboom 1956-70") /// (1970/1985=4 "X 1970-85") (1985/2000=5 "Y 1985-00"), gen(generation) tab generation xtset pid syear * Frauenvariablen zusammenführen recode pla0009_v2 (2=1 "Frau") (1=0 "Mann") (else=.), gen(frau) foreach var of varlist pla0009_v1 pla0009_v3 pla0009_v4 { replace frau = 0 if `var'==1 & frau==. replace frau = 1 if `var'==2 & frau==. } label var frau "Frau" rename plb0022_h erwerbsstatus ******************************************************************************** * recode: larger = more recode plh0032 (1= 3 "[3] Grosse Sorgen") (2= 2 "[2] Einige Sorgen") (3= 1 "[1] Keine Sorgen"), gen(S_Wirtschaft) recode plh0033 (1= 3 "[3] Grosse Sorgen") (2= 2 "[2] Einige Sorgen") (3= 1 "[1] Keine Sorgen"), gen(S_eigen_wirt_Sit) recode plh0042 (1= 3 "[3] Grosse Sorgen") (2= 2 "[2] Einige Sorgen") (3= 1 "[1] Keine Sorgen"), gen(S_Arbeitsplzsicher) recode plh0038 (1= 3 "[3] Grosse Sorgen") (2= 2 "[2] Einige Sorgen") (3= 1 "[1] Keine Sorgen"), gen(S_Friedenserhaltung) recode plh0036 (1= 3 "[3] Grosse Sorgen") (2= 2 "[2] Einige Sorgen") (3= 1 "[1] Keine Sorgen"), gen(S_Umweltschutz) recode plh0037 (1= 3 "[3] Grosse Sorgen") (2= 2 "[2] Einige Sorgen") (3= 1 "[1] Keine Sorgen"), gen(S_Klimawandel) recode plh0188 (4= 1 "[1] Gar nicht") (3= 2 "[2] Eher nicht") (2= 3 "[3] Eher") (1= 4 "[4] Ganz u.gar"), gen(Zuv_Zukunft) recode plh0107 (4= 1 "[1] Ganz unwichtig") (3=2 "[2] Weniger wichtig") (2= 3 "[3] Wichtig") (1=4 "[4] Sehr wichtig"), gen(W_Erfolg_Beruf) recode plh0105 (4= 1 "[1] Ganz unwichtig") (3=2 "[2] Weniger wichtig") (2= 3 "[3] Wichtig") (1=4 "[4] Sehr wichtig"), gen(W_fuer_andere) recode plh0106 (4= 1 "[1] Ganz unwichtig") (3=2 "[2] Weniger wichtig") (2= 3 "[3] Wichtig") (1=4 "[4] Sehr wichtig"), gen(W_verwirklichen) recode plh0109 (4= 1 "[1] Ganz unwichtig") (3=2 "[2] Weniger wichtig") (2= 3 "[3] Wichtig") (1=4 "[4] Sehr wichtig"), gen(W_Ehe_Partner) recode plh0110 (4= 1 "[1] Ganz unwichtig") (3=2 "[2] Weniger wichtig") (2= 3 "[3] Wichtig") (1=4 "[4] Sehr wichtig"), gen(W_Kinder_haben) recode plh0112 (4= 1 "[1] Ganz unwichtig") (3=2 "[2] Weniger wichtig") (2= 3 "[3] Wichtig") (1=4 "[4] Sehr wichtig"), gen(W_Reisen) recode plh0108 (4= 1 "[1] Ganz unwichtig") (3=2 "[2] Weniger wichtig") (2= 3 "[3] Wichtig") (1=4 "[4] Sehr wichtig"), gen(W_Haus_haben) recode pli0095_v2 (1=4 "[4] jede Woche") (2=3 "[3] jeden Monat") (3=2 "[2] seltener") (4=1 "[1] nie"), gen(Mithelfen) recode pli0096_v2 (1=4 "[4] jede Woche") (2=3 "[3] jeden Monat") (3=2 "[2] seltener") (4=1 "[1] nie"), gen(Ehrenamtlich) recode pli0097_v2 (1=4 "[4] jede Woche") (2=3 "[3] jeden Monat") (3=2 "[2] seltener") (4=1 "[1] nie"), gen(Politisch) recode plh0007 (1=4 "[4] Sehr stark") (2=3 "[3] Stark") (3=2 "[2] Nicht stark") (4= 1 "[4] Ueberh. nicht"), gen(Interesse_Politik) recode plh0111 (4= 1 "[1] Ganz unwichtig") (3=2 "[2] Weniger wichtig") (2= 3 "[3] Wichtig") (1=4 "[4] Sehr wichtig"), gen(W_engagement) recode plh0011_h (3=.) (2=0 "[0] Nein") (1=1 "[1] Ja"), gen(Parteienpraef) copyrest recode plh0013_h (1=5 "[5] Sehr stark") (2=4 "[4] Zieml. stark") (3=3 "[3] Maessig") (4=2 "[2] Ziem. schwach") (5=1 "[1] Sehr schwach"), gen(Partei_Int) recode plh0054 (1=4) (2=3) (3=2) (4=1), gen(Z_Ruhe_Ordnung) recode plh0056 (1=4) (2=3) (3=2) (4=1), gen(Z_Bürgereinfluss) recode plh0058 (1=4) (2=3) (3=2) (4=1), gen(Z_Preisstabilität) recode plh0061 (1=4) (2=3) (3=2) (4=1), gen(Z_freie_Meinung) * assign old value labels to new variables _crcslbl S_Wirtschaft plh0032 _crcslbl S_eigen_wirt_Sit plh0033 _crcslbl S_Arbeitsplzsicher plh0042 _crcslbl Zuv_Zukunft plh0188 _crcslbl W_Erfolg_Beruf plh0107 _crcslbl W_fuer_andere plh0105 _crcslbl W_verwirklichen plh0106 _crcslbl Mithelfen pli0095_v2 _crcslbl Ehrenamtlich pli0096_v2 _crcslbl Politisch pli0097_v2 _crcslbl W_Reisen plh0112 _crcslbl W_Haus_haben plh0108 _crcslbl Interesse_Politik plh0007 _crcslbl W_engagement plh0111 _crcslbl Z_Ruhe_Ordnung plh0054 _crcslbl Z_Bürgereinfluss plh0056 _crcslbl Z_Preisstabilität plh0058 _crcslbl Partei_Int plh0013_h _crcslbl S_Klimawandel plh0037 _crcslbl S_Friedenserhaltung plh0038 _crcslbl S_Umweltschutz plh0036 _crcslbl Parteienpraef plh0011_h _crcslbl W_Ehe_Partner plh0109 _crcslbl W_Kinder_haben plh0110 _crcslbl S_Umweltschutz plh0036 _crcslbl Z_freie_Meinung plh0061 * Center control variables generate syear_ctr=syear-2010 // center everything on year 2010 generate alter_ctr =alter-25 // center age around 25 * so interpretation: Constant for Generation Y, age 25, year 2010 generate gebjahr_round=(int(gebjahr/5))*5 label define gebjahr_round 1890"Kaiser(1890)" 1895"1. WK(95)" 1900"1. WK(1900)" 1905"1. WK(05)" 1910"Vorkr(10)" 1915"Vorkr(15)" 1920"Vorkr(20)" 1925"Skep(25)" 1930"Skep(30)" 1935"Skep(35)" 1940"68er(40)" 1945"68er(45)" 1950"68er(50)" 1955"BB(55)" 1960"BB(60)" 1965"BB(65)" 1970"X(70)" 1975"X(75)" 1980"X(80)" 1985"Y(85)" 1990"Y(90)" 1995"Y(95)" 2000"Z(2000)", replace label values gebjahr_round gebjahr_round drop if gebjahr_round<1925 capture drop generation recode gebjahr (min/1925=0 "Vorkrieg 1888-25") (1925/1940=1 "Skeptisch 1926-40") (1940/1955=2 "68er 1941-55") (1955/1970=3 "Babyboom 1956-70") /// (1970/1985=4 "X 1971-85") (1985/2000=5 "Y 1986-00"), gen(generation) label define gebjahr 1888"Generation Kaiserzeit" 1900"Generation 1. WK" /// 1915"Vorkriegsgeneration" 1925 "Skeptische Generation" 1940 "68er" 1955 "Babyboomer" 1970 "X" 1985 "Y" 2000 "Z", replace label values gebjahr gebjahr recode sampreg (1=0) (2=1) label var sampreg "Ostdeutschland" label var syear "Erhebungsjahr" compress set dp comma, perm save ready_for_regression.dta, replace use ready_for_regression.dta, clear cd "C:\Users\marti\OneDrive - Universität des Saarlandes\Arbeit\Laufende Publikationen\Generationen evergreen" use ready_for_regression.dta, clear global coefplotopts vertical scale(1) xlabel(,angle(0) alternate) mlabposition(4) lpattern(solid) ciopts(recast(rarea) color(%20)) mlabel plotregion(lwidth(none)) legend(off) base format(%5.3g) recast(connected) ytitle("") eststo clear foreach var of varlist S_Wirtschaft S_eigen_wirt_Sit S_Arbeitsplzsicher S_Friedenserhaltung S_Umweltschutz S_Klimawandel Zuv_Zukunft W_Erfolg_Beruf W_fuer_andere W_verwirklichen W_Ehe_Partner W_Kinder_haben W_Reisen W_Haus_haben W_engagement Mithelfen Ehrenamtlich Interesse_Politik Z_freie_Meinung Parteienpraef Z_Ruhe_Ordnung Z_Bürgereinfluss Z_Preisstabilität { use ready_for_regression.dta, clear keep if `var'!=. qui: sum `var' global rmin=r(min) global rmax=r(max) eststo `var', title("`var'"): xtreg `var' ib1990.gebjahr_round c.alter##c.alter sampreg, vce(robust) margins i.gebjahr_round, atmeans post // only alter effects controlled estimates store m_`var' global gen_y=_b[1990.gebjahr_round] coefplot m_`var', keep(*.gebjahr_round) title("Vor Periodeneffekt") saving(`var'.gph, replace) ylabel($rmin(.5)$rmax) yline($gen_y, lcolor(gs9)) $coefplotopts eststo `var'_p, title("`var' Periode"): xtreg `var' ib1990.gebjahr_round c.alter##c.alter syear sampreg, vce(robust) margins i.gebjahr_round, atmeans post //after period effect global gen_y=_b[1990.gebjahr_round] estimates store m_`var'_p coefplot m_`var'_p, keep(*.gebjahr_round) title("Nach Periodeffekt") saving(`var'_p.gph, replace) ylabel($rmin(0.5)$rmax) yline($gen_y, lcolor(gs9)) $coefplotopts graph combine `var'.gph `var'_p.gph, title("Kohorteneffekte: `: var label `'`var''") ycommon l1title(Estimated value) b1title(Generation/birth cohort) scale(.6) l1title("Einstellungen relativ zu Generation Y (geb. 1990)") *Cohort effects before and after period controlled graph export `var'.png, replace *erase `var'.gph `var'_p.gph } esttab using models_main.rtf, replace star(+ 0.1 * 0.05 ** 0.01 *** 0.001) nogap compress b(2) t(1) label eqlab("" Country_SD Individual_SD) sfmt(%9.1g) stats(r2_w r2_b r2_o) obslast note("Generations: WW=World War, BB=Baby Boomer") mtitle // country-level variation above and beyond rest