Vorhersageintervalle mit Heteroskedastizität

8

Ich benutze R, um eine lineare Regression durchzuführen. Ich habe Möglichkeiten gesehen, Vorhersageintervalle zu berechnen, aber diese hängen von homoskedastischen Daten ab. Gibt es eine Möglichkeit, Vorhersageintervalle mit heteroskedastischen Daten zu berechnen?

Andy
quelle

Antworten:

4

Dies würde von der Art der Heteroskedastizität abhängen. Wenn Sie ein Vorhersageintervall wünschen, benötigen Sie normalerweise eine parametrische Spezifikation wie:

yiN(xiβ,σi(xi,zi))
dh wird normalerweise mit dem Mittelwert , verteilt. und Standardabweichung , wobei die Standardabweichung eine bekannte Funktion von oder vielleicht einer anderen Menge von Variablen Auf diese Weise können Sie die Standardabweichung für jede Beobachtung schätzen .x ' i β σ i ( x i , z i ) x i z i i t hyixiβσi(xi,zi)xiziith

Beispiele für mögliche Funktionen sind: (Studien über Unternehmensgewinne, ein Beispiel aus Greenes "Ökonometrischer Analyse", 7. Ausgabe CH 9), wobei ist die Beobachtung der abhängigen Variablen oder, wenn mit Zeitreihendaten gearbeitet wird, GARCH- und / oder stochastische Volatilitätsspezifikationen. x i , k i t h k t hσi2(xi)=σ2xi,kxi,kithkth

Sie können die Schätzungen als Standardfehler für Ihre Vorhersageintervalle verwenden, wenn Sie möchten. Ich werde hier auf eine formelle Behandlung verzichten, da die Berücksichtigung von Schätzfehlern in kompliziert sein kann, aber bei einer ausreichend großen Stichprobe das Ignorieren des Schätzfehlers keine Auswirkung hat das Vorhersageintervall so viel. Kurz gesagt, es ist nicht notwendig, diese Dose Würmer hier zu öffnen. Eine detailliertere Erklärung all dieser und weiterer Beispiele finden Sie in Wooldridges Buch "Introductory Econometrics: A Modern Approach" , Kapitel 8. σ i(xi,zi)σ^i(xi,zi)σ^i(xi,zi)

Das Problem ist, dass Menschen, die sich auf heteroskedastische oder "robuste" Regression beziehen, sich normalerweise auf die Situation beziehen, in der die genaue Natur der Heteroskedastizität (die Funktion ) ist nicht bekannt. In diesem Fall wird ein weißer oder zweistufiger Schätzer verwendet. Diese bieten konsistente Schätzungen für jedoch nicht für , sodass Sie auf natürliche Weise keine Vorhersageintervalle schätzen können. v a r ( β ) σ i σi(xi,zi)var(β^)σiβ Ich würde argumentieren, dass Vorhersageintervalle in diesem Zusammenhang sowieso nicht sinnvoll sind. Die Idee hinter diesen Sandwich-Typ-Schätzern besteht darin, den Standardfehler der Koeffizienten konsistent zu schätzenβ^ohne die Last, genaue Vorhersageintervalle für jede einzelne Beobachtung anzubieten, wodurch die Schätzungen "robuster" werden.

Bearbeiten:

Um klar zu sein, berücksichtigt das oben Gesagte nur die Regression der kleinsten Quadrate. Andere Formen der nichtparametrischen Regression, wie beispielsweise die Quantilregression, können Mittel zum Erhalten eines Vorhersageintervalls ohne parametrische Angabe des verbleibenden Standardfehlers bieten.

Zachary Blumenfeld
quelle
4

Die nichtparametrische Quantilregression bietet einen sehr allgemeinen Ansatz, der sowohl Heteroskedastizität als auch Nichtlinearität berücksichtigt. Siehe Abschnitt 9: http://www.econ.uiuc.edu/~roger/research/rq/vig.pdf

UPDATE: Eine vernünftige Annäherung für ein 90% -Vorhersageintervall ist der Abstand zwischen der Regressionskurve des 5. Perzentils und der Regressionskurve des 95. Perzentils. (Abhängig von den Details der Kurvenschätzungstechnik und der Sparsamkeit der Daten möchten Sie möglicherweise eher das 4. und 96. Perzentil verwenden, um "konservativ" zu sein.) Die Intuition für diese Art von nichtparametrischem Vorhersageintervall finden Sie hier auf Wikipedia .

Diese Antwort ist nur ein Ausgangspunkt. Es wurde ein erheblicher Teil der Arbeit an Vorhersageintervallen für die Quantilregression geleistet . Oder machen Sie einfach nichtparametrische Regressionsvorhersageintervalle .

zkurtz
quelle
Stimmt, aber wie erhalten Sie Vorhersageintervalle bei der Quantilregression?
Zachary Blumenfeld
2

Wenn die Regression Ihrer Antwort auf Ihre erklärende Variable eine gerade Linie ist und Ihre Varianz mit der erklärenden Variablen zunimmt, wird ein gewichtetes Regressionsmodell mit oder (wenn Ihre nicht konstante Varianz extremer ist) als Gewicht benötigt. Dies gewichtet Ihre Varianz mit Ihrem x-Wert, so dass eine proportionale Beziehung besteht.

Hier ist Code mit den im Modell und in der Vorhersage enthaltenen Gewichten. Beachten Sie, dass Sie die Gewichte sowohl zu Ihrem ursprünglichen als auch zu Ihrem neuen Datensatz hinzufügen müssen.

Vielen Dank an @PopcornKing für seinen ursprünglichen Code aus der Berechnung von Vorhersageintervallen aus heteroskedastischen Daten .

library(ggplot2)
dummySamples <- function(n, slope, intercept, slopeVar){
  x = runif(n)
  y = slope*x+intercept+rnorm(n, mean=0, sd=slopeVar*x)
  return(data.frame(x=x,y=y))
}

myDF <- dummySamples(20000,3,0,5)
plot(myDF$x, myDF$y)
w = 1/myDF$x**2
t = lm(y~x, data=myDF, weights=w) 
summary(t)

newdata = data.frame(x=seq(0,1,0.01))
w = 1/newdata$x**2
p1 = predict.lm(t, newdata, interval = 'prediction', weights=w)
a <- ggplot()
a <- a + geom_point(data=myDF, aes(x=x,y=y), shape=1)
a <- a + geom_abline(intercept=t$coefficients[1], slope=t$coefficients[2])         
a <- a + geom_abline(intercept=t$coefficients[1],   slope=t$coefficients[2], color='blue')  
a <- ggplot()
a <- a + geom_point(data=myDF, aes(x=x,y=y), shape=1)
a <- a + geom_abline(intercept=t$coefficients[1], slope=t$coefficients[2],  color='blue')
newdata$lwr = p1[,c("lwr")]
newdata$upr = p1[,c("upr")]
a <- a + geom_ribbon(data=newdata, aes(x=x,ymin=lwr, ymax=upr),   fill='yellow', alpha=0.3)
a

Geben Sie hier die Bildbeschreibung ein

LindsayL
quelle