J'utilise la decompose
fonction dans R
et propose les 3 composantes de ma série chronologique mensuelle (tendance, saisonnière et aléatoire). Si je trace le graphique ou regarde le tableau, je peux clairement voir que la série chronologique est affectée par la saisonnalité.
Cependant, lorsque je régresse la série chronologique sur les 11 variables indicatrices saisonnières, tous les coefficients ne sont pas statistiquement significatifs, ce qui suggère qu'il n'y a pas de saisonnalité.
Je ne comprends pas pourquoi j'arrive à deux résultats très différents. Est-ce arrivé à quelqu'un? Est-ce que je fais quelque chose de mal?
J'ajoute ici quelques détails utiles.
Ceci est ma série chronologique et la variation mensuelle correspondante. Dans les deux graphiques, vous pouvez voir qu'il y a une saisonnalité (ou c'est ce que j'aimerais évaluer). Surtout, dans le deuxième graphique (qui est la variation mensuelle de la série), je peux voir une tendance récurrente (points hauts et points bas au cours des mêmes mois de l'année).
Voici la sortie de la decompose
fonction. J'apprécie que, comme l'a dit @RichardHardy, la fonction ne vérifie pas s'il existe une saisonnalité réelle. Mais la décomposition semble confirmer ce que je pense.
Cependant, lorsque je régresse la série chronologique sur 11 variables fictives saisonnières (de janvier à novembre, à l'exclusion de décembre), je trouve ce qui suit:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5144454056 372840549 13.798 <2e-16 ***
Jan -616669492 527276161 -1.170 0.248
Feb -586884419 527276161 -1.113 0.271
Mar -461990149 527276161 -0.876 0.385
Apr -407860396 527276161 -0.774 0.443
May -395942771 527276161 -0.751 0.456
Jun -382312331 527276161 -0.725 0.472
Jul -342137426 527276161 -0.649 0.520
Aug -308931830 527276161 -0.586 0.561
Sep -275129629 527276161 -0.522 0.604
Oct -218035419 527276161 -0.414 0.681
Nov -159814080 527276161 -0.303 0.763
Fondamentalement, tous les coefficients de saisonnalité ne sont pas statistiquement significatifs.
Pour exécuter une régression linéaire, j'utilise la fonction suivante:
lm.r = lm(Yvar~Var$Jan+Var$Feb+Var$Mar+Var$Apr+Var$May+Var$Jun+Var$Jul+Var$Aug+Var$Sep+Var$Oct+Var$Nov)
où j'ai configuré Yvar comme une variable de série chronologique avec une fréquence mensuelle (fréquence = 12).
J'essaie également de prendre en compte la composante tendance de la série chronologique, y compris une variable de tendance à la régression. Cependant, le résultat ne change pas.
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3600646404 96286811 37.395 <2e-16 ***
Jan -144950487 117138294 -1.237 0.222
Feb -158048960 116963281 -1.351 0.183
Mar -76038236 116804709 -0.651 0.518
Apr -64792029 116662646 -0.555 0.581
May -95757949 116537153 -0.822 0.415
Jun -125011055 116428283 -1.074 0.288
Jul -127719697 116336082 -1.098 0.278
Aug -137397646 116260591 -1.182 0.243
Sep -146478991 116201842 -1.261 0.214
Oct -132268327 116159860 -1.139 0.261
Nov -116930534 116134664 -1.007 0.319
trend 42883546 1396782 30.702 <2e-16 ***
D'où ma question: est-ce que je fais quelque chose de mal dans l'analyse de régression?
la source
decompose
fonction inR
est utilisée).decompose
fonction, il semble que la fonction ne teste pas s'il y a saisonnalité. Au lieu de cela, il obtient simplement des moyennes pour chaque saison, soustrait la moyenne et appelle cela la composante saisonnière. Il produirait donc une composante saisonnière, qu'il y ait une véritable composante saisonnière sous-jacente ou simplement du bruit. Néanmoins, cela n'explique pas pourquoi vos variables muettes sont insignifiantes bien que vous disiez que la saisonnalité est visible à partir d'un tracé des données. Se pourrait-il que votre échantillon soit trop petit pour obtenir des mannequins saisonniers importants? Sont-ils significatifs conjointement?Réponses:
Faites-vous la régression sur les données après avoir supprimé la tendance? Vous avez une tendance positive, et votre signature saisonnière est probablement masquée dans votre régression (la variance due à la tendance ou à l'erreur, est plus grande que celle due au mois), sauf si vous avez expliqué la tendance dans Yvar ...
De plus, je ne suis pas très confiant avec les séries chronologiques, mais ne devrait-on pas attribuer à chaque observation un mois, et votre régression ressemble à ceci?
Toutes mes excuses si cela n'a aucun sens ... La régression est-elle la plus logique ici?
la source
Dans votre représentation graphique de la série chronologique, il est évident que la "tendance" - une composante linéaire dans le temps - est le principal contributeur substantiel à la réalisation. Nous dirions que l'aspect le plus important de cette série chronologique est la hausse stable chaque mois.
Après cela, je dirais que la variation saisonnière est minuscule par comparaison. Il n'est donc pas surprenant qu'avec des mesures mensuelles prises sur 6 ans (un total de seulement 72 observations), le modèle de régression linéaire n'ait pas la précision d'identifier l'un des contrastes de 11 mois comme statistiquement significatif. Il est par ailleurs pas surprenant que l'effet du temps n'atteindre une signification statistique, car elle est la même augmentation linéaire environ constante se produisant sur les 72 observations, sous réserve de leurs effets saisonniers.
L'absence de signification statistique pour aucun des contrastes de 11 mois ne signifie pas qu'il n'y a pas d'effets saisonniers. En fait, si vous deviez utiliser un modèle de régression pour déterminer s'il y a une saisonnalité, le test approprié est le test imbriqué de 11 degrés de liberté qui évalue simultanément la signification statistique du contraste de chaque mois. Vous obtiendriez un tel test en effectuant un ANOVA, un test de rapport de vraisemblance ou un test de Wald robuste. Par exemple:
library(lmtest) model.mt <- lm(outcome ~ time + month) model.t <- lm(outcome ~ time) aov(model.mt, model.t) lrtest(model.mt, model.t) library(sandwich) ## autoregressive consistent robust standard errors waldtest(lrtest, lmtest, vcov.=function(x)vcovHAC(x))
la source
Je ne sais pas si c'est votre cas, mais cela m'est arrivé lorsque j'ai commencé à analyser les séries temporelles dans R et le problème était que je n'avais pas correctement indiqué la période de série temporelle lors de la création de l'objet série temporelle pour le décomposer. Il y a un paramètre dans la fonction de série chronologique qui vous permet de spécifier sa fréquence. Ce faisant, il décompose correctement ses tendances saisonnières.
la source