tempdisagg 패키지가 월별에서 일일으로 분리를 허용하지 않는 것 같습니다. 로부터 td()
인수 '에서'도움말 파일 :
문자열 ( "분기 별"또는 "월별") 또는 스칼라 (예 : 2, 4, 7, 12)로 고주파 대상 주파수. 입력 계열이 ts 객체 인 경우 표시기가 없으면 인수가 필요합니다. 입력 계열이 벡터 인 경우 주파수 비율을 나타내는 스칼라 여야합니다.
오류 메시지 " 'to'argument : unknown character string"은 to =
인수가 'quarterly'또는 'monthly'만 문자열로 허용 하기 때문 입니다.
통계에 매일에 월별 데이터를 disaggregating에 대한 몇 가지 논의가 여기 stackexchage : /stats/258810/disaggregate-monthly-forecasts-into-daily-data
일부 검색 후, 월별 데이터에서 일별 데이터로 일관되게 사용하지 않는 것처럼 보입니다. 이 tempdisagg
패키지는 대부분의 다른 사람들이 연간에서 분기 또는 월간으로 가능했던 것으로 보이며 여러 기간에도 일관된 기간을 가질 수 있습니다.
에릭, 내가 이해하는대로 당신이하려는 일을 설명하는 스크립트를 아래에 추가했습니다.
여기서 실제 가격 데이터를 사용하여 일일 가격-> 월간 가격-> 월간 수익률-> 평균 일일 수익률에서 이동합니다.
library(quantmod)
library(xts)
library(zoo)
library(tidyverse)
library(lubridate)
# Get price data to use as an example
getSymbols('MSFT')
#This data has more information than we want, remove unwanted columns:
msft <- Ad(MSFT)
#Add new column that acts as an 'indexed price' rather than
# actual price data. This is to show that calculated returns
# don't depend on real prices, data indexed to a value is fine.
msft$indexed <- scale(msft$MSFT.Adjusted, center = FALSE)
#split into two datasets
msft2 <- msft$indexed
msft$indexed <- NULL
#msft contains only closing data, msft2 only contains scaled data (not actual prices)
# move from daily data to monthly, to replicate the question's situation.
a <- monthlyReturn(msft)
b <- monthlyReturn(msft2)
#prove returns based on rescaled(indexed) data and price data is the same:
all.equal(a,b)
# subset to a single year
a <- a['2019']
b <- b['2019']
#add column with days in each month
a$dim <- days_in_month(a)
a$day_avg <- a$monthly.returns / a$dim ## <- This must've been left out
day_avgs <- data.frame(day_avg = rep(a$day_avg, a$dim))
# daily averages timesereis from monthly returns.
z <- zoo(day_avgs$day_avg,
seq(from = as.Date("2019-01-01"),
to = as.Date("2019-12-31"),
by = 1)) %>%
as.xts()
#chart showing they are the same:
PerformanceAnalytics::charts.PerformanceSummary(cbind(a$monthly.returns, z))
다음은 1. 월별 수익률, 2. 월별 수익률의 일일 평균, 3. 둘 다를 표시하는 세 개의 차트입니다. 그것들이 동일하기 때문에, 세 번째 이미지에서 오버 플로팅은 하나만 보여줍니다.
dput(head(x))
또는data.frame(...)
). 감사!