У меня есть следующие данные, которые я хочу отправить в модель arima для прогнозирования отсутствующих tickets_listed, а затем прогнозировать цену с помощью линейной модели.Проблема состоит в том, что у данных есть несколько категорий, и в каждой категории отсутствуют некоторые данные.
Я хочу знать, есть ли лучший способ свести набор данных перед отправкой в модели, чтобы впоследствии я мог перестроить набор данных.Текущий метод имеет сечения id + таксономия, но когда он отправляется через модель arima, он все еще свернут.Нужно разделить его или найти лучший метод.
Код (данные выглядят не так точно):
df <- data.frame(
id <- rep(seq(2694065, length=62, by = 1),10),
list_date <- rep(seq(as.Date("2017-06-01"), length=62, by = 1),10),
event <- sample(c("Baseball","Minors","Music","NA"), 620, replace =
TRUE),
event_date <- rep(seq(as.Date("2017-09-01"), length=62, by = 1),10),
ticket_ct <- sample(10:11000, size=620, replace = TRUE),
price <- sample(10:600, size=620, replace = TRUE),
cat1 <- sample(c("Sox", "Twins", "Phil", "Band1", "Band2"),620,replace
= TRUE),
cat2 <- sample(c("Mets", "Hops", "NA", "Phil"),620, replace = TRUE),
venue <- sample(c("Stadium","BallPark", "Concert Hall"),620, replace =
TRUE)
)
#Create a list that contains the time series info for each
#combination of id + taxonomy
list1 <- dlply(df, .(id, taxonomy))
#Turn list1 into an XTS object so we can use it for time-series
#analysis
xtsobject <- llply(list1, function(list) {
xts(x=list[,c("id","ticket_ct","price")],
order.by=list[,"listing_date"])
})
#Create function to pass to lapply
arimafunc <- function(list) {
fity <- auto.arima(list$ticket_ct)
forecast <- forecast(fity,h=31)
return(forecast)
}
#Run the arimafunc
forecasts <- lapply(xtsobject,arimafunc)