2017-05-29 10 views
0

Je souhaite calculer la transformée en ondelettes d'un ensemble de données de séries temporelles multivariées. Je prévois d'utiliser le paquet wavethresh et plus particulièrement la fonction modwt(). Le fichier d'aide pour cette fonction spécifie que l'objet doit être soit "Une série temporelle univariée ou multivariée, les vecteurs numériques, les matrices et les trames de données sont également acceptés."Convertir XTS multivarié en TS dans R

Actuellement, mon jeu de données est au format xts zoo où le temps est à intervalles de 15 min et je souhaite le convertir en ts mais j'ai de grandes difficultés.

J'ai essayé ce qui suit:

modwtCoeff <- modwt(as.ts(wideRawXTS, 
+       start = head(index(wideRawXTS), 1), 
+       end = tail(index(wideRawXTS), 1), 
+       frequency = 1), 
+      filter = "la8", 
+      n.levels = "10", 
+      boundary = "periodic", 
+      fast = TRUE) 

> class(wideRawXTS) 
[1] "xts" "zoo" 

head(index(wideRawXTS,1),1) retours "2017-01-20 16:30:00 GMT" et tail(index(wideRawXTS,1),1) retours "2017-02-03 16:00:00 GMT"

Je reçois l'erreur suivante à la suite des lignes ci-dessus:

Error in ts(coredata(x), frequency = frequency(x), ...) : 
    formal argument "frequency" matched by multiple actual arguments 

Le erreur réside dans la conversion de xts à ts car j'ai supprimé la fonction wrapper modwt et je st mal obtenir la même erreur. Après plus de googling je suis tombé sur cet article https://www.r-bloggers.com/preventing-argument-use-in-r/ mais je ne comprends pas complètement. Ma conjecture est que j'ai peut-être besoin de décomposer la conversion en étapes individuelles pour éviter les erreurs d'utilisation de certains arguments dans la fonction as.ts. Est-ce que quelqu'un peut me donner un peu de direction quant à l'endroit où je vais mal dans la conversion? Afin de fournir un exemple reproductible, voici un link pour un objet de l'objet wideRawXTS.

Répondre

1

La fonction générale pour calculer une fréquence est:

fréquence = NUMBER_OF_EVENTS/TIME_INTERVAL

Comme vos données ont 1343 lignes pour un intervalle de temps de 14 jours, la fréquence dépend de ce qui est votre unité de temps.

Unité de temps: Jour

Dans ce cas, la fréquence est:

1343/14 = 95.93 => 96 

C'est moyenne, vous faites 96 measurments par jour.

Unité de temps: Heure

Dans ce cas, la fréquence est:

1343/(14*24) = 3.99 => 4 

C'est moyenne, vous faites 4 measurments par heure.

Unité de temps: 15 minutes

Dans ce cas, la fréquence est:

1343/(14*24*4) = 0.999 => 1 

C'est moyenne, vous faites un measurment toutes les 15 minutes.