korr-als-regr

lm
regression
string
association
Published

May 8, 2023

options(digits=2)
options(width = 80)

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)
  1. Geben Sie das Skalenniveau beider Variablen an!

  2. Betrachten Sie die Ausgabe von R:

lm1 <- lm(price ~ carat, data = diamonds)
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?

  1. Macht es einen Unterschied, ob man Preis mit Karat bzw. Karat mit Preis korreliert?

  2. 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.

  3. 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

  1. carat ist metrisch (verhältnisskaliert) und price ist metrisch (verhältnisskaliert)

  2. \(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\)).

  1. Nein. Die Korrelation ist eine symmetrische Relation.

  2. 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