Я хочу написать свою собственную функцию прогнозирования, назначить forecast
объект и использовать функции использования из пакета прогноза для этого объекта.Я попытался повторить функцию meanf следующим образом (используя этот подход Как создать объект прогноза в R ):
myfun <- function(x, h, ...)
{
# Compute some forecasts
fc <- rep(mean(x), h)
# Construct output list
output <- list(mean=fc, x=x, ...)
# Return with forecasting class
return(structure(output, class='forecast'))
}
, но при применении функции точности:
# sample dataset
price <- c(351.75, 347, 348, 342, 339, 339.86, 342.61, 345, 340, 336.11,
331, 333.94, 330.01, 317, 313, 313.98, 315, 319.45, 313, 316,
316.5, 315, 320, 315, 311.23, 305.55, 298.02, 291.8, 294.98,
296.44, 296, 294, 290.65, 288, 291.99, 295, 310, 303.1, 306.11,
309.51, 312.51, 328.1, 328.1, 324.8, 329.23, 337.01, 333.6, 333,
327.23, 328.5, 328.54, 324.5, 322, 317.01, 318, 319.98, 329.8,
323, 317, 318.55, 319.98, 323.99, 316.09, 315.01, 317.5, 315.03,
312.55, 312, 315, 312.89, 308.5, 295.53, 308, 315, 285.12, 284.34,
285, 281.39, 282.92, 285.94, 284.96, 282.9, 273.5, 273.5, 273.21,
281.14, 286.99, 283, 280.39, 283, 280, 285, 285.02, 289, 288,
284.5, 280.83, 278.3, 274.1, 276)
price <- ts(price, start = 1, frequency = 1)
train <- subset(price, end = length(price) - 10)
test <- subset(price, start = (length(price) + 1) - 10)
# my forecast function
myfun <- function(x, h, ...)
{
# Compute some forecasts
fc <- rep(mean(x), h)
# Construct output list
output <- list(mean=fc, x=x, ...)
# Return with forecasting class
return(structure(output, class='forecast'))
}
# aplpy function and accuracy
myMean <- myfun(train, 10)
accuracy(myMean, test)
возвращает ошибку:
Ошибка в NextMethod (.Generic): невозможно присвоить 'tsp' вектору нулевой длины
Не знаюпонять эту ошибку?