Je travaille actuellement sur certaines données de séries chronologiques, je sais que je peux utiliser le modèle LOESS / ARIMA.
Les données sont écrites dans un vecteur dont la longueur est de 1000, qui est une file d'attente, mise à jour toutes les 15 minutes,
Ainsi, les anciennes données apparaîtront pendant que les nouvelles données pousseront dans le vecteur.
Je peux réexécuter le modèle entier sur un planificateur, par exemple recycler le modèle toutes les 15 minutes, c'est-à-dire utiliser la valeur entière de 1000 pour entraîner le modèle LOESS, mais il est très inefficace, car chaque fois qu'une seule valeur est insérée tandis qu'une autre 999 vlaues toujours la même que la dernière fois.
Alors, comment puis-je obtenir de meilleures performances?
Merci beaucoup
Réponses:
Permettez-moi de reformuler cela en quelque chose de plus familier pour moi. L'ARIMA est un analogue de l'approximation PID. Je suis intégrale. MA est P. l'AR peut être exprimé sous forme d'équations de différence qui sont le terme D. LOESS est un raccord analogique aux moindres carrés (grand frère high-tech vraiment).
Donc, si je voulais améliorer un modèle de second ordre (PID), que pourrait-on faire?
L'une des questions que je n'ai pas posée est "que signifie la performance?". Si nous n'avons pas une mesure de bonté clairement indiquée, il n'y a aucun moyen de dire si une méthode candidate "s'améliore". Il semble que vous souhaitiez une meilleure modélisation, un temps de calcul plus court et une utilisation plus efficace des informations. Avoir des éphémérides sur les données réelles peut également informer cela. Si vous modélisez le vent, vous pouvez savoir où chercher des modèles d'augmentation ou trouver des transformations utiles pour vos données.
la source
Il s'agit d'une question différente selon que vous utilisez un loess ou un modèle ARIMA. Je vais répondre à la question du loess pour l'instant, car je soupçonne qu'il y a peu d'efficacité possible dans le cas ARIMA, à part peut-être d'avoir un bon ensemble de valeurs de départ.
Un modèle de loess fonctionne en ajustant une régression pondérée à différents sous-ensembles de données. Seule une partie des données est utilisée pour chaque ajustement. Ainsi, chaque fois que vous réinstallez le modèle après avoir déposé un point de données à une extrémité et ajouté un autre à l'extrémité opposée, vous n'avez techniquement besoin que d'ajuster les régressions locales qui utilisent le premier et le dernier point. Toutes les régressions locales intermédiaires seront les mêmes. Le nombre exact de ces régressions locales non impactées dépendra de votre paramètre de lissage dans le loess.
Vous pouvez pirater le package que vous utilisez pour adapter votre modèle afin qu'il puisse prendre la plupart des régressions locales d'un ajustement précédent et ne s'adapter qu'à celles qui sont nécessaires au début et à la fin des données.
Cependant, il me semble que cela ne valait la peine de le faire que si le coût en temps de programmation supplémentaire était considérablement inférieur au coût en temps informatique de simplement ajuster le modèle à partir de zéro toutes les 15 minutes. Avec seulement 1000 points de données, ce n'est sûrement pas si important de monter le modèle à partir de zéro à chaque fois.
la source