Calculer la corrélation glissante entre deux variables dans une série chronologiqueSalut
J'ai un ensemble de données qui se présente sous la forme d'une série chronologique avec des moyennes quotidiennes de données (la première colonne est la date). Je regarde actuellement ce qui est en corrélation avec une variable spécifique dans l'ensemble de données (appelez-la colonne X). Je voudrais vérifier si la corrélation dépend du temps, par exemple s'il y a des périodes avec une corrélation OK et d'autres périodes avec une corrélation nulle/faible ("allumée" et éteinte pour différentes périodes).
Ma pensée initiale était de calculer la corrélation mobile/roulante entre la colonne X et les autres colonnes, par exemple pour les 7 derniers jours, le mois dernier, ...). Mes questions sont doubles :
1) Serait-ce un bon moyen de vérifier cela, ou existe-t-il une analyse intégrée dans JMP que je ne connais pas ?
2) Si je devais calculer la "corrélation glissante" pour une série chronologique, comment programmerais-je cela dans la formule de la colonne ?
D'avance : merci pour l'aide d'un débutant !
Jens
AnalytiqueTableau de donnéesScriptRe : Calculer la corrélation glissante entre deux variables dans une série chronologiqueMerci à vous deux, @txnelson et @SDF1 .
Je vais essayer les deux alternatives pour voir les différences.
Jens
Re : Calculer la corrélation glissante entre deux variables dans une série chronologiqueSalut @JensD ,
je suis entièrement d'accord avec @txnelson , vous devriez vous pencher sur la plate-forme de séries chronologiques, elle est idéale pour examiner la corrélation croisée des données temporelles entre deux signaux. Je l'ai beaucoup utilisé pour comparer les signaux de données de production avec les données QC afin de trouver des décalages temporels.
Lorsque vous exécutez cette plate-forme, vous placez l'une des colonnes en tant que Y, Time Series et l'autre en tant que liste d'entrée (et choisissez les décalages d'autocorrélation à environ 1/2 du nombre de lignes de votre table de données). Ensuite, vous voudrez exécuter l'utilitaire de corrélation croisée sous le bouton de raccourci à côté de l'analyse de la fonction de transfert.
Aussi, construire à partir de ce @txnelson écrit pour son code, vous pouvez même créer une variable de table (par exemple rowlag) et lui donner une valeur et modifier sa formule de colonne pour être :
If( Row() >= :rowlag,
y = :height[Index(Row()-:rowlag+1, Row())];
y = :weight[Index(Row()-:rowlag+1, Row())];
lin = Linear Regression(y`, x`);
Sqrt(lin[3]["RSquare"]);
)
De cette façon, chaque fois que vous modifiez la valeur du décalage dans la table de données, cette colonne sera mise à jour avec les valeurs de corrélation afin que vous puissiez facilement tester différents décalages sans changer la formule de la colonne à chaque fois.
Bonne chance!,
DS
Re : Calculer la corrélation glissante entre deux variables dans une série chronologiqueJe vous suggère de consulter l'analyse des séries chronologiques disponible dans JMP.Vous pouvez trouver de la documentation dans la bibliothèque de documentation JMP
Aide=>Bibliothèque de documentation JMP
si vous voulez aller de l'avant avec votre proposition de corrélation mobile, voici une formule qui peut être utilisée pour calculer cela.Cet exemple utilise la table de données Big Class de la bibliothèque d'exemples de données JMP
Aide=>Bibliothèque d'échantillons de données
If( Row() >= 7,
y = :height[Index( Row() - 6, Row() )];
x = :weight[Index( Row() - 6, Row() )];
lin = Linear Regression( y`, x` );
Sqrt( lin[3]["RSquare"] );
)

Ci-joint l'exemple de tableau de données avec la formule appliquée