Erhalten einer Formel für Vorhersagegrenzen in einem linearen Modell (dh Vorhersageintervalle)


18

Nehmen wir das folgende Beispiel:

set.seed(342)
x1 <- runif(100)
x2 <- runif(100)
y <- x1+x2 + 2*x1*x2 + rnorm(100)
fit <- lm(y~x1*x2)

Dies erstellt ein Modell von y basierend auf x1 und x2 unter Verwendung einer OLS-Regression. Wenn wir y für ein gegebenes x_vec vorhersagen möchten, könnten wir einfach die Formel verwenden, die wir aus dem erhalten summary(fit).

Was aber, wenn wir die unteren und oberen Vorhersagen von y vorhersagen wollen? (für ein gegebenes Konfidenzniveau).

Wie würden wir dann die Formel erstellen?


Der Abschnitt Konfidenzintervall für neue Beobachtungen auf dieser Seite kann hilfreich sein.
GaBorgulya

@Tal Tut mir leid, aber mir ist nicht wirklich klar, was Sie eigentlich unter "Vorhersagen der unteren und oberen Vorhersagen von y" verstehen. Hat es etwas mit Vorhersagen oder Toleranzbereichen zu tun?
Chl

@ Tal - ein paar Fragen. Wenn Sie sagen ".. y basiert auf x1 und x2, unter Verwendung einer OLS-Regression." Damit meinen Sie, dass Sie mit OLS ein lineares Modell erstellen und Parameter schätzen . Habe ich recht? und @ chls Frage - Möchten Sie die Unter- und Obergrenze für das Vorhersageintervall vorhersagen?
Suncoolsu

@chl, tut mir leid, dass ich nicht klarer bin. Ich suche nach zwei Formeln, die ein Intervall angeben, in dem der "echte" Wert von y 95% der Zeit "abgefangen" wird. Ich fühle, wie ich Definitionen für das CI für den Mittelwert verwende, wenn es wahrscheinlich einen anderen Begriff gibt, den ich verwenden sollte, tut mir leid ...
Tal Galili

@suncoolsu - ja und ja.
Tal Galili

Antworten:


25

Sie benötigen eine Matrixarithmetik. Ich bin mir nicht sicher, wie Excel damit umgehen wird. Wie auch immer, hier sind die Details.

Angenommen , Ihre Regression geschrieben wird als .y=Xβ+e

Sei ein Zeilenvektor, der die Werte der Prädiktoren für die Vorhersagen enthält (im selben Format wie X ). Dann wird die Prognose gegeben durch y = X * β = X * ( X ' X ) - 1 X ' Y mit einer zugehörigen Varianz σ 2 [ 1 + X * ( X ' X ) - 1 ( X * ) ' ] .XX

y^=Xβ^=X(XX)-1XY.
σ2[1+X(XX)-1(X)].
Dann kann ein 95% Vorhersageintervall berechnet werden (unter der Annahme , normal verteilten Fehler) als y ± 1,96 & sgr; Dies berücksichtigt die Unsicherheit aufgrund des Fehlertermseund die Unsicherheit bei den Koeffizientenschätzungen. Allerdings ignoriert er alle Fehler in X *. Wenn die zukünftigen Werte der Prädiktoren unsicher sind, ist das mit diesem Ausdruck berechnete Vorhersageintervall zu eng.
y^±1,96σ^1+X(XX)-1(X).
eX

1
+1, sehr gute Antwort. Ich sollte jedoch beachten, dass das Regressionsmodell immer die bedingte Erwartung schätzt, also ist es so gut wie seine Regressoren. Obwohl der letzte Kommentar sehr gut ist, ist er nicht unbedingt erforderlich, da Sie den Regressoren vertrauen müssen, wenn Sie ein Regressionsmodell erstellen.
mpiktas

y^=Xβ+X(XX)-1Xeveinry^=veinrX(XX)-1Xe=σ2X(XX)-1(X)

y^

N×N

X

7

Sind Sie zufällig nach den verschiedenen Arten von Vorhersageintervallen? Die predict.lmManpage hat

 ## S3 method for class 'lm'
 predict(object, newdata, se.fit = FALSE, scale = NULL, df = Inf, 
         interval = c("none", "confidence", "prediction"),
         level = 0.95, type = c("response", "terms"),
         terms = NULL, na.action = na.pass,
         pred.var = res.var/weights, weights = 1, ...)

und

Das Einstellen von 'Intervallen' legt die Berechnung von Konfidenz- oder Vorhersageintervallen (Toleranzintervallen) auf der angegebenen 'Ebene' fest, die manchmal als enge vs. breite Intervalle bezeichnet werden.

Ist es das, was du im Sinn hattest?


Hallo Dirk, das ist in der Tat , was ich finden will, aber ich mag , dass die obere und die untere Bande in Form eines sein Formel (so später in einiger Low Form statistischer Software zu implementieren, beispielsweise Excel ...)
Tal Galili

ps: Ich sehe jetzt, dass es eine Bearbeitung des Titels meiner Frage gab, die Sie zu der Annahme veranlasst haben könnte, dass ich nach dem Parameter predict.lm interval gefragt habe (was ich nicht bin) :)
Tal Galili

8
Sie missbrauchen hier die Terminologie. Excel ist keine statistische Software.
Dirk Eddelbuettel

1
Sie haben recht, mein Gebot, wie wäre es mit "einer Tabellenkalkulationsanwendung"?
Tal Galili

3
Ich kann damit leben; es nennt den Teufel bei seinem Namen ;-)
Dirk Eddelbuettel

6

@Tal: Könnte ich Kutner et al. Als hervorragende Quelle für lineare Modelle vorschlagen?

E(Y.|Xvec)

E(Y.|Xvec)Y.^ ±αY.^Y.^Y.^σ2nXvec-X¯)2σ2(Xich-X¯)2


1
(+1) zur Unterscheidung. Ich glaube jedoch, dass das OP nach (1) fragt, nicht nach (2) (und ich habe den Titel der Frage entsprechend bearbeitet). Beachten Sie auch, dass Ihre Formel davon auszugehen scheint, dass die Regression nur von einer Variablen abhängt.
Whuber
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.