***************************************************************************** * Do-file zur Replikation von: * * * * Katrin Auspurg (2018): * * Konfundierte Ergebnisse durch ein zu stark beschränktes Design? * * Anmerkungen zur Vignettenana-lyse 'Wer ist in Deutschland willkommen?' * * von C. Czymara und A. Schmidt-Catran * * Kölner Zeitschrift für Soziologie und Sozialpsychologie 70(1) * * * ***************************************************************************** ********************************************** * $ 1) Programm Setup * ********************************************** clear unicode encoding set latin1 unicode translate * version 13.1 set more off capture log close // Auswahl des aktuellen Verzeichnisses cd "C:\Users\di25lid\Documents\Faktorieller Survey\Designs\CSC\kzfss_data_and_do_file" ********************************************** * $ 2) Replikation Analysen von CSC * ********************************************** // Zunächst sind die do-files von Czymara und Schmidt-Catran zur Replikation // der von den Autoren publizierten Ergegbnisse auszuführen // Der Orignialdatensatz und der original do-file sind dafür auf folgender Webseite verfügbar: // http://www.schmidt-catran.de/kzfss.html do Czymara_SchmidtCatran_KZfSS save myusing, replace *********************************************** * $ 3) Zusätzliche Analysen durch K. Auspurg * *********************************************** // #1) Analysen publiziert in der Replik in der KZfSS // 1. Deskriptive Statistiken (Tabelle A.1 im Online-Anhang) * Stichprobe der 14 Vignetten bei CSC bysort id_vig: gen nr =_n keep if nr == 1 keep vig_gender vig_qualific vig_language vig_reason vig_religion vig_origin sort vig_reason vig_origin vig_gender vig_qualific * Deutsche Labels für Tabelle lab define gender 0"Frau" 1"Mann" lab value vig_gender gender lab define qualific 0"Gering" 1"Hoch" lab value vig_qualific qualific lab define language 0"Kaum" 1"Gut" lab value vig_language language lab define reason 0"Besseres Leben" 1"Verfolgt" 2"Arbeitsplatz" lab value vig_reason reason lab define religion 0"Keine" 1"Christ" 2"Muslim" lab value vig_religion religion lab define origin 0"Libanon" 1"Frankreich" 2"Kenia" lab value vig_origin origin fre vig* export excel TabelleA1.xls, replace // 2. Regressionen mit zusätzlicher Aufnahme von Interaktionen (Tabelle A.2) use myusing, clear xtmixed vig_rating_live i.vig_gender ib1.vig_origin i.vig_reason i.vig_qualific i.vig_language i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_la xtmixed vig_rating_live i.vig_gender ib1.vig_origin i.vig_reason ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_lb xtmixed vig_rating_live i.vig_gender ib1.vig_origin ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_lc xtmixed vig_rating_live i.vig_gender ib1.vig_origin i.vig_reason ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_reason##i.vig_qualific i.vig_religion || id_res: , mle var baselevel margins, dydx(*) mltrsq est store m1_ld xtmixed vig_rating_live i.vig_gender ib1.vig_origin i.vig_reason i.vig_qualific##i.vig_language ib1.vig_origin i.vig_language i.vig_reason##i.vig_qualific i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_le estout m1_la m1_lb m1_lc m1_ld m1_le, cells(b(star fmt(a3)) se) stats(N aic bic ll) starlevels(* 0.05 ** 0.01 *** 0.001) nobaselevels est tab m1_la m1_lb m1_lc m1_ld m1_le, stats(N aic bic ll) * VIF-Werte: Dazu lineare OLS Regressionen reg vig_rating_live i.vig_gender ib1.vig_origin i.vig_reason i.vig_qualific i.vig_language i.vig_religion, cluster(id_res) vif reg vig_rating_live i.vig_gender ib1.vig_origin i.vig_reason ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_religion, cluster(id_res) vif reg vig_rating_live i.vig_gender ib1.vig_origin ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_religion, cluster(id_res) vif reg vig_rating_live i.vig_gender ib1.vig_origin i.vig_reason ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_reason##i.vig_qualific i.vig_religion, cluster(id_res) vif reg vig_rating_live i.vig_gender ib1.vig_origin i.vig_reason i.vig_qualific##i.vig_language ib1.vig_origin i.vig_language i.vig_reason##i.vig_qualific i.vig_religion, cluster(id_res) vif // #2) Weitere Analysen, welche das "bouncing beta" Problem etc. illustrieren (nicht in KZfSS publiziert) // 1. Lineare Abhägigkeiten: Beispielhaft OLS-Regression mit Geschlecht als abhängiger Variable reg vig_gender ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_reason##i.vig_religion * --> veranschaulicht starke Kollinearität, etwa hier R² von 1,00 // 2. Regressionen und Coefplots für Subgruppen (Abb. 3a in SCS, aufgesplittet nach Merkmalen Vignettenpersonen) ** a) Nach Geschlecht der Vignettenperson reg vig_rating_live ib1.vig_origin i.vig_reason i.vig_qualific i.vig_language i.vig_religion if vig_gender == 0, cluster(id_res) est store m1_la reg vig_rating_live ib1.vig_origin i.vig_reason i.vig_qualific i.vig_language i.vig_religion if vig_gender == 1, cluster(id_res) est store m1_lb coefplot (m1_la, label("Mann")) (m1_lb, label("Frau")) /// , drop(_cons) scheme(s1mono) xline(0) msymbol(circle) aspect(0.95) scale(0.75) /// coeflabels(0.vig_origin = " Libanon" 2.vig_origin = " Kenia" /// 1.vig_reason = " Verfolgt" 2.vig_reason = " Arbeitsplatz" /// 1.vig_qualific = " Hochqualifiziert" 1.vig_language = " Gut" 1.vig_religion = " Christ" /// 2.vig_religion = " Moslem", labgap(-167) notick) /// headings(0.vig_origin = "Herkunftsland (Ref. = Frankreich)" /// 1.vig_reason = "Motiv (Ref. = besseres Leben)" 1.vig_qualific = "Qualifikation (Ref. = gering)" /// 1.vig_language = "Deutschkenntnisse (Ref. = kaum)" 1.vig_religion = "Religion (Ref. = keine)" , nogap ) /// xtitle(Koeffizient) graphregion(margin(l=10 r=-40)) yscale(alt) * --> man erkennt: einzelne Effekte wg.Kollinearität gar nicht schätzbar, starke Schwankungen Ergebnisse etc. ** b) Nach Qualifikation der Vignettenperson reg vig_rating_live i.vig_gender ib1.vig_origin i.vig_reason i.vig_language i.vig_religion if vig_qualific == 0, cluster(id_res) est store m2_la reg vig_rating_live i.vig_gender ib1.vig_origin i.vig_reason i.vig_language i.vig_religion if vig_qualific == 1, cluster(id_res) est store m2_lb coefplot (m2_la, label("Geringqualifiziert")) (m2_lb, label("Hochqualifiziert")) /// , drop(_cons) scheme(s1mono) xline(0) msymbol(circle) aspect(0.95) scale(0.75) /// coeflabels(1.vig_gender = " Mann" 0.vig_origin = " Libanon" 2.vig_origin = " Kenia" /// 1.vig_reason = " Verfolgt" 2.vig_reason = " Arbeitsplatz" /// 1.vig_language = " Gut" 1.vig_religion = " Christ" /// 2.vig_religion = " Moslem", labgap(-167) notick) /// headings(1.vig_gender = "Geschlecht (Ref. = Frau)" 0.vig_origin = "Herkunftsland (Ref. = Frankreich)" /// 1.vig_reason = "Motiv (Ref. = besseres Leben)" /// 1.vig_language = "Deutschkenntnisse (Ref. = kaum)" 1.vig_religion = "Religion (Ref. = keine)" , nogap ) /// xtitle(Koeffizient) graphregion(margin(l=10 r=-40)) yscale(alt) * --> ähnliche Ergebnisse, alles sehr instabil // 3. Regressionen von Tabelle A.2 mit den alternativen Vignettenurteilen ** a) Arbeitserlaubnis für Einwanderer xtmixed vig_rating_work i.vig_gender ib1.vig_origin i.vig_reason i.vig_qualific i.vig_language i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_wa xtmixed vig_rating_work i.vig_gender ib1.vig_origin i.vig_reason ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_wb xtmixed vig_rating_work i.vig_gender ib1.vig_origin ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_wc xtmixed vig_rating_work i.vig_gender ib1.vig_origin i.vig_reason ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_reason##i.vig_qualific i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_wd xtmixed vig_rating_work i.vig_gender ib1.vig_origin i.vig_reason i.vig_qualific##i.vig_language ib1.vig_origin i.vig_language i.vig_reason##i.vig_qualific i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_we estout m1_wa m1_wb m1_wc m1_wd m1_we, cells(b(star fmt(a3)) se) stats(N aic bic ll) starlevels(* 0.05 ** 0.01 *** 0.001) nobaselevels est tab m1_wa m1_wb m1_wc m1_wd m1_we, stats(N aic bic ll) * VIF-Werte (dazu wieder OLS-Regressionen) reg vig_rating_work i.vig_gender ib1.vig_origin i.vig_reason i.vig_qualific i.vig_language i.vig_religion, cluster(id_res) vif reg vig_rating_work i.vig_gender ib1.vig_origin i.vig_reason ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_religion, cluster(id_res) vif reg vig_rating_work i.vig_gender ib1.vig_origin ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_religion, cluster(id_res) vif reg vig_rating_work i.vig_gender ib1.vig_origin i.vig_reason ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_reason##i.vig_qualific i.vig_religion, cluster(id_res) vif reg vig_rating_work i.vig_gender ib1.vig_origin i.vig_reason i.vig_qualific##i.vig_language ib1.vig_origin i.vig_language i.vig_reason##i.vig_qualific i.vig_religion, cluster(id_res) vif * --> Ähnliche (instabile) Ergebnisse wie für vig_rating_live ** b) Recht auf Sozialhilfe für Einwanderer xtmixed vig_rating_social_ben i.vig_gender ib1.vig_origin i.vig_reason i.vig_qualific i.vig_language i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_sa xtmixed vig_rating_social_ben i.vig_gender ib1.vig_origin i.vig_reason ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_sb xtmixed vig_rating_social_ben i.vig_gender ib1.vig_origin ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_sc xtmixed vig_rating_social_ben i.vig_gender ib1.vig_origin i.vig_reason ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_reason##i.vig_qualific i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_sd xtmixed vig_rating_social_ben i.vig_gender ib1.vig_origin i.vig_reason i.vig_qualific##i.vig_language ib1.vig_origin i.vig_language i.vig_reason##i.vig_qualific i.vig_religion || id_res: , mle var baselevel mltrsq est store m1_se estout m1_sa m1_sb m1_sc m1_sd m1_se, cells(b(star fmt(a3)) se) stats(N aic bic ll) starlevels(* 0.05 ** 0.01 *** 0.001) nobaselevels est tab m1_sa m1_sb m1_sc m1_sd m1_se, stats(N aic bic ll) * VIF-Werte reg vig_rating_social_ben i.vig_gender ib1.vig_origin i.vig_reason i.vig_qualific i.vig_language i.vig_religion, cluster(id_res) vif reg vig_rating_social_ben i.vig_gender ib1.vig_origin i.vig_reason ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_religion, cluster(id_res) vif reg vig_rating_social_ben i.vig_gender ib1.vig_origin ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_religion, cluster(id_res) vif reg vig_rating_social_ben i.vig_gender ib1.vig_origin i.vig_reason ib1.vig_origin##i.vig_language i.vig_qualific##i.vig_language i.vig_reason##i.vig_qualific i.vig_religion, cluster(id_res) vif reg vig_rating_social_ben i.vig_gender ib1.vig_origin i.vig_reason i.vig_qualific##i.vig_language ib1.vig_origin i.vig_language i.vig_reason##i.vig_qualific i.vig_religion, cluster(id_res) vif * --> Ähnliche (instabile) Ergebnisse wie für vig_rating_live // clean up (z.B. überflüssige Daten löschen), exit erase myusing.dta exit