16
Statistische Datenanalyse mit R, Korrelation und Regression Dr. Andrea Denecke Leibniz Universität IT-Services

Statistische Datenanalyse mit R, Korrelation und Regression · Die Richtung des Zusammenhangs (positiv, negativ) Erster Schritt: Graphische Darstellung (z.B. Streudiagramm ), um einen

  • Upload
    buidien

  • View
    219

  • Download
    2

Embed Size (px)

Citation preview

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 „nitrate“ und „livestock“ des „nitrate“ Datensatzes.

Um diese Vermutung zu untersuchen, fertigen wir zuerst ein Streudiagramm an: scatterplot(nitrate$nitrate, nitrate$livestock,

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: Boxplots und Shapiro-Wilk Test). boxplot(nitrate$nitrate)

shapiro.test(nitrate$nitrate)

Das Gleiche dann entsprechend für „livestock“.

In diesem Fall würde man die nicht-parametrische Variante wählen.

Korrelationsanalyse

Dann berechnen wir den Korrelationskoeffizienten: cor.test(nitrate$nitrate, nitrate$livestock,

method=„spearman“)

Man erhält ein tau von 0.655, also liegt eine „mittelstarke“ positive Korrelation zwischen dem Viehbestand und dem Nitratgehalt vor, die statistisch signifikant ist (p<0.001).

Übung: Berechnen Sie die Korrelation zwischen der Bodenart (soil) und dem Nitratgehalt. (Die Bodenart muss zuvor als numerische Variable angelegt werden!)

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: Wir möchten den Nitratgehalt anhand des Viehbestandes „vorhersagen“.

Die lineare Regression wird durchgeführt über: reg.nitrate <- lm(nitrate$nitrate ~ nitrate$livestock)

und erhalten durch reg.nitrate

folgende Ausgabe: Coefficients: (Intercept) nitrate$livestock

-1.7463890 0.0007602

also ergibt sich für die Geradengleichung (y=mx+b) nitrate= 0.00076 * livestock -1.7464

Wenn nicht in den Basispaketen vorhanden, finden sich viele Funktionen zu Regressionen in den Paketen car und MASS.

Im nächsten Schritt lassen wir uns eine Zusammenfassung des Modells geben: summary(reg.nitrate)

Man erhält den folgenden Output: Call:

lm(formula = nitrate$nitrate ~ nitrate$livestock)

Residuals:

Min 1Q Median 3Q Max

-24.8269 -9.9921 -0.6046 7.8602 30.7168

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) -1.746e+00 6.709e+00 -0.260 0.797

nitrate$livestock 7.602e-04 9.703e-05 7.835 1.56e-08 ***

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 14.48 on 28 degrees of freedom

Multiple R-squared: 0.6868, Adjusted R-squared: 0.6756

F-statistic: 61.39 on 1 and 28 DF, p-value: 1.556e-08

Regressionsanalyse

Regressionsanalyse Diese Ausgabe gibt uns die Information, dass das R² 0.68 beträgt, das heißt, 68% der Gesamtvarianz wird durch dieses Modell erklärt. Die erklärende Variable livestock erklärt einen signifikanten Anteil des Regressionsmodells (p<0.001). Um herauszufinden, ob das Regressionsmodell geeignet ist um den Zusam-menhang zwischen den zwei Variablen zu beschreiben, sollten die Residuen 1) voneinander unabhängig (keine Autokorrelation) 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.nitrate$fitted.values, reg.nitrate$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. Man kann zusätzlich einen Test anwenden: durbinWatsonTest(reg.nitrate2){car}

Der erhaltene Wert für die Durbin-Watson Statistik von 1.9 weist nicht auf Autokorrela- tion der Werte hin (Werte zwischen 1.5 und 2.5 gelten als unauffällig). Um 2)(Normalverteilung) zu beweisen, kann ein Q-Q-plot erzeugt werden qqnorm(reg.nitrate$residuals)

qqline(reg.nitrate$residuals)

Man kann keine nennenswerte Abweichung von der Normalverteilung erkennen. Der Shapiro Wilk Test shapiro.test(reg.nitrate$residuals)

bestätigt dies mit einem p-Wert von 0.9026.

Regressionsanalyse Um 3) (gleiche Varianzen) zu beweisen, wer- den die standardisierten Residuen in einem Diagramm verwendet (mean=0, sd=1) : plot(reg.nitrate$fitted.values,

rstandard(reg.nitrate), ylim=c(-3,3))

Beachten: die rstandard Werte werden hier in dem Kommando erst berechnet!!! Zusätzlich sollten zwei Orientierungslinien auf der Höhe von 2 und -2 gezeichnet werden (daher wurde der ylim auf -3 und 3 gesetzt): abline(h=c(2,-2), lty=2)

lty=2 erzeugt eine gestrichelte Linie

Werte mit einer Abweichung vom Mittelwert >2*sd treten mit einer Wahrscheinlichkeit von 5% auf.

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.

Diese (bzw. ähnliche) diagnostische Plots erhält man auch über plot(reg.nitrate)

Unser Modell kann also im Prinzip als geeignet betrachtet werden, den Zusammenhang zwischen dem Nitratgehalt und dem Viehbestand zu beschreiben. Das R² von 0,68 ist allerdings etwas unbefriedigend! Man könnte noch die Bodenart als erklärende Variable in das Modell aufnehmen (würde aber hier den Rahmen sprengen).

Eine recht gute weiterführende Anleitung zu Regressionen findet sich hier: https://www.statmethods.net/stats/regression.html

Regressionsanalyse

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 („height“ ist vorherzusagende Variable, „weight“ die erklärende). - 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 Normalvertei-lung 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 an- nähernd gleich verteilt, Daher kann die Gleichheit der Varianzen angenom- men werden.