Je veux créer un code pour tracer ACF et PACF à partir de données de séries chronologiques. Tout comme ce graphique généré à partir de minitab (ci-dessous).
J'ai essayé de rechercher la formule, mais je ne la comprends toujours pas bien. Pourriez-vous me dire la formule et comment l'utiliser, s'il vous plaît? Quelle est la ligne rouge horizontale sur le tracé ACF et PACF ci-dessus? Quelle est la formule?
Je vous remercie,
correlation
data-visualization
autocorrelation
partial-correlation
Surya Dewangga
la source
la source
Réponses:
Autocorrélations
La corrélation entre deux variablesy1,y2 est définie comme:
où E est l'opérateur d'espérance,μ1 et μ2 sont les moyennes respectivement pour y1 et y2 et σ1,σ2 sont leurs écarts-types.
Dans le contexte d'une seule variable, c'est-à - dire l' auto- corrélation,y1 est la série d'origine et y2 est une version retardée. Lors de la définition ci - dessus, l' échantillon autocorrélations d'ordre k=0,1,2,... peut être obtenue en calculant l'expression suivante avec la série observée yt , t=1,2,...,n :
oùy¯ est la moyenne de l'échantillon des données.
Autocorrélations partielles
Les autocorrélations partielles mesurent la dépendance linéaire d'une variable après avoir supprimé l'effet des autres variables affectant les deux variables. Par exemple, l'autocorrélation partielle de l'ordre mesure l'effet (dépendance linéaire) deyt−2 sur yt après avoir supprimé l'effet de yt−1 sur yt et yt−2 .
Chaque autocorrélation partielle peut être obtenue sous la forme d'une série de régressions de la forme:
oùy~t est la série d'origine moins la moyenne de l'échantillon, yt−y¯ . L'estimation de ϕ22 donnera la valeur de l'autocorrélation partielle d'ordre 2. En étendant la régression avec k décalages supplémentaires, l'estimation du dernier terme donnera l'autocorrélation partielle d'ordre k .
Une autre façon de calculer l'échantillon d'autocorrélations partielles consiste à résoudre le système suivant pour chaque ordrek :
oùρ(⋅) sont les autocorrélations de l'échantillon. Cette correspondance entre les autocorrélations d'échantillons et les autocorrélations partielles est connue sous le nom de
récursion de Durbin-Levinson . Cette approche est relativement facile à mettre en œuvre à titre d'illustration. Par exemple, dans le logiciel R, on peut obtenir l'autocorrélation partielle d'ordre 5 comme suit:
Bandes de confiance
Les bandes de confiance peuvent être calculées comme la valeur des autocorrélations de l'échantillon±z1−α/2n√ , oùz1−α/2 est le quantile1−α/2 dans la distribution gaussienne, par exemple 1,96 pour les bandes de confiance à 95%.
Parfois, des bandes de confiance qui augmentent à mesure que l'ordre augmente sont utilisées. Dans ce cas, les bandes peuvent être définies comme±z1−α/21n(1+2∑ki=1ρ(i)2)−−−−−−−−−−−−−−−−√ .
la source
Bien que le PO soit un peu vague, il peut être plus ciblé sur une formulation de codage de style "recette" qu'une formulation de modèle d'algèbre linéaire.
L' ACFt t−1 tst−3 3 3
Exemple:
Nous allons concocter une série temporelle avec un motif sinusoïdal cyclique superposé à une ligne de tendance et du bruit, et tracer l'ACF généré par R. J'ai obtenu cet exemple dans une publication en ligne de Christoph Scherber, et je viens d'y ajouter du bruit:
Normalement, nous devrions tester la stationnarité des données (ou simplement regarder le graphique ci-dessus), mais nous savons qu'il y a une tendance, alors sautons cette partie et passons directement à l'étape de décroissance:
Nous sommes maintenant prêts à reprendre cette série chronologique en générant d'abord l'ACF avec la
acf()
fonction dans R, puis en comparant les résultats à la boucle de fortune que j'ai composée:Et enfin, tracer à nouveau côte à côte, les calculs générés par R et manuels:
Que l'idée est correcte, à côté des problèmes de calcul probables, peut être comparé
PACF
àpacf(st.y, plot = F)
.code ici .
la source
la source
Voici un code python pour calculer ACF:
la source