Scheinkorrelationen aufdecken in R mit linearen Regressionsmodellen

Weiße Störche

Störche bringen Babies – das wohl bekannteste Beispiel der Statistik für eine klassische Scheinkorrelation. Der Zusammenhang ist tatsächlich statistisch nachweisbar – es handelt sich jedoch (nach heutigem Wissen) nicht um einen Kausalzusammenhang. Auch wenn uns das inhaltlich bekannt ist – wie können wir das statistisch belegen? In anderen Anwendungsfällen wird uns inhaltlich vielleicht nicht so klar sein, ob statistisch signifikante Zusammenhänge auf Scheinkorrelationen beruhen – wir benötigen also ein Vorgehen, das statistisch nachzuweisen.

Scheinkorrelationen aufdecken in R: Praxisbeispiel im Video

Anzahl der Störche hängt signifikant mit Anzahl der Babies zusammen

Die Daten sind fiktiv und, zusammen mit dem sehr knappen R-Code, auf meinem github-Profil zu finden (detecting-spurious-corr.R sowie babies.rds).

Mittel der Wahl sind lineare Regressionsmodelle. Zunächst betrachten wir, wie sich die Anzahl der Störche in einer Region auf die Anzahl der Babies auswirkt:

# Daten laden
babies <- readRDS("babies.rds")

# Lineares Modell: Störche als Prädiktor (unabhängige Variable) für die Anzahl der Babies (abhängige Variable)
mod_storks <- lm(babies ~ storks, data = babies)

# Modellzusammenfassung ausgeben
summary(mod_storks)

Der Zusammenhang ist positiv und signifikant:

Regressionsmodell: Einfluss der Anzahl der Störche in einer Region auf die Anzahl der Babies.

Auf eine Interpretation des Koeffizienten (1.266) verzichten wir, da es sich um fiktive Daten handelt. (Es gibt reale Studien, die tatsächlich einen statistischen Zusammenhang zwischen Störchen und Babies aufzeigen.) Wir könnten nun einfach behaupten, den Nachweis erbracht zu haben, dass Störche tatsächlich Babies bringen.

Der berechtigte Einwand ist nicht weit, dass es auch andere, gut erforschte Theorien darüber gibt, woher die Babies kommen. Das lässt sich gut begründen, jedoch gemäß dem Motto

„In God we trust; all others bring data.“

(frei übersetzt: Wir vertrauen auf Gott; alle anderen sollen gefälligst Daten liefern!)

Dr. W. Edwards Deming

wollen wir uns nicht mit einer Theorie-Diskussion begnügen, sondern datenbasiert arbeiten.

Wenn Störche nicht Babies bringen, wie lässt sich der statistische Zusammenhang erklären?

In unserem Fall heißt das: Wir suchen nach einer Erklärung für den Zusammenhang zwischen Störchen und Babies. Es gibt verschiedene ähnliche Varianten; ich mag die folgende:

Es gibt eine gemeinsame Drittvariable (= Kontrollvariable), die sowohl die Anzahl der Störche als auch die Anzahl der Babies beeinflusst und die es so aussehen lässt, als gäbe es einen Zusammenhang zwischen den beiden Variablen, der in Wirklichkeit nicht besteht.

Wir nennen diese Drittvariable den Industrialisierungsgrad. Je stärker industrialisiert eine Region ist, desto weniger Störche gibt es dort. (Störche leben überwiegend in ländlichen Regionen.) Und je stärker industrialisiert eine Region ist, desto weniger Babies werden dort geboren. In ländlichen Regionen gelten Kinder öfter als Altersvorsorge; die Familien orientieren sich eher an traditionellen Rollenbildern. In stärker industrialisierten städtischen Regionen verfolgen Frauen häufiger eigene Karrieren und bekommen Kinder wenn, dann tendenziell später, und seltener.

Industrialisierungsgrad und Anzahl der Babies

Nehmen wir an, wir haben einen Index, der den Industrialisierungsgrad abbildet. Besteht ein Zusammenhang zur Anzahl der Babies?

mod_ind <- lm(babies ~ industrial, data = babies)
summary(mod_ind)

Ja, wie erwartet ist der Effekt signifikant negativ:

Regressionsmodell: Einfluss des Industrialisierungsgrades auf die Anzahl der Babies in einer Region.

Drittvariablenkontrolle: Störche und Industrialisierungsgrad

So weit, so gut. Wie sieht es nun aus, wenn wir die Anzahl der Störche und den Industrialisierungsgrad in ein gemeinsames Modell packen?

mod_both <- lm(babies ~ storks + industrial, data = babies)
summary(mod_both)

Der Effekt des Industrialisierungsgrades schwächt sich leicht ab, bleibt jedoch deutlich signifikant.

Regressionsmodell: Industrialisierungsgrad und Störche als Prädiktoren für die Anzahl der Babies.

Interessanter ist, was mit dem Effekt der Störche passiert: Der p-Wert von 0,55 liegt weiter über der üblichen Schwelle von 0,05. Das bedeutet: Unter Kontrolle (Berücksichtigung) des Industrialisierungsgrades gibt es keinen Effekt der Anzahl der Störche in einer Region auf die Anzahl der Babies! Damit ist die Scheinkorrelation entlarvt bzw. sichtbar gemacht.

Scheinkorrelationen und Regressionsanalysen: Abschließende Überlegungen

Das Beispiel ist bewusst simpel gehalten. In Projekten mit realen Daten wird man in aller Regel etwas mehr Mühe aufwenden und z. B. die Daten auch grafisch analysieren, um Zusammenhänge zu prüfen (siehe etwa den Beitrag: Regressionsmodelle visualisieren in R: Mit Interaktionseffekten, 3D (ggplot2, plotly)).

Interessant finde ich die Denkweise. Nach meiner Beobachtung wird in der Datenanalyse häufig versucht, das „eine optimale“ Modell zu finden, das Modellvoraussetzungen möglichst gut erfüllt und eine hohe Erklärungskraft / Vorhersagegüte erreicht. Beim hier besprochenen Fall geht es eher darum, Beziehungen zwischen Variablen im Datensatz besser zu verstehen. Die Scheinkorrelation wurde aus dem Vergleich von drei Regressionsmodellen erkannt, nicht nur aus dem letzten. Die wichtigste Frage lautet hierbei: Wie verändern sich Effekte, wenn Variablen ins Modell aufgenommen oder aus dem Modell ausgeschlossen werden? Wären die Modellvoraussetzungen perfekt erfüllt, d. h. wären die Prädiktoren völlig unkorreliert (keine Multikollinearität), dann würden sich Effekte gar nicht verändern. In der Praxis ist das so gut wie nie der Fall. Statt (mehr oder weniger stark) verletzte Voraussetzungen zu bedauern, nutzen wir gerade dieses Phänomen, um unsere Daten zu ergründen.

Dieser Beitrag ist ein Update zu Je mehr Störche, desto mehr Kinder (mit älterem Video aus meiner SPSS-Zeit).

Viel Erfolg mit Euren Analysen!

Einstieg in die Datenanalyse mit R, mit modernen R-Paketen:

3 Gedanken zu „Scheinkorrelationen aufdecken in R mit linearen Regressionsmodellen“

  1. Guten Tag Herr Riepl,

    zunächst vielen Dank für ihre tollen und hilfreichen Beiträge. Ich habe eine Frage hinsichtlich meiner Scheinkorrelation und wäre für Ihre Hilfe sehr dankbar.

    Ich habe eine multiple Regr. mit zwei Prädiktoren gerechnet. Die Korrelation zu Beginn ergab für einen der Prädiktoren mit dem Kriterium ein sig. Ergebnis von r = .17, p = 04.

    Die Regressionsanalyse ergab eine kleine Varianzaufklärung von 3% durch die beiden Prädiktoren und wurde nicht signifikant. Auch die beiden Koeffizienten wurde nicht signifikant, inbs. der eine wurden nicht mehr sig. was auf eine Scheinkorrelation hindeutet, wenn ich richtig liege.

    Nun ist aber mein Problem, dass meine Regressionsanalyse mit n = 84 und zwei Prädiktoren zu wenig Power hat, um einen kleinen Effekt sig. werden zu lassen. Deshalb frage ich mich, ob ich dann überhaupt von einer Scheinkorrelation sprechen darf, denn der kleine Zusammenhang konnte mit der Power niemals sig. werden. Das wäre dann keine Scheinkorrelation, sondern einfach zu wenig Power. Oder muss ich da zwischen dem Gesamtmodell und den einzelnen Gewichten hinsichtlich der Power unterscheiden, was die Interpretation betrifft?

    Ich hoffe, Sie können meine Gedankengänge nachvollziehen und würde mich über Ihre Antwort freuen.

    Vielen Dank.

    Liebe Grüße

    Dominik

    1. Gibt es Fehlwerte, insbesondere bei dem zweiten Prädiktor? Unterschiedliche Fallzahlen könnten (teilweise) unterschiedliche Effekte zwischen Korrelation und multipler Regression erklären.

      Ich würde den Begriff Scheinkorrelation vorsichtig handhaben. Es ist klarer, wenn der Effekt bivariat stark ist und im multiplen Modell verschwindet. Bei r = 0.17 würde ich nicht von einem starken Effekt sprechen.

      Der zweite Prädiktor leistet offenbar keinen Erklärungsbeitrag. Ein einfaches Regressionsmodell nur mit dem Prädiktor, der r = 0.17 mit dem Kriterium erreichte, müsste auch bei 3% Varianzaufklärung landen: 0.17 ^ 2 = 0.0289.

Freue mich über Kommentare! Antwort abbrechen

Hinweispflicht zu Cookies

Webseitenbetreiber müssen, um Ihre Webseiten DSGVO konform zu publizieren, ihre Besucher auf die Verwendung von Cookies hinweisen und darüber informieren, dass bei weiterem Besuch der Webseite von der Einwilligung des Nutzers in die Verwendung von Cookies ausgegangen wird.

Der eingeblendete Hinweis Banner dient dieser Informationspflicht.

Sie können das Setzen von Cookies in Ihren Browser Einstellungen allgemein oder für bestimmte Webseiten verhindern. Eine Anleitung zum Blockieren von Cookies finden Sie hier.

Wir benutzen Cookies um die Nutzerfreundlichkeit der Webseite zu verbessen. Durch Deinen Besuch stimmst Du dem zu.
Die mobile Version verlassen