web-dev-qa-db-fra.com

Transformation de Fourier rapide en R

J'ai un ensemble de données avec le nombre de visites horaires effectuées par un animal sur une période de 12 mois. Je veux utiliser la transformation de Fourier rapide pour examiner les modèles cycliques et la périodicité. Dans le passé, j'ai utilisé Statistica pour cela; cependant, je voudrais utiliser R pour obtenir un tracé de la densité spectrale en fonction de la période. Existe-t-il un moyen facile de le faire dans R? J'aimerais identifier le pic d'activité de 12 et 24 heures si possible.

27
user1626688

Vous pouvez considérer les fonctions suivantes.

  • periodogram de TSA package trace immédiatement un périodogramme.
  • periodogram de GeneCycle renvoie une liste de fréquences et de densités spectrales de puissance estimées. Il s'agit d'une fonction wrapper pour stats::spectrum Avec des options spéciales définies.
  • spectrum from stats vous permet de choisir la méthode utilisée pour estimer la densité spectrale: soit par périodogramme soit en utilisant un processus autorégressif.
  • cpgram de stats trace un périodogramme cumulatif avec un intervalle de confiance.

Voir, par exemple, ?cpgram Ou ?spectrum Pour tous les détails et garder à l'esprit que c'est, par exemple, TSA::periodogram Et GeneCycle::periodogram Lorsque les noms des fonctions coïncident .

Il existe également de nombreux exemples et tutoriels en ligne sur la façon d'utiliser ces fonctions. Voir ici pour l'utilisation de fft et ici pour un tutoriel encore plus complet.

De plus, comme vous le savez probablement déjà, une série temporelle donnée doit être détruite. Par conséquent, utilisez, par exemple, diff(x) au lieu de x. Et enfin, la longueur de votre série chronologique doit être divisible par 12 pour pouvoir identifier les fréquences de 12 et 24 heures, elle peut être réalisée par exemple par x[-(1:(length(x) %% 12))], où x est une série temporelle détendue.

37
Julius Vainora

Utilisez spectrum pour effectuer une analyse de densité spectrale; également fft pour la transformée de Fourier rapide de base.

8
Hong Ooi