Interpretation R Output

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

Antworten
Hadsga
Beiträge: 21
Registriert: Di Aug 01, 2017 2:09 pm

Interpretation R Output

Beitrag von Hadsga »

Hi,

ich habe eine paar Fragen zum R output in der linearen Regression. Ich habe zwar schon einige Bücher und Wiki´s konsultiert, allerdings sind mir einige Sachverhalte noch nicht ganz klar. Anbei ein einfaches Beispiel. Ziel ist den Einfluss der UV auf die AV zu ermitteln:

Code: Alles auswählen


AV <- c(22, 30,  10, 26, 34)
UV <- c( 5,   4,    6,   5,  4)
dat <- data.frame(AV, UV)

fit <- lm(AV~UV, data = dat) 
summary(fit)
confint(fit, level = 0.95)

Residuals:
      1       2       3       4       5 
-0.2857 -2.8571 -1.7143  3.7143  1.1429 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept)   75.143      8.594   8.744  0.00315 **
UV           -10.571      1.769  -5.976  0.00938 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.96 on 3 degrees of freedom
Multiple R-squared:  0.9225,	Adjusted R-squared:  0.8967 
F-statistic: 35.71 on 1 and 3 DF,  p-value: 0.009378

                2.5 %     97.5 %
(Intercept)  47.79412 102.491598
UV          -16.20108  -4.941779

Wie aus dem Modell zu entnehmen ist, sinkt AV im Schnitt um -10.571, wenn sich UV um eine Einheit erhöht. Meine Frage ist, wie ich die Standardabweichung ermitteln kann, d.h. ich möchte wissen welche Streuung im Durchschnitt um dem Wert -10.571 zu erwarten ist, wenn ich das Modell zur Prognose nutze. Ich weiß, dass der Standardfehler bei 1.769 liegt. Das bedeutet, würde ich die Daten wieder und wieder erheben, würde -10.571 +- 1.769 im Mittel streuen bzw. würde mit 95% Wahrscheinlichkeit irgendwo zwischen -16.20108 und -4.941779 liegen. Kann ich daraus auch ableiten, dass AV um +- 1.769 im Mittel streut, wenn sich UV um eine Einheit erhöht oder bezieht sich das nur auf die Schätzung der Geraden (-steigung)? Einige Beiträge lassen vermuten, dass die geschätzte Streung der RSE, d.h. in diesem Fall -10.571 +- 2.96 ist.

VG
Hadsga
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Interpretation R Output

Beitrag von bigben »

Hallo Hagsda,
Kann ich daraus auch ableiten, dass AV um +- 1.769 im Mittel streut, wenn sich UV um eine Einheit erhöht oder bezieht sich das nur auf die Schätzung der Geraden (-steigung)?
Das ist leider nur eine Schätzung der Streuung der Geradensteigung. Deine AV hängt im Modell vom Intercept, von der Geradensteigung und vom Fehler ab. Für alle drei hast Du nur Schätzungen. Für die Prognose der Streuung Deiner AV müsstest Du im Modell die Ungenauigkeit von allen drei Werten berücksichtigen. Dazu kommt noch, dass es Abweichungen geben wird, weil das lineare Modell i. d. R. nicht die Wahrheit beschreibt. In der Wirklichkeit sind Fehler nicht normalverteilt, sie sind nicht hmoskedastisch und Fälle sind nicht i.i.d. und Grundgesamtheiten nicht unendlich groß usw. usf.
Der Standardfehler der Geradensteigung ist daher allein nicht geeignet für eine Vorhersage, wie stark zukünftige Bobachtungen streuen werden.

Sorry, wenn das jetzt eine Enttäuschung sein sollte.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Interpretation R Output

Beitrag von bigben »

Hallo,

um noch einmal klarer zu machen, dass die Schwankungen der Steigung nicht unabhängig sind von den Schwankungen des Intercepts, habe ich mögliche Paarungen von Intercept und zugehöriger Steigung für Dein Beispiel simuliert. Der Code kommt unten, hier relevanter ist die folgende Grafik:
xy.png
xy.png (6.15 KiB) 2192 mal betrachtet
Man darf also für eine Vorhersage nicht einfach so tun, als könnte jeder beliebige Intercept mit jeder beliebigen Steigung vorkommen!

LG,
Bernhard

PS: Der Code für die Grafik oben:

Code: Alles auswählen

library(MCMCpack)
library(ggplot2)
library(ggExtra)
AV <- c(22, 30,  10, 26, 34)
UV <- c( 5,   4,    6,   5,  4)
dat <- data.frame(AV, UV)

fit <- as.data.frame(MCMCregress(AV~UV, data = dat, burnin= 2000, mcmc=5000)) 
names(fit) <- c("Intercept", "beta", "sigma2")
p <- ggplot(as.data.frame(fit)) + 
  geom_point(aes(x=Intercept, y=beta), alpha=.2)
print(ggMarginal(p, type="histogram"))
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Interpretation R Output

Beitrag von bigben »

Und ich bin es noch ein drittes Mal, denn vielleicht war die Frage viel profaner gemeint und es ging Dir eigentlich darum, wie man ganz praktisch in R ein Vorhersageintervall bestimmt. Man kann die Funktion predict sowohl dafür verwenden, den wahrscheinlichsten Wert an einer Stelle, aber auch das Konfidenzintervall für den wahrscheinlichsten Wert an einer Stelle aber auch ein Vorhersageintervall zu berechnen. Ein 99%-Vorhersageintervall an verschiedensten Stellen von UV könnte man so berechnen:

Code: Alles auswählen

fit <- lm(AV ~ UV, data = dat)

# Vorhersage mit predict
xwerte <- data.frame(UV = seq(3, 7, .5))
vorhersage <- as.data.frame(predict(fit, xwerte, interval="prediction", level=.99))
vorhersage <- cbind(xwerte, vorhersage)
print(vorhersage)
das führt zu:

Code: Alles auswählen

> print(vorhersage)
   UV       fit        lwr      upr
1 3.0 43.428571  16.884186 69.97296
2 3.5 38.142857  14.923703 61.36201
3 4.0 32.857143  12.192367 53.52192
4 4.5 27.571429   8.379869 46.76299
5 5.0 22.285714   3.233732 41.33770
6 5.5 17.000000  -3.273609 37.27361
7 6.0 11.714286 -10.922842 34.35141
8 6.5  6.428571 -19.402399 32.25954
9 7.0  1.142857 -28.444600 30.73031
oder grafisch:
Rplot.png
Rplot.png (6.84 KiB) 2191 mal betrachtet
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Hadsga
Beiträge: 21
Registriert: Di Aug 01, 2017 2:09 pm

Re: Interpretation R Output

Beitrag von Hadsga »

Hallo Bernhard,

vielen Dank für deine Ausführungen. Jetzt ist vieles klarer. Mir war nicht bewusst, dass man Intercept und den Koeffizienten immer gemeinsam betrachten muss. Das Konfidenzintervall in deinem dritten Post ist eigentlich die Antwort auf meine Frage.

Gruß
Hadsga
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Interpretation R Output

Beitrag von EDi »

Das Konfidenzintervall in deinem dritten Post ist eigentlich die Antwort auf meine Frage.
Obacht: CI != PI!
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Antworten