Мне нужно проверить, влияет ли день недели или месяц года на доходность акций. Я решил использовать ненаблюдаемую модель компонентов с пакетом "rucm" в R, потому что она может извлекать сезонные характеристики из временных рядов. В моем случае я хочу определить, существует ли ежедневная и ежемесячная сезонность. Мой набор данных - это просто временной ряд ежедневных возвратов акций:
structure(list(Date = structure(c(1388966400, 1389139200, 1389225600,
1389312000, 1389571200, 1389657600, 1389744000, 1389830400, 1389916800,
1390176000, 1390262400, 1390348800, 1390435200), class = c("POSIXct",
"POSIXt"), tzone = "UTC"), LogReturn = c(-0.009, 0.016, 0.021,
0.036, 0.049, 0.092, 0.023, -0.05, 0.044, -0.018, 0.001, -0.021,
-0.022)), .Names = c("Date", "LogReturn"), row.names = c(NA,
-13L), class = c("tbl_df", "tbl", "data.frame"))
Вот как это выглядит
Код, который я использовал:
install.packages(rucm)
library(rucm)
model1<-ucm(formula=LogReturn~0,data=data, level=TRUE,slope=FALSE,season=TRUE,season.length=30)
Я положил сезон.длину = 30 случайно. Я думал, что если у меня есть ежедневные данные, а сезонность - ежедневная, season.length должна быть 1, но она не принимает 1.
И мой вывод выглядит так
Расчетная дисперсия:
"Нерегулярные переменные" "Уровень_различия" "Сезонные перемены"
Как вы видите, я не получил много информации о том, как день недели или месяц года влияет на доходность акций. Не могли бы вы помочь мне с этой проблемой?
Update1. Я добавил некоторые функции в свой набор данных. Теперь он показывает, какой день недели у каждой даты, и добавил прокси-переменные для каждого дня недели.
structure(list(Date = structure(c(1388966400, 1389139200, 1389225600,
1389312000, 1389571200, 1389657600, 1389744000, 1389830400, 1389916800,
1390176000, 1390262400, 1390348800, 1390435200), class = c("POSIXct",
"POSIXt"), tzone = "UTC"), LogReturn = c(-0.009, 0.016, 0.021,
0.036, 0.049, 0.092, 0.023, -0.05, 0.044, -0.018, 0.001, -0.021,
-0.022), Dayoftheweek = c("Monday", "Wednesday", "Thursday",
"Friday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
"Monday", "Tuesday", "Wednesday", "Thursday"), proxymonday = c(1,
0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0), proxytuesday = c(0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 1, 0, 0), proxywednesday = c(0, 1, 0, 0,
0, 0, 1, 0, 0, 0, 0, 1, 0), proxythursday = c(0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 0, 0, 1), proxyfriday = c(0, 0, 0, 1, 0, 0, 0,
0, 1, 0, 0, 0, 0)), .Names = c("Date", "LogReturn", "Dayoftheweek",
"proxymonday", "proxytuesday", "proxywednesday", "proxythursday",
"proxyfriday"), row.names = c(NA, -13L), class = c("tbl_df",
"tbl", "data.frame"))
Это выглядит так 