Intervalles de prédiction avec hétéroscédasticité

8

J'utilise R pour effectuer une régression linéaire. J'ai vu des moyens de calculer les intervalles de prédiction, mais ceux-ci dépendent de données homoscédastiques. Existe-t-il un moyen de calculer les intervalles de prédiction avec des données hétéroscédastiques?

Andy
la source

Réponses:

4

Cela dépendrait de la nature de l'hétéroskédasticité. Si vous vouliez un intervalle de prédiction, vous avez généralement besoin d'une spécification paramétrique comme:

yiN(xiβ,σi(xi,zi))
ie est normalement distribué avec la moyenne , et l'écart type , où l'écart type est une fonction connue de ou peut-être un autre ensemble de variables , vous pouvez ainsi estimer l'écart type pour chaque observation.yixiβσi(xi,zi)xiziith

Exemples de fonctions possibles: (Études des bénéfices des entreprises, un exemple tiré de Greene "Econometric Analysis" 7e édition CH 9), où est la observation de la variable dépendante ou, si vous travaillez avec des données de séries chronologiques, GARCH et / ou des spécifications de volatilité stochastique. σje2(Xje)=σ2Xje,kXje,kjethkth

Vous pouvez utiliser les estimations comme erreurs standard pour vos intervalles de prédiction si vous le souhaitez. Je vais renoncer à un traitement formel ici car la prise en compte des erreurs d'estimation dans peut être compliquée mais, avec un échantillon suffisamment grand, ignorer l'erreur d'estimation n'affecte pas l'intervalle de prédiction autant. En bref, il n'est pas nécessaire d'ouvrir ici cette boîte de vers. Pour une explication plus détaillée de tout cela et d'autres exemples, voir le livre de Wooldridge "Introductory Econometrics: A Modern Approach" , Ch 8.σ^je(Xje,zje)σ^je(Xje,zje)

Le problème est que lorsque les gens se réfèrent à une régression hétéroscédastique ou "robuste", ils se réfèrent généralement à la situation dans laquelle la nature précise de l'hétéroscédasticité (la fonction ) n'est pas connue, auquel cas un estimateur blanc ou en deux étapes est utilisé. Ceux-ci offrent des estimations cohérentes pour mais pas pour , et vous n'avez donc aucun moyen naturel d'estimer les intervalles de prédiction. σje(Xje,zje)vuner(β^)σje Je dirais que les intervalles de prédiction ne sont de toute façon pas significatifs dans ce contexte. L'idée derrière ces estimateurs de type sandwich est d'estimer de manière cohérente l'erreur standard des coefficients,β^, sans le fardeau d'offrir des intervalles de prédiction précis pour chaque observation individuelle, rendant ainsi les estimations plus "robustes".

Éditer:

Juste pour être clair, ce qui précède ne considère que la régression des moindres carrés. D'autres formes de régression non paramétrique, telles que la régression quantile, peuvent offrir des moyens d'obtenir un intervalle de prédiction sans spécification paramétrique d'erreur standard résiduelle.

Zachary Blumenfeld
la source
4

La régression quantile non paramétrique donne une approche très générale qui permet à la fois l'hétéroscédasticité et la non-linéarité. Voir section 9: http://www.econ.uiuc.edu/~roger/research/rq/vig.pdf

MISE À JOUR: Une approximation raisonnable pour un intervalle de prédiction de 90% est l'espace entre la courbe de régression du 5e centile et la courbe de régression du 95e centile. (Selon les détails de la technique d'estimation de la courbe et la rareté des données, vous voudrez peut-être utiliser quelque chose de plus comme les 4e et 96e centiles pour être «conservateur»). L'intuition pour ce type d'intervalle de prédiction non paramétrique est ici sur wikipedia .

Cette réponse n'est qu'un point de départ. Un travail important a été effectué sur les intervalles de prédiction de régression quantile . Ou faites simplement des intervalles de prédiction de régression non paramétriques .

zkurtz
la source
Certes, mais comment obtenir des intervalles de prédiction dans la régression quantile?
Zachary Blumenfeld
2

Si la régression de votre réponse sur votre variable explicative est une droite et que votre variance augmente avec la variable explicative, un modèle de régression pondéré est nécessaire avec ou (si votre variance non constante est plus extrême) comme votre poids. Cela pondère votre variance par votre valeur x, de sorte qu'il existe une relation proportionnelle.

Voici le code avec les poids inclus dans le modèle et la prédiction. Notez que vous devez ajouter les poids à la fois à votre jeu de données d'origine et à votre nouveau jeu de données.

Merci à @PopcornKing pour son code original de Calcul des intervalles de prédiction à partir de données hétéroscédastiques .

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

entrez la description de l'image ici

LindsayL
la source