Statistische Datenanalyse mit R, Korrelation und Regression Dr. Andrea Denecke Leibniz Universität IT-Services Korrelationsanalyse Eine Korrelationsanalyse soll herausfinden Ob ein linearer Zusammenhang zwischen zwei metrischen Variablen besteht Die Stärke des Zusammenhangs Die Richtung des Zusammenhangs (positiv, negativ) Erster Schritt: Graphische Darstellung (z.B. Streudiagramm ), um einen (subjektiven!) Eindruck über den Zusammenhang zu erhalten, Abweichungen von der Linearität lassen sich erkennen Zweiter Schritt: Berechnung des Korrelationskoeffizienten Pearson‘s correlation (setzt normalverteilte Variablen voraus Feststellung z.B. über Boxplots, Q-Q-plots) Spearman rank correlation oder Kendalls Tau für ordinale oder nicht normalverteilte Variablen, letzterer wird eher für kleine Stichprobenumfänge empfohlen. Korrelationsanalyse Wir erwarten einen linearen Zusammenhang zwischen „gew“ und „groes“ des „test“ Datensatzes. Um diese Vermutung zu untersuchen, fertigen wir zuerst ein Streudiagramm an: scatterplot(test$groes, test$gew, smooth=F) Dieses bestätigt subjektiv unsere Vermutung. Zur Auswahl des geeigneten Verfahrens zur Berechnung der Korrelation muss man noch untersuchen, ob die Variablen normalverteilt sind (Methode wie gehabt: Boxplots und Shapiro-Wilk Test). In unserem Fall würde man anhand des geringen Stichprobenumfangs (n=10) ohnehin die nicht-parametrische Variante wählen, kann sich also diese Untersuchung sparen. Korrelationsanalyse Dann berechnen wir den Korrelationskoeffizienten: cor.test(test$groes, test$gew, method=„kendall“) Man erhält ein tau von 0.719, also liegt eine starke positive Korrelation zwischen der Größe und dem Gewicht der Probanden vor, die auf dem 1% Niveau statistisch signifikant ist (p=0.004). Übung: Berechnen Sie die Korrelation zwischen der Zahnlänge (len) und der Vitamin C –Dosis (dose) bei dem ToothGrowth-Datensatz Regressionsanalyse Eine Regression ist eine mathematische Beschreibung einer Korrelation/ eines Zusammenhangs. Häufig werden lineare Regressionen verwendet y=mx+b+ԑ mit m=Steigung b= Achsenabschnitt x= Regressor ԑ= Residuum Die „Least-Square-Methode“ minimiert die Quadratsumme der Residuen. Die Residuen sollten voneinander unabhängig und normalverteilt sein sowie gleiche Varianzen haben. Die Güte der Anpassung des Modells an die Daten wird durch R² bestimmt. Regressionsanalyse Beispiel: Laden Sie den Datensatz „Ferkel.sav“ (spss.get(), Paket Hmisc). Wir möchten herausfinden, ob es möglich ist, anhand des Anfangsgewichts das Endgewicht der Ferkel/ Schweine zu bestimmen. Ein Streudiagramm für kg_Einstallung und kg_Ausstallung sowie eine Korrelation bestätigen, dass ein starker Zusammenhang besteht (Pearsonscher Korrelationskoeffizient = 0.78). Die lineare Regression wird durchgeführt über: reg.ferkel <- lm(ferkel$kg.Ausst ~ ferkel$kg.Einst) und erhalten folgende Ausgabe: Coefficients: (Intercept) ferkel$kg.Einst 7.996 2.130 also ergibt sich für die Geradengleichung (y=mx+b) kg.Ausst = 2.130*kg.Einst + 7.996 Regressionsanalyse Im nächsten Schritt bestimmen wir die Güte des Modells: summary(reg.ferkel) Die lineare Regression erzeugt den folgenden Output: Call: lm(formula = ferkel$kg.Ausst ~ ferkel$kg.Einst) Residuals: Gewicht (kg) bei Ausstallung Min 1Q Median 3Q -7.9525 -1.8026 0.0778 1.9757 Max 9.6040 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 7.9963 1.3846 5.775 3.86e-08 *** ferkel$kg.Einst 2.1304 0.1353 15.746 < 2e-16 *** --Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.988 on 161 degrees of freedom (13 observations deleted due to missingness) Multiple R-squared: 0.6063, Adjusted R-squared: 0.6039 F-statistic: 247.9 on 1 and 161 DF, p-value: < 2.2e-16 Regressionsanalyse Diese Ausgabe gibt uns die Information, dass das R² 0.60 beträgt, das heißt, 60% der Gesamtvarianz wird durch dieses Modell erklärt. Die erklärende Variable kg.Einst erklärt einen signifikanten Anteil des Regressionsmodells (p<0.001). Um herauszufinden, ob das Regressionsmodell geeignet ist um den Zusammenhang zwischen den zwei Variablen zu beschreiben, sollten die Residuen 1) voneinander unabhängig und 2) normalverteilt sein und 3) die gleiche Varianz haben. Um 1) zu testen, erzeugt man ein Residuendiagramm und überprüft visuell, ob ein Muster erkennbar ist. plot(reg.ferkel$fitted.values, reg.ferkel$residuals) abline(h=0) erzeugt eine Nulllinie Regressionsanalyse Anhand der Grafik lässt sich kein Muster in den Residuen erkennen, daher ist 1) erfüllt. Um 2)(Normalverteilung) zu beweisen, kann ein Q-Q-plot erzeugt werden qqnorm(reg.ferkel$residuals) qqline(reg.ferkel$residuals) Man kann keine nennenswerte Abweichung von der Normalverteilung erkennen. Der Shapiro Wilk Test shapiro.test (reg.ferkel$residuals)$p.value bestätigt dies mit einem p-Wert von 0.13594. Regressionsanalyse Um 3) (gleiche Varianzen) zu beweisen, werden die standardisierten Residuen in einem Diagramm verwendet (mean=1, sd=0) : plot(reg.ferkel$fitted.values, rstandard(reg.ferkel), ylim=c(-3,3)) Beachten: der Zugriff auf die rstandard Werte ist unterschiedlich!!! Zusätzlich sollten zwei Orientierungslinien auf der Höhe von 2 und -2 gezeichnet werden (daher musste der ylim auf -3 und 3 gesetzt werden): lty=2 erzeugt eine gestrichelte Linie abline(h=c(2,-2), lty=2) Warum „2“? nach Falk et al. (2002)* treten Werte mit einer Abweichung vom Mittelwert >2*sd mit einer Wahrscheinlichkeit von 5% auf. *Falk, M., Marohn, F. and Tewes, B. (2002): Foundations of Statistical Analyses and Applications with SAS, Birkhäuser Verlag, Basel. Regressionsanalyse Nur wenige Punkte liegen außerhalb der Linien (<5%). Es ist eine gleichmäßige Punktwolke zu erkennen, was auf homogene Varianzen schließen lässt. Daher kann unser Modell im Prinzip als geeignet betrachtet werden, den Zusammenhang zwischen dem Einstallungsund dem Ausstallungsgewicht zu beschreiben. Das R² von 0,60 ist allerdings etwas unbefriedigend! D.h. für eine Vorhersage wäre es zu ungenau, da weitere Faktoren einen erheblichen Einfluss haben. Regressionsanalyse Übung: Laden Sie den Testdatensatz „Davis“ (Paket „car“). Inspizieren Sie die Daten sorgfältig! 1. Zeigen Sie, dass ein linearer Zusammenhang zwischen der Größe und dem Gewicht besteht. - Streudiagramm - Normalverteilte Variablen? - p-Wert 2. Führen Sie anhand der Daten eine lineare Regression durch. - Streudiagramm (wie oben) - Regressionsmodell - Residuenanalyse auf Unabhängigkeit Normalverteilung Homogene Varianzen Lösung Im Streudiagramm der Daten werden Sie einen extremen Ausreißer entdecken. Beim Inspizieren der Daten fällt auf, dass diese Person ein Gewicht von 166 kg bei einer Größe von 57 cm aufweist, was natürlich unmöglich ist. Da das „reported weight“ (repwt) 56 kg betrug und die „reported height“ (repht) 163 cm, kann man von einer Vertauschung der Daten ausgehen. Daher kann man in diesem Fall die Werte austauschen. Das neue Streudiagramm sieht deutlich sinnvoller aus . Um zu untersuchen, ob die Variablen Gewicht (weight) und Größe (height) normalverteilt sind, kann man z.B. durch Q-Q-plots feststellen (nächste Seite). Lösung Anhand des Q-Q-plots der Größe kann man keine Abweichung von der Normalverteilung feststellen. Der Shapiro-Wilk-Test bestätigt diese Annahme (p=0.1697). Für die Variable „weight“ zeigt der Q-Q-plot eine Abweichung von der Normalverteilung, der Shapiro-Wilk-Test bestätigt dies (p=8.434e-07). Da die Voraussetzung der Normalverteilung nicht gegeben ist, kann der Test nach „Pearson“ nicht angewendet werden, stattdessen wird der „Spearman‘s“ Test verwendet. Ergebnis: rho= 0.79 eine starke positive Korrelation zwischen der Größe und dem Gewicht liegt vor. Lösung Lineare Regression der Größe und des Gewichts: Residuals: Min 1Q Median 3Q Max -18.3492 -3.7151 -0.2466 3.5349 20.8802 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 136.83054 2.02039 67.72 <2e-16 *** weight 0.51696 0.03034 17.04 <2e-16 *** --Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 5.702 on 198 degrees of freedom Multiple R-squared: 0.5946, Adjusted R-squared: 0.5925 F-statistic: 290.4 on 1 and 198 DF, p-value: < 2.2e-16 Regressionsmodell height = 0.51696*weight + 136.83054 R²= 0.5946, besagt, dass fast 60% der Größe einer Person durch dessen Gewicht erklärt werden. Lösung Die Güte des Modells muss überprüft werden: 1. Unabhängigkeit der Residuen: kein Muster erkennbar. 2. Normalverteilung der Residuen: die visuelle Inspektion des Boxplots zeigt keine Abweichung von der Normalverteilung (nur einige Ausreißer), der Shapiro-Wilk Test bestätigt dies (p= 0.2317838). 3. Varianzen der Variablen sind gleich : Ausreißer <5% und die Punkte sind annähernd gleich verteilt, Daher kann die Gleichheit der Varianzen angenommen werden.