J'ai des données de fréquence mensuelles que j'essaie de désagréger en données de fréquence quotidiennes. J'utilise donc la td
commande du tempdisagg
package dans R en utilisant le code ci-dessous:
dat=ts(data[,2])
result=td(dat~1, conversion = "average", to = "day", method = "chow-lin-maxlog")
Ensuite, j'obtiens le message d'erreur suivant:
Error in td(dat ~ 1, conversion = "average", to = "day", method = "chow-lin-maxlog") : 'to' argument: unknown character string
Les données que j'utilise dat
sont les suivantes:
> dput(head(dat))
c(82.47703009, 84.63094431, 70.00659987, 78.81135651, 74.749746,82.95638213)
Ainsi, bien que ces données dat
soient en fréquence mensuelle, le début et la fin ne le reflètent pas encore. En fait, la date de début est 1/1997 et la date de fin est 9/2019.
Puis-je obtenir de l'aide sur la ventilation de ces données mensuelles en données de dat
fréquence quotidiennes, s'il vous plaît?
dput(head(x))
oudata.frame(...)
) directement. Merci!dput(ts(head(1:50)))
, alors j'obtiensstructure(1:6, .Tsp = c(1, 6, 1), class = "ts")
. Votre image suggère que votredat
est une série chronologique, mais cec(...)
n'est pas le cas. Ces deuxdat
sont-ils les mêmes?tempdisagg.pdf
, je ne trouve"daily"
nulle part, etto=
dit qu'il prend en charge "la fréquence de destination haute fréquence en tant que chaîne de caractères (" trimestrielle "ou" mensuelle ") ou en tant que scalaire (par exemple 2, 4, 7, 12)" . Où est-il suggéré que celato="daily"
soit pris en charge? Pouvez-vous essayerto=1
? (Je ne peux pas vraiment aider bien au-delà. Je ne connais pas bien le paquet, j'ai pensé que je pouvais aider de manière générique.)Réponses:
Il semble que le package tempdisagg ne permette pas une ventilation mensuelle à quotidienne. Du
td()
fichier d'aide 'à' argument:Votre message d'erreur "argument" à ": chaîne de caractères inconnue" est dû au fait que l'
to =
argument n'accepte que "trimestriellement" ou "mensuellement" comme chaînes.Il y a une discussion sur la désagrégation des données mensuelles au quotidien sur les statistiques stackexchage ici: /stats/258810/disaggregate-monthly-forecasts-into-daily-data
Après quelques recherches, il semble que personne n'utilise systématiquement des données mensuelles à quotidiennes désagrégées. Le
tempdisagg
paquet semble être capable de ce que la plupart des autres ont trouvé possible - annuel à trimestriel ou mensuel, et des périodes de temps cohérentes même multiples.Eric, j'ai ajouté un script ci-dessous qui devrait illustrer ce que vous essayez de faire, si je comprends bien.
Ici, nous utilisons des données de tarification réelles pour passer des prix quotidiens -> prix mensuels -> rendements mensuels -> rendements quotidiens moyens.
Voici trois graphiques montrant 1. les rendements mensuels seulement, 2. la moyenne quotidienne des rendements mensuels, 3. les deux ensemble. Comme ils sont identiques, le surplotage dans la troisième image n'en montre qu'une seule.
la source
quantmod::monthlyReturn
ouPerformanceAnalytics::Return.calculate
pour obtenir les retours (mensuels). De là, si vous devez assumer des retours quotidiens, vous pouvez utiliser la méthode ci-dessus (commentaire).