library(tidyverse)
<- 2^4
n
<-
d tibble(x = rnorm(n = n), # im Default: mean = 0, sd = 1
y = x + rnorm(n, mean = 0, sd = .5))
lm-Standardfehler
Exercise
Man kann angeben, wie genau eine Schätzung von Regressionskoeffizienten die Grundgesamtheit widerspiegelt. Zumeist wird dazu der Standardfehler (engl. standard error, SE) verwendet.
In dieser Übung untersuchen wir, wie sich der SE als Funktion der Stichprobengröße, \(n\), verhält.
Erstellen Sie dazu folgenden Datensatz:
Hier ist das Ergebnis. Uns interessiert v.a. Std. Error
für den Prädiktor x
:
lm(y ~ x, data = d) %>%
summary()
Call:
lm(formula = y ~ x, data = d)
Residuals:
Min 1Q Median 3Q Max
-1.07923 -0.30544 -0.03081 0.36343 0.84712
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.2339 0.1398 -1.673 0.117
x 0.8345 0.1360 6.134 2.59e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.5403 on 14 degrees of freedom
Multiple R-squared: 0.7288, Adjusted R-squared: 0.7095
F-statistic: 37.63 on 1 and 14 DF, p-value: 2.588e-05
Hier haben wir eine Tabelle mit zwei Variablen, x und y, definiert mit n=16.
Verdoppeln Sie die Stichprobengröße 5 Mal und betrachten Sie, wie sich die Schätzgenauigkeit, gemessen über den SE, verändert. Berechnen Sie dazu für jedes n eine Regression mit x als Prädiktor und y als AV!
Bei welcher Stichprobengröße ist SE am kleinsten?
Answerlist
- \(2^5\)
- \(2^6\)
- \(2^7\)
- \(2^8\)
- \(2^9\)
Solution
Probieren wir es aus!
Erste Verdopplung, \(n=2^5\):
<- 2^5
n
<-
d5 tibble(x = rnorm(n = n), # im Default: mean = 0, sd = 1
y = x + rnorm(n, mean = 0, sd = .5))
<- lm(y ~ x, data = d5)
lm5
%>% summary() lm5
Call:
lm(formula = y ~ x, data = d5)
Residuals:
Min 1Q Median 3Q Max
-0.8316 -0.1946 -0.0425 0.3256 0.6255
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.01046 0.06642 -0.157 0.876
x 1.04145 0.05963 17.464 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.3757 on 30 degrees of freedom
Multiple R-squared: 0.9104, Adjusted R-squared: 0.9075
F-statistic: 305 on 1 and 30 DF, p-value: < 2.2e-16
Man kann sich den Standardfehler komfortabler ausgeben lassen, wenn man das Paket easystats
verwendet:
library(easystats)
%>%
lm5 parameters()
Parameter | Coefficient | SE | CI | CI_low | CI_high | t | df_error | p |
---|---|---|---|---|---|---|---|---|
(Intercept) | -0.0104562 | 0.0664176 | 0.95 | -0.1460991 | 0.1251866 | -0.1574316 | 30 | 0.8759596 |
x | 1.0414489 | 0.0596325 | 0.95 | 0.9196630 | 1.1632348 | 17.4644417 | 30 | 0.0000000 |
Jetzt mit den anderen Stichprobengrößen:
<- 2^6
n
<-
d tibble(x = rnorm(n = n), # im Default: mean = 0, sd = 1
y = x + rnorm(n, mean = 0, sd = .5))
<- lm(y ~ x, data = d)
mein_lm
%>%
mein_lm parameters
Parameter | Coefficient | SE | CI | CI_low | CI_high | t | df_error | p |
---|---|---|---|---|---|---|---|---|
(Intercept) | -0.0213003 | 0.0594411 | 0.95 | -0.1401213 | 0.0975207 | -0.3583437 | 62 | 0.7213034 |
x | 1.0476647 | 0.0563846 | 0.95 | 0.9349535 | 1.1603759 | 18.5806847 | 62 | 0.0000000 |
<- 2^7
n
<-
d tibble(x = rnorm(n = n), # im Default: mean = 0, sd = 1
y = x + rnorm(n, mean = 0, sd = .5))
<- lm(y ~ x, data = d)
mein_lm
%>%
mein_lm parameters()
Parameter | Coefficient | SE | CI | CI_low | CI_high | t | df_error | p |
---|---|---|---|---|---|---|---|---|
(Intercept) | 0.0066524 | 0.0429842 | 0.95 | -0.0784121 | 0.0917169 | 0.154764 | 126 | 0.877255 |
x | 0.9692920 | 0.0449156 | 0.95 | 0.8804053 | 1.0581787 | 21.580293 | 126 | 0.000000 |
<- 2^8
n
<-
d tibble(x = rnorm(n = n), # im Default: mean = 0, sd = 1
y = x + rnorm(n, mean = 0, sd = .5))
<- lm(y ~ x, data = d)
mein_lm
%>%
mein_lm parameters()
Parameter | Coefficient | SE | CI | CI_low | CI_high | t | df_error | p |
---|---|---|---|---|---|---|---|---|
(Intercept) | -0.0692029 | 0.0308774 | 0.95 | -0.1300112 | -0.0083947 | -2.24122 | 254 | 0.0258761 |
x | 1.0541751 | 0.0308630 | 0.95 | 0.9933951 | 1.1149551 | 34.15660 | 254 | 0.0000000 |
<- 2^9
n
<-
d tibble(x = rnorm(n = n), # im Default: mean = 0, sd = 1
y = x + rnorm(n, mean = 0, sd = .5))
<- lm(y ~ x, data = d)
mein_lm
%>%
mein_lm parameters()
Parameter | Coefficient | SE | CI | CI_low | CI_high | t | df_error | p |
---|---|---|---|---|---|---|---|---|
(Intercept) | -0.0112189 | 0.0217875 | 0.95 | -0.0540232 | 0.0315854 | -0.5149226 | 510 | 0.6068302 |
x | 1.0121220 | 0.0215441 | 0.95 | 0.9697959 | 1.0544482 | 46.9790437 | 510 | 0.0000000 |
Answerlist
- Falsch
- Falsch
- Falsch
- Falsch
- Wahr. Die größte Stichprobe impliziert den kleinsten SE, ceteris paribus.
Categories:
- inference
- lm
- qm2