У меня есть данные о частоте за месяц, которые я пытаюсь разбить на данные о частоте за день. Поэтому я использую td
команду из tempdisagg
пакета в R, используя код ниже:
dat=ts(data[,2])
result=td(dat~1, conversion = "average", to = "day", method = "chow-lin-maxlog")
Тогда я получаю следующее сообщение об ошибке:
Error in td(dat ~ 1, conversion = "average", to = "day", method = "chow-lin-maxlog") : 'to' argument: unknown character string
Я использую dat
следующие данные:
> dput(head(dat))
c(82.47703009, 84.63094431, 70.00659987, 78.81135651, 74.749746,82.95638213)
Таким образом, хотя эти данные dat
являются ежемесячными, начало и конец еще не отражают это. Фактически, дата начала - 1/1997, а дата окончания - 9/2019.
Могу ли я получить помощь в разбивке этих ежемесячных данных dat
на ежедневные данные о частоте, пожалуйста?
dput(head(x))
илиdata.frame(...)
) напрямую. Спасибо!dput(ts(head(1:50)))
, то я получуstructure(1:6, .Tsp = c(1, 6, 1), class = "ts")
. Ваше изображение предполагает, что вашdat
временной ряд, а вашc(...)
нет. Эти дваdat
одинаковы?tempdisagg.pdf
, я"daily"
нигде не могу найти иto=
говорит, что он поддерживает «частоту назначения высокой частоты как строку символов (« ежеквартально »или« ежемесячно ») или как скаляр (например, 2, 4, 7, 12)» . Где это предлагается, чтоto="daily"
поддерживается? Ты можешь попробоватьto=1
? (Я не могу действительно помочь намного кроме этого. Я не знаю пакет хорошо, думал, что мог бы помочь в общем.)Ответы:
Похоже, что пакет tempdisagg не допускает разбивки по месяцам и дням. Из
td()
файла справки аргумент «до»:Сообщение об ошибке «аргумент to: неизвестная строка символов» вызвано тем, что
to =
аргумент принимает только «ежеквартально» или «ежемесячно» в качестве строк.Здесь обсуждается разукрупнение ежемесячных данных по дням в стеке статистики здесь: /stats/258810/disaggregate-monthly-forecasts-into-daily-data
После некоторого поиска, похоже, что никто не использует последовательно дезагрегированные ежемесячные и ежедневные данные.
tempdisagg
Пакет , кажется, способен то , что большинство других нашли возможным - раз в год ежеквартально или ежемесячно, и периоды времени, которые соответствуют кратны.Эрик, я добавил скрипт ниже, который должен иллюстрировать то, что ты пытаешься сделать, насколько я понимаю.
Здесь мы используем реальные данные о ценах, чтобы перейти от дневных цен -> месячных цен -> месячных прибылей -> средних дневных прибылей.
Вот три графика, показывающие 1. только месячные доходы, 2. среднесуточные данные по ежемесячным доходам, 3. оба вместе. Поскольку они совпадают, в третьем изображении оверплоттинг показывает только один.
источник
quantmod::monthlyReturn
или,PerformanceAnalytics::Return.calculate
чтобы получить (ежемесячные) возвраты. Оттуда, если вам нужно принять ежедневные доходы, вы можете использовать метод выше (комментарий).