invisible header

Dies ist das Dokument ohne Lösungen

Klick hier, um die Lösungen anzuzeigen.

Zum European Social Survey

In vielen Übungen arbeiten wir mit Daten des European Social Survey (ESS). Dies ist ein internationaler Datensatz mit repräsentativen Stichproben aus mehreren europäischen Ländern. Die Befragungen des ESS werden in zweijährlichen Abständen durchgeführt. Wir arbeiten ausschliesslich mit Daten aus der Erhebung 2016. Die Hauptthemen des Datensatzes sind Einstellungen, Normen und Werte. Aufgrund dieser Schwerpunktsetzung ist er in der Soziologie besonders populär. Weitere Überblicksinformationen zum ESS finden Sie auf der Homepage: https://www.europeansocialsurvey.org/ Die Daten sind ebenfalls auf der Homepage des ESS frei erhältlich.

Zur Vorbereitung

 

I.Datenaufbereitung & Inspektion

1. In dieser Übung werden wir uns mit dem Zusammenhang zwischen den Merkmalen imbgeco und eduyrs in der Schweiz auseinandersetzen.

2. Schaffe dir nun einen kurzen statistischen Überblick dieser zwei Variablen. Gibt es Werte die umkodiert werden müssen? Eliminiere nach einer allfälligen Umkodierung nun alle NAs aus dem Datensatz.

3. Stelle die univariaten Verteilungen der Variablen bildung und meinung_mig auf geeignete Art und Weise dar.

 

II. Regressionsanalyse

1. Wir kommen nun zur Regressionsanalyse. Was vermutest du für einen Zusammenhang zwischen Bildung und Einstellungen zur Migration? Formuliere auf deinen Überlegungen aufbauend eine Hypothese.

2a. Welche Gründe sprechen gegen einen linearen Zusammenhang?

2b. Welche Gründe sprechen für einen linearen Zusammenhang?

Welche Begründung findet ihr überzeugender?

3. Stelle die bivariate Verteilung der Variablen mit einer Heatmap dar. Nebst einem passenden Titel und Achsenbeschriftungen, verändere die Achsen wie folgt: Auf der Y-Achse sollten die Zahlen von 0 bis 10 in 1er-Schritten aufgeführt sein. Auf der X-Achse sollten die Zahlen von 0 bis 27 in 3-er Schritten aufgeführt sein. Deute die Heatmap mit Blick auf die Linearitätsfrage.

Achte dich darauf, dass deine Heatmap durchgehend ist und nicht verstückelt aussieht. Nutze dazu die bins= Anweisung oder verändere die Grösse der Quadrate mit der binwidth= Anweisung. Die Skalen der Achsen kannst du über die Befehle scale_y_continuous, resp. scale_x_continuous verändern.

4. Ermittle nun den Achsenabschnitt und den Koeffizienten deiner linearen Regressionsgerade, indem du ein Modell namens “model_mig” erstellst. Finde eine angemessene Interpretiation für den Koeffizienten.

5. Bilde nun in deiner Heatmap die Regressionsgerade ab.
Hinweis: Da wir schon bei Aufgabe 4. unseren ggplot als das Objekt heatmap abgespeichert haben, müssen wir hier nicht wieder den ganzen ggplot-Befehl aufführen.

 

III. Ex Post - Linearitätsprüfung

1. In dieser Bearbeitung haben wir das Linearitätsthema relativ zügig abgehandelt. Manchmal kann es hilfreich sein, sich nach der Hauptanalyse noch mal mit dem Thema zu beschäftigen, z.B. um gewappnet zu sein, wenn jemand mit Euch über die Linearität des Zusammenhangs diskutieren möchte. Inspiziere die Heatmap und überlege noch mal, ob sich Anhaltspunkte für eine Linearitätsabweichung finden.

2. Nun zur Multigruppenanalyse: Überlege dir, bei welchem Wert bzw. bei welchen Werten ein Split sinnvoll wäre.

3. Nachdem du deinen Splitwert bzw. deine Splitwerte ausgesucht hast, teile nun den Datensatz ess8.CH in die Teildatensätze auf (benenne sie jeweils “split1”, “split2”, etc.). Hinweis: Achte dich darauf, dass deine Teildatensätze disjunkt sind.

4. Berechne nun für die jeweiligen Teildatensätze je ein Regressionsmodell. Benenne deine Modelle jeweils, “model_split1”, “model_split2”, etc., und vergleiche sie. Bewerte die Linearität des Zusammenhangs erneut.

5.a Nehme eine intrinsische Linearisierung vor. Integriere hierfür einen quadrierten Term in deine Regressionsanalyse und benenne dieses neue Model “model_sqr”. Interpretiere den Koeffizienten des quadrierten Terms.
Hinweis: Denk daran, dass du vor dem lm() Befehl separat die quadrierte Variable in den Datensatz integrierst.

5.b Ermittle nun den den Scheitelpunkt der Variable.

6. Welche Vorhersagen machen die Modelle für Personen mit 3, 9 oder 18 Bildungsjahren? Hinweis: Der predict() Befehl funktioniert nur für lineare Modelle. Deswegen spezifizieren wir hier separat das quadratische Modell als Funktion.

7. Welches Modell ist besser geeignet, um Vorhersagen zu treffen?

8. Integriere nun in deine Heatmap von vorher sowohl die Regressionsgerade, wie auch die “Regressionsparabel”. Ist der Gebrauch eines quadrierten Modells in diesem Fall sinnvoll? Hinweis: Du musst die Funktion geom_smooth() mit fromula = y~poly(x,2) ergänzen.

 

III. Ausreissertest

1. Warum (und wann) können Ausreisser problematisch werden?

2. Benutze als Erstes die doppelte Standardabweichung der Residuen als Schwellenwert für kritische Ausreisser. Berechne diesen Wert und finde heraus, ob solche kritische Ausreisser vorliegen. Benutze den befehl get_regression_points() vom Package moderndive, um ein Objekt mit den Residuen zu erstellen.

3. Jetzt benutzen wir die “dfbetas”, um mögliche kritische Ausreisser zu ermitteln. Verschaffe dir zuerst eine graphische Übersicht über mögliche kritische Werte.

4. Bestimme nun den Schwellenwert nach der Formel von Belsley et al. Hinweis: Denk daran: R ist auch ein Taschenrechner.

5. Jetzt benutzen wir die “dfbetas”, um mögliche kritische Ausreisser zu ermitteln. Erstelle zuerst ein Objekt, das die “dfbetas” für die verschiedenen Messpunkte beinhaltet. Bennene dieses Objekt “model_mig_dfb”.

6. Gibt es nun kritische Werte?

7. Wie könnten die kritischen Ausreisser erklärt werden?

8. Wir möchten nun eine Re-Analyse ohne Ausreisser durchführen. Wandle hierfür zuerst das Objekt model_mig_dfb in ein “data.frame” um. Spezifiziere den Befehl, so dass vor den Variablen der Präfix “betas” steht.
Hinweis: mit dem head() Befehl kannst du dir jeweils einen schnellen Überblick eines data.frames verschaffen.

9. Füge diesen data.frame dem Analysedatensatz (ess8.CH) hinzu. Achtung!: Wir können nur Spalten miteinander verbinden, die die gleiche Länge haben, sprich die gleiche Anzahl an Merkmalsträger. Hier können möglicherweise Fehler enstehen wenn:
1. Nicht alle NAs aus dem Datensatz entfernt wurden.
2. Du für dein lm()-Befehl ein data.frame verwendest hat, das weniger Variablen hat als das data.frame im cbind()-Befehl (Also wenn du im lm()-Befehl ess8.CH gebraucht hättest und im cbind() jetzt die dfbetas davon mit dem ess8 verbinden möchtest).

10. Eliminiere jetzt aus diesem erweiterten Datensatz alle Merkmalsträger, deren “dfbetas” kritische Werte aufweisen. Benenne diesen neuen Datensatz “ess8.noOut.” Hinweis: Denk daran wir entfernen dfbetas mit zu kleinen und zu grossen Werten. Sprich alles was nicht im Bereich [-Grenzwert;Grenzwert] liegt, ist ein Ausreisser.

11. Nachdem du so alle kritischen Werte entfernt hast, berechne ein neues Regressionsmodell. Benenne es “model_noOut”.

12. Vergleiche nun die Modelle mit und ohne Ausreisser. Verzerren die Ausreisser das Ergebnis substantiell?

13. Bilde auf deiner Heatmap die Regressionsgerdade mit und ohne Ausreisser ab.

logo.utf8

Conforti, E., Dürr, R., Siefart, F., Strassmann Rocha, D., Giesselmann, M. (2021): “Regressionsanalysen mit R”