Statistiques de Ljung-Box pour les résidus ARIMA dans R: résultats de tests confus

15

J'ai une série chronologique que j'essaie de prévoir, pour laquelle j'ai utilisé le modèle saisonnier ARIMA (0,0,0) (0,1,0) [12] (= fit2). C'est différent de ce que R a suggéré avec auto.arima (R calculé ARIMA (0,1,1) (0,1,0) [12] serait un meilleur ajustement, je l'ai nommé fit1). Cependant, au cours des 12 derniers mois de ma série chronologique, mon modèle (fit2) semble être un meilleur ajustement lorsqu'il est ajusté (il était biaisé de manière chronique, j'ai ajouté la moyenne résiduelle et le nouvel ajustement semble s'ajuster plus étroitement à la série temporelle d'origine). Voici l'exemple des 12 derniers mois et MAPE pour les 12 derniers mois pour les deux ajustements:

fit1, fit2 et données d'origine

La série chronologique ressemble à ceci:

série chronologique originale

Jusqu'ici tout va bien. J'ai effectué une analyse résiduelle pour les deux modèles, et voici la confusion.

L'acf (resid (fit1)) a fière allure, très blanc-bruyant:

acf de fit1

Cependant, le test Ljung-Box ne semble pas bon pour, par exemple, 20 retards:

    Box.test(resid(fit1),type="Ljung",lag=20,fitdf=1)

J'obtiens les résultats suivants:

    X-squared = 26.8511, df = 19, p-value = 0.1082

À ma connaissance, c'est la confirmation que les résidus ne sont pas indépendants (la valeur de p est trop grande pour rester avec l'hypothèse d'indépendance).

Cependant, pour le lag 1, tout est super:

    Box.test(resid(fit1),type="Ljung",lag=1,fitdf=1)

me donne le résultat:

    X-squared = 0.3512, df = 0, p-value < 2.2e-16

Soit je ne comprends pas le test, soit il contredit légèrement ce que je vois sur le graphique ACF. L'autocorrélation est ridiculement faible.

Ensuite, j'ai vérifié fit2. La fonction d'autocorrélation ressemble à ceci:

acf fit2

Malgré une autocorrélation aussi évidente à plusieurs premiers retards, le test de Ljung-Box m'a donné de bien meilleurs résultats à 20 retards que fit1:

    Box.test(resid(fit2),type="Ljung",lag=20,fitdf=0)

résulte en :

    X-squared = 147.4062, df = 20, p-value < 2.2e-16

alors que la simple vérification de l'autocorrélation à lag1, me donne également la confirmation de l'hypothèse nulle!

    Box.test(resid(arima2.fit),type="Ljung",lag=1,fitdf=0)
    X-squared = 30.8958, df = 1, p-value = 2.723e-08 

Suis-je en train de comprendre le test correctement? La valeur de p devrait être de préférence inférieure à 0,05 afin de confirmer l'hypothèse nulle d'indépendance des résidus. Quel ajustement est préférable d'utiliser pour la prévision, ajustement1 ou ajustement2?

Informations supplémentaires: les résidus de fit1 affichent une distribution normale, ceux de fit2 non.

Zima
la source
2
Vous ne comprenez pas les valeurs p et vous les interprétez dans le mauvais sens.
Scortchi - Réintégrer Monica
Oui, ce pourrait être la question de la compréhension. Pourriez-vous développer? Par exemple, que signifie exactement si la valeur de p est supérieure à 0,5? J'ai lu la définition de la valeur de p (probabilité d'obtenir des statistiques au moins aussi extrêmes que la statistique de test étant donné que les hypothèses nulles sont valables). Comment cela s'applique-t-il au test Ljung-Box? Est-ce que "au moins aussi extrême" signifie "plus grand que X au carré"? Je serais reconnaissant pour l'exemple avec mes données, car les tests de signification ont été difficiles à comprendre pour moi.
zima
6
La statistique du test de Ljung-Box ( X-squared) augmente à mesure que les auto-corrélations des échantillons des résidus augmentent (voir sa définition), et sa valeur p est la probabilité d'obtenir une valeur aussi grande ou plus grande que celle observée sous la valeur nulle hypothèse que les véritables innovations sont indépendantes. Par conséquent, une petite valeur p est une preuve contre l' indépendance.
Scortchi - Réintégrer Monica
@Scortchi, je pense l'avoir compris. Mais cela fait également échouer mon test à lag = 1 pour fit1. Comment expliquer cela? Je ne vois aucune autocorrélation à lag = 1. Existe-t-il une sorte d'extrémalité de ce test avec un petit nombre de retards (très petit échantillon)?
zima
3
Le Box-Ljung est un test d'indépendance omnibus à tous les décalages jusqu'à celui que vous spécifiez. Les degrés de liberté utilisés sont le non. retards moins le non. Paramètres AR et MA ( fitdf), vous testiez donc une distribution chi carré avec zéro degré de liberté.
Scortchi - Réintégrer Monica

Réponses:

34

Vous avez mal interprété le test. Si la valeur de p est supérieure à 0,05, les résidus sont indépendants, ce que nous voulons que le modèle soit correct. Si vous simulez une série temporelle de bruit blanc en utilisant le code ci-dessous et utilisez le même test pour cela, la valeur p sera supérieure à 0,05.

m = c(ar, ma)
w = arima.sim(m, 120)
w = ts(w)
plot(w)
Box.test(w, type="Ljung-Box")
Joe Ferrelly
la source
3
Une explication courte et soignée. +1 pour l'exemple de code.
Dawny33
1
Votre interprétation n'est pas correcte non plus. Une valeur de p de 0,05 signifie que vous avez 5% de chances de faire une erreur si vous rejetez l'hypothèse nulle de non auto-corrélation jusqu'à l'ordre 1 dans votre cas.
DJJ
8

De nombreux tests statistiques sont utilisés pour essayer de rejeter une hypothèse nulle. Dans ce cas particulier, le test de Ljung-Box tente de rejeter l'indépendance de certaines valeurs. Qu'est-ce que ça veut dire?

  • Si p-valeur <0,05 1 : Vous pouvez rejeter l'hypothèse nulle en supposant 5% de chances de faire une erreur. Vous pouvez donc supposer que vos valeurs montrent une dépendance les unes envers les autres.

  • Si p-valeur> 0,05 1 : Vous n'avez pas suffisamment de preuves statistiques pour rejeter l'hypothèse nulle. Vous ne pouvez donc pas supposer que vos valeurs sont dépendantes. Cela peut signifier que vos valeurs dépendent de toute façon ou cela peut signifier que vos valeurs sont indépendantes. Mais vous ne prouvez aucune possibilité spécifique, ce que votre test a réellement dit, c'est que vous ne pouvez pas affirmer la dépendance des valeurs, ni affirmer l'indépendance des valeurs.

En général, ce qui est important ici est de garder à l'esprit qu'une valeur de p <0,05 vous permet de rejeter l'hypothèse nulle, mais une valeur de p> 0,05 ne vous permet pas de confirmer l'hypothèse nulle.

En particulier, vous ne pouvez pas prouver l'indépendance des valeurs des séries chronologiques à l'aide du test Ljung-Box. Vous ne pouvez que prouver la dépendance.


α=0,05

Alejandro Jiménez Rico
la source
α=0,05
0

D'après les graphes ACF, il est évident que l'ajustement 1 est meilleur puisque le coefficient de corrélation au décalage k (k> 1) chute fortement, et proche de 0.

Tao
la source
0

Si vous jugez avec ACF, l'ajustement 1 est plus approprié. Au lieu d'être confus sur le test de Ljung, vous pouvez toujours utiliser le corrélogramme des résidus pour déterminer le meilleur ajustement entre fit1 et fit2

Vincent
la source
1
Je ne comprends pas cette réponse.
Michael R. Chernick
Lorsque nous visitons les statistiques de la boîte de Ljung, nous pourrions être intéressés par la vérification diagnostique du modèle, c'est-à-dire l'adéquation du modèle ... Si cela vous déroute, il existe d'autres façons de vérifier l'adéquation du modèle que j'ai indiqué ci-dessus. Vous pouvez tracer le corrélogramme Ie, ACF et PACF des données résiduelles puis vérifier les bornes de la série s'il s'agit de bruit blanc ...... Il n'est pas indispensable d'utiliser le test de boîte de Ljung
Vincent