options(digits=2)
options(width = 80)
korr-als-regr
Aufgabe
Die Korrelation prüft, ob bzw. inwieweit zwei Merkmale linear zusammenhängen.
Wie viele andere Verfahren kann die Korrelation als ein Spezialfall der Regression bzw. des linearen Modells \(y = \beta_0 + \beta_1 + \ldots \beta_n + \epsilon\) betrachtet werden.
Als ein spezielles Beispiel betrachten wir die Frage, ob das Gewicht eines Diamanten (carat
) mit dem Preis (price
) zusammenhängt (Datensatz diamonds
).
Den Datensatz können Sie so laden:
library(tidyverse)
data(diamonds)
Geben Sie das Skalenniveau beider Variablen an!
Betrachten Sie die Ausgabe von R:
<- lm(price ~ carat, data = diamonds)
lm1 summary(lm1)
Call:
lm(formula = price ~ carat, data = diamonds)
Residuals:
Min 1Q Median 3Q Max
-18585 -805 -19 537 12732
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2256.4 13.1 -173 <2e-16 ***
carat 7756.4 14.1 551 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1550 on 53938 degrees of freedom
Multiple R-squared: 0.849, Adjusted R-squared: 0.849
F-statistic: 3.04e+05 on 1 and 53938 DF, p-value: <2e-16
Wie (bzw. wo) ist aus dieser Ausgabe die Korrelation herauszulesen?
Macht es einen Unterschied, ob man Preis mit Karat bzw. Karat mit Preis korreliert?
In der klassischen Inferenzstatistik ist der \(p\)-Wert eine zentrale Größe; ist er klein (\(p<.05\)) so nennt man die zugehörige Statistik signifikant und verwirft die getestete Hypothese.
Im Folgenden sehen Sie einen Korrelationstest auf statistische Signifikanz, mit R durchgeführt. Zeigt der Test ein (statistisch) signifikantes Ergebnis? Wie groß ist der “Unsicherheitskorridor”, um den Korrelationswert (zugleich Punktschätzer für den Populationswert)?
library(easystats)
# Attaching packages: easystats 0.7.0 (red = needs update)
✔ bayestestR 0.13.1 ✔ correlation 0.8.4
✖ datawizard 0.9.0 ✔ effectsize 0.8.6
✔ insight 0.19.7 ✔ modelbased 0.8.6
✔ performance 0.10.8 ✔ parameters 0.21.3
✔ report 0.5.8 ✔ see 0.8.1
Restart the R-Session and update packages with `easystats::easystats_update()`.
%>%
diamonds sample_n(30) %>%
select(price, carat) %>%
correlation()
# Correlation Matrix (pearson-method)
Parameter1 | Parameter2 | r | 95% CI | t(28) | p
-----------------------------------------------------------------
price | carat | 0.92 | [0.84, 0.96] | 12.74 | < .001***
p-value adjustment method: Holm (1979)
Observations: 30
Lösung
carat
ist metrisch (verhältnisskaliert) undprice
ist metrisch (verhältnisskaliert)\(R^2\) kann bei einer einfachen (univariaten) Regression als das Quadrat von \(r\) berechnet werden. Daher \(r = \sqrt{R^2}\).
sqrt(0.8493)
[1] 0.92
Zum Vergleich
%>%
diamonds summarise(r = cor(price, carat))
# A tibble: 1 × 1
r
<dbl>
1 0.922
Man kann den Wert der Korrelation auch noch anderweitig berechnen (\(\beta\) umrechnen in \(\rho\)).
Nein. Die Korrelation ist eine symmetrische Relation.
Ja; die Zahl “3.81e-14” bezeichnet eine positive Zahl kleiner eins mit 13 Nullern vor der ersten Ziffer, die nicht Null ist (3.81 in diesem Fall). Der “Unsicherheitskorridor” reicht von etwa 0.87 bis 0.97.
Categories:
- correlation
- lm
- regression
- string