Lorsque j'estime une marche aléatoire avec un AR (1), le coefficient est très proche de 1 mais toujours inférieur.
Quelle est la raison mathématique pour laquelle le coefficient n'est pas supérieur à un?
Lorsque j'estime une marche aléatoire avec un AR (1), le coefficient est très proche de 1 mais toujours inférieur.
Quelle est la raison mathématique pour laquelle le coefficient n'est pas supérieur à un?
Réponses:
Nous estimons par OLS le modèle
Pour un échantillon de taille T, l'estimateur est
Si le véritable mécanisme de génération de données est une marche aléatoire pure, alors , et
La distribution d'échantillonnage de l'estimateur OLS, ou de manière équivalente, la distribution d'échantillonnage de , n'est pas symétrique autour de zéro, mais est plutôt biaisée à gauche de zéro, avec % des valeurs obtenues (c'est-à-dire masse de probabilité ) étant négative, et donc nous obtenons le plus souvent . Voici une distribution de fréquence relative≈68≈ ρ <1
On l'appelle parfois la distribution "Dickey-Fuller", car elle est la base des valeurs critiques utilisées pour effectuer les tests Unit-Root du même nom.
Je ne me souviens pas avoir vu une tentative de fournir une intuition pour la forme de la distribution d'échantillonnage. Nous examinons la distribution d'échantillonnage de la variable aléatoire
Si est Standard Normal, alors la première composante de est la somme des distributions Product-Normal non indépendantes (ou "Normal-Product"). La deuxième composante de est l'inverse de la somme des distributions Gamma non indépendantes (khi-deux à l'échelle d'un degré de liberté, en fait).
Nous n'avons pas non plus de résultats analytiques, alors simulons (pour un échantillon de ).
Si nous additionnons des normales de produit indépendantes, nous obtenons une distribution qui reste symétrique autour de zéro. Par exemple:
Mais si nous additionnons les normales de produit non indépendantes comme dans notre cas, nous obtenons
qui est asymétrique vers la droite mais avec plus de masse de probabilité attribuée aux valeurs négatives. Et la masse semble être poussée encore plus vers la gauche si nous augmentons la taille de l'échantillon et ajoutons plus d'éléments corrélés à la somme.
L'inverse de la somme des Gammas non indépendants est une variable aléatoire non négative avec un biais positif.
Ensuite, nous pouvons imaginer que, si nous prenons le produit de ces deux variables aléatoires, la masse de probabilité relativement plus grande dans l'orthant négatif de la première, combinée avec les valeurs positives uniquement qui se produisent dans la seconde (et l'asymétrie positive qui peut ajouter un tiret de valeurs négatives plus grandes), créez le biais négatif qui caractérise la distribution de .
Ce n'est pas vraiment une réponse mais trop long pour un commentaire, donc je poste ça quand même.
J'ai pu obtenir un coefficient supérieur à 1 deux fois sur cent pour un échantillon de 100 (en utilisant "R"):
N=100 # number of trials
T=100 # length of time series
coef=c()
for(i in 1:N){
set.seed(i)
x=rnorm(T) # generate T realizations of a standard normal variable
y=cumsum(x) # cumulative sum of x produces a random walk y
lm1=lm(y[-1]~y[-T]) # regress y on its own first lag, with intercept
coef[i]=as.numeric(lm1$coef[1])
}
length(which(coef<1))/N # the proportion of estimated coefficients below 1
Les réalisations 84 et 95 ont un coefficient supérieur à 1, il n'est donc pas toujours inférieur à un. Cependant, la tendance est clairement d'avoir une estimation biaisée à la baisse. Les questions demeurent, pourquoi ?
Edit: les régressions ci-dessus incluaient un terme d'interception qui ne semble pas appartenir au modèle. Une fois l'interception supprimée, j'obtiens beaucoup plus d'estimations au-dessus de 1 (3158 sur 10000) - mais cela reste clairement inférieur à 50% de tous les cas:
N=10000 # number of trials
T=100 # length of time series
coef=c()
for(i in 1:N){
set.seed(i)
x=rnorm(T) # generate T realizations of a standard normal variable
y=cumsum(x) # cumulative sum of x produces a random walk y
lm1=lm(y[-1]~-1+y[-T]) # regress y on its own first lag, without intercept
coef[i]=as.numeric(lm1$coef[1])
}
length(which(coef<1))/N # the proportion of estimated coefficients below 1