Comment ajouter une composante périodique au modèle de régression linéaire?

17

J'ai quelques données de fréquence cumulées. Une ligne semble très bien correspondre aux données, mais il y a un mouvement cyclique / périodique dans la ligne. Je voudrais estimer quand la fréquence cumulée atteindra une certaine valeur c . Lorsque je trace les valeurs résiduelles par rapport aux valeurs ajustées, j'obtiens un beau comportement sinusoïdal.y=uneX+bc

Maintenant, pour ajouter une autre complication, notez que dans les graphiques de résidus

texte alternatif

il y a deux cycles qui ont des valeurs inférieures aux autres, ce qui représente un effet week-end qui doit également être pris en compte.

Alors, où dois-je aller d'ici? Comment puis-je combiner un terme cosinus, sinus ou cyclique dans un modèle de régression à env. estimer quand la fréquence cumulée sera égale à ?c

Ryan Rosario
la source

Réponses:

9

Vous pouvez essayer la merveilleuse stl()méthode - elle se décompose (en utilisant un loess()ajustement itéré ) en tendance et saisonnière et en reste. Cela peut simplement ramasser vos oscillations ici.

Dirk Eddelbuettel
la source
8

Si vous connaissez la fréquence de l'oscillation, vous pouvez inclure deux prédicteurs supplémentaires, sin (2π wt) et cos (2π wt) - réglez w pour obtenir la longueur d'onde souhaitée - et cela modélisera l'oscillation. Vous avez besoin des deux termes pour adapter l'amplitude et l'angle de phase. S'il y a plus d'une fréquence, vous aurez besoin d'un terme sinus et cosinus pour chaque fréquence.

Si vous ne savez pas quelles sont les fréquences, la méthode standard pour isoler plusieurs fréquences consiste à détrender les données (obtenir les résidus de l'ajustement linéaire, comme vous l'avez fait) et exécuter une transformée de Fourier discrète contre les résidus. Une façon rapide et sale de le faire est dans MS-Excel, qui dispose d'un outil d'analyse de Fourier dans le complément d'analyse de données. Exécutez l'analyse par rapport aux résidus, prenez la valeur absolue des transformations et représentez graphiquement le résultat. Les pics seront vos principales composantes de fréquence que vous souhaitez modéliser.

Lorsque vous ajoutez ces prédicteurs cycliques, portez une attention particulière à leurs valeurs de p dans votre régression, et ne sur-ajustez pas. Utilisez uniquement les fréquences statistiquement significatives. Malheureusement, cela peut rendre un peu difficile l'ajustement des basses fréquences.

Mike Anderson
la source
2
Lorsque vous estimez les fréquences à partir des données (comme avec l'analyse de Fourier), puis les incluez en tant que termes sin / cos dans la régression, leurs valeurs de p n'auront aucun sens.
whuber
4

Commençons par observer que les moindres carrés ordinaires convenant à ces données sont probablement inappropriés. Si les données individuelles accumulées sont supposées, comme d'habitude, avoir des composants d'erreur aléatoires, alors l'erreur dans les données cumulatives ( pas les fréquences cumulatives que - c'est quelque chose de différent de ce que vous avez) est la somme cumulative de tous les termes d'erreur. Cela rend les données cumulatives hétéroscédastiques (elles deviennent de plus en plus variables au fil du temps) et fortement corrélées positivement. Parce que ces données se comportent si régulièrement, et il y en a tellement, il n'y a pas de problème avec l' ajustement vous obtiendrez, mais vos estimations d'erreurs, vos prédictions (c'est tout ce que la question est à propos), et surtout vos erreurs de prédiction standard peuvent être loin.

Une procédure standard pour analyser ces données commence par les valeurs d'origine. Prenez les différences au jour le jour pour éliminer la composante sinusoïdale de fréquence plus élevée. Prenez les différences hebdomadaires de celles-ci pour supprimer un éventuel cycle d'une semaine à l'autre. Analysez ce qui reste. La modélisation ARIMA est une approche flexible et puissante, mais commencez simplement: représentez graphiquement ces données différenciées pour voir ce qui se passe, puis continuez à partir de là. Notez également qu'avec moins de deux semaines de données, vos estimations du cycle hebdomadaire seront médiocres et cette incertitude dominera l'incertitude des prévisions.

whuber
la source
2

Il est clair que l'oscillation dominante a une période d'un jour. Il semble qu'il existe également des composants de fréquence inférieure liés au jour de la semaine, alors ajoutez un composant avec une fréquence d'une semaine (c'est-à-dire un septième de jour) et ses premières harmoniques. Cela donne un modèle de la forme:

E(y)=c+une0cos(2πt)+b0péché(2πt)+une1cos(2πt/sept)+b1péché(2πt/sept)+une2cos(4πt/sept)+b2péché(4πt/sept)+

- en supposant test mesurée en jours. Iciyest la donnée brute , pas sa somme cumulée.

un arrêt
la source
-2

Pourquoi ne pas simplement utiliser un GA pour trouver séquentiellement l'amplitude, la période et la phase d'une série de sinus (ou cosinus), puis combinés. Optimisez les éléments suivants: (n (n-1) / ((np-1) ^ 2 (np-2))) RSS

Mark Campbell
la source
1
On ne sait pas comment cela répond à la question sur le calcul d'une fonction de fréquence cumulative inverse. Et qu'entendez-vous par «AG»? Algorithme génétique? Autre chose?
whuber