En référence au message de Rob Hyndman ci-dessus https://stats.stackexchange.com/a/1214/70282
La fonction find.freq fonctionne à merveille. Sur le jeu de données quotidien que j’utilise, il a correctement calculé la fréquence à 7.
Lorsque je l’essayais uniquement les jours de la semaine, la fréquence était de 23, ce qui est remarquablement proche de 21,42857 = 29,6 * 5/7, ce qui correspond au nombre moyen de jours de travail par mois. (Ou à l'inverse 23 * 7/5 est 32.)
En regardant mes données quotidiennes, j'ai expérimenté l'idée de prendre la première période, de calculer la moyenne par la suite, puis de trouver la prochaine période, etc. Voir ci-dessous:
find.freq.all = function (x) {
f = find.freq (x);
fréq = c (f);
tandis que (f> 1) {
début = 1; #aussi essayer de commencer = f;
x = période.apply (x, seq (début, longueur (x), f), moyenne);
f = find.freq (x);
fréq = c (fréq, f);
}
if (longueur (freqs) == 1) {return (freqs); }
pour (i in 2: length (freqs)) {
freqs [i] = freqs [i] * freqs [i-1];
}
freqs [1: (longueur (freqs -1));
}
find.freq.all (dailyts) #en utilisant des données quotidiennes
Ce qui précède donne (7,28) ou (7,35) selon que le seq commence par 1 ou f. (Voir le commentaire ci-dessus.)
Ce qui impliquerait que les périodes saisonnières pour les msts (...) soient de (7,28) ou (7,35).
La logique semble sensible aux conditions initiales étant donné la sensibilité des paramètres de l'algorithme. La moyenne de 28 et 35 est de 31,5, ce qui est proche de la durée moyenne d'un mois.
Je soupçonne avoir réinventé la roue, quel est le nom de cet algorithme? Y at-il une meilleure mise en œuvre dans R quelque part?
Plus tard, j'ai utilisé le code ci-dessus en essayant tous les départs de 1 à 7 et j'ai eu 35,35,28,28,28,28,28 pour la deuxième période. La moyenne s’élève à 30, ce qui correspond au nombre moyen de jours dans un mois. Intéressant...
Des pensées ou des commentaires?