Prédire la variance des données hétéroscédastiques

15

J'essaie de faire une régression sur des données hétéroscédastiques où j'essaie de prédire les variances d'erreur ainsi que les valeurs moyennes en termes de modèle linéaire. Quelque chose comme ça:

y(x,t)=y¯(x,t)+ξ(x,t),ξ(x,t)N(0,σ(x,t)),y¯(x,t)=y0+ax+bt,σ(X,t)=σ0+cX+t.

En d'autres termes, les données consistent en des mesures répétées de à différentes valeurs de x et t . Je suppose que ces mesures consistent en une "vraie" valeur moyenne ˉ y ( x , t ) qui est une fonction linéaire de x et t , avec un bruit gaussien additif ξ ( x , t ) dont l'écart-type (ou la variance, je n'ai pas décidé) dépend aussi linéairement de x , t . (Je pourrais autoriser des dépendances plus compliquées sur x ety(X,t)Xty¯(X,t)Xtξ(X,t)X,tX - il n'y a pas de forte motivation théorique pour une forme linéaire - mais je préfère ne pas trop compliquer les choses à ce stade.)t

Je sais que le terme de recherche ici est "hétéroscédasticité", mais tout ce que j'ai pu trouver jusqu'à présent, ce sont des discussions sur la façon de le réduire / le supprimer pour mieux prédire , mais rien en termes d'essayer de prédire σ en termes de variables indépendantes. Je voudrais estimer y 0 , a , b , σ 0 , c et d avec des intervalles de confiance (ou des équivalents bayésiens), et s'il existe un moyen facile de le faire dans SPSS, tant mieux! Que devrais-je faire? Merci.y¯ σy0,une,b,σ0,c

Michael
la source
Voir cette question connexe pour quelques références, Variance en fonction des paramètres
Andy W
Avez-vous essayé GARCH?
Aksakal
Modèles linéaires généralisés est la branche qui traite votre problème. Il existe un livre du même titre, très recommandé.
Diego

Réponses:

1

Je pense que votre premier problème est que n'est plus une distribution normale, et la façon dont les données doivent être transformées pour être homoscédastiques dépend exactement de ce qu'est σ ( x , t ) . Par exemple, si σ ( x , t ) = a x + b t , l'erreur est de type proportionnel et le logarithme des données y doit être pris avant la régression, ou la régression ajustée des moindres carrés ordinaires (OLS) à pondérée moindres carrés avec un 1N(0,σ(X,t))σ(X,t)σ(X,t)=uneX+bt poids (qui change la régression en erreur de type proportionnelle minimisée). De même, si σ ( x , t ) = e a x + b t , il faudrait prendre le logarithme du logarithme et le régresser.1/y2σ(X,t)=euneX+bt

Je pense que la raison pour laquelle la prédiction des types d'erreur est mal couverte est que l'on fait d'abord une ancienne régression (grognement, moindres carrés généralement ordinaires, OLS). Et à partir du tracé résiduel, c'est-à-dire , on observe la forme résiduelle, et on trace l'histogramme de fréquence des données, et on regarde cela. Ensuite, si les résidus sont un faisceau en éventail s'ouvrant vers la droite, on essaie de modéliser les données proportionnellement, si l'histogramme ressemble à une décroissance exponentielle, on pourrait essayer la réciprocité, 1 / y , et ainsi de suite pour les racines carrées, la quadrature, l'exponentiation , en prenant exponentielle-y.moel-y1/y

Maintenant, ce n'est que la petite histoire. La version plus longue comprend beaucoup plus de types de régression, y compris la régression médiane de Theil, la régression bivariée de Deming et la régression pour la minimisation des erreurs de problèmes mal posés qui n'ont pas de relation d'ajustement de courbe particulière avec l'erreur propagée minimisée. Ce dernier est un whopper, mais, voyez cecipar exemple. Pour que cela fasse une grande différence ce que l'on cherche à obtenir. En règle générale, si l'on veut établir une relation entre les variables, l'OLS de routine n'est pas la méthode de choix, et la régression Theil serait une amélioration rapide et sale à ce sujet. OLS ne minimise que dans la direction y, donc la pente est trop peu profonde et l'interception trop grande pour établir la relation sous-jacente entre les variables. Autrement dit, OLS donne une estimation de l'erreur la plus faible de ay étant donné un x, il ne donne pas d'estimation de la façon dont x change avec y. Lorsque les valeurs r sont très élevées (0,99999+), peu importe la régression utilisée et OLS en y est approximativement le même que OLS en x, mais, lorsque les valeurs r sont faibles, OLS en y est très différent de OLS en x.

En résumé, tout dépend en grande partie du raisonnement qui a motivé l'analyse de régression en premier lieu. Cela dicte les méthodes numériques nécessaires. Une fois ce choix effectué, les résidus ont alors une structure liée à l'objectif de la régression et doivent être analysés dans ce contexte plus large.

Carl
la source
0

La commande d'extension STATS BREUSCH PAGAN peut à la fois tester l'hétéroscédasticité des résidus et l'estimer en fonction de tout ou partie des régresseurs.

JKP
la source
0

L'approche générale des problèmes de ce type consiste à maximiser la probabilité (régularisée) de vos données.

LL(y0,une,b,σ0,c,)=je=1nJournalϕ(yje,y0+uneXje+btje,σ0+cXje+tje)
ϕ(X,μ,σ)=12πσe-(X-μ)22σ2

θ^θ=(y0,une,b,σ0,c,)

Hθnθ^H-1

Voici un exemple de code en Python:

import scipy
import numpy as np

# generate toy data for the problem
np.random.seed(1) # fix random seed
n = 1000 # fix problem size
x = np.random.normal(size=n)
t = np.random.normal(size=n)
mean = 1 + x * 2 + t * 3
std = 4 + x * 0.5 + t * 0.6
y = np.random.normal(size=n, loc=mean, scale=std)

# create negative log likelihood
def neg_log_lik(theta):
    est_mean = theta[0] + x * theta[1] + t * theta[2]
    est_std = np.maximum(theta[3] + x * theta[4] + t * theta[5], 1e-10)
    return -sum(scipy.stats.norm.logpdf(y, loc=est_mean, scale=est_std))

# maximize
initial = np.array([0,0,0,1,0,0])
result = scipy.optimize.minimize(neg_log_lik, initial)
# extract point estimation
param = result.x
print(param)
# extract standard error for confidence intervals
std_error = np.sqrt(np.diag(result.hess_inv))
print(std_error)

σσdix-dix

Le résultat (estimations des paramètres et leurs erreurs types) produit par le code est:

[ 0.8724218   1.75510897  2.87661843  3.88917283  0.63696726  0.5788625 ]
[ 0.15073344  0.07351353  0.09515104  0.08086239  0.08422978  0.0853192 ]

Vous pouvez voir que les estimations sont proches de leurs vraies valeurs, ce qui confirme l'exactitude de cette simulation.

David Dale
la source