2017-09-08 1 views
0

State + Product의 다양한 조합에 대한 판매 데이터가 있습니다. 각 조합에 대해 향후 3 개월 동안 판매를 예측해야합니다. 현재 ARIMA를 사용하여 고유 한 조합 수에 대한 루프에서 모델을 예측하고 실행합니다. 나는 거기에서 우리가 회귀에서 사용하는 그룹과 같은 어떤 다른 간단하고 빠른 방법과 그것을 구현하는 방법을 알고 싶었다.R in Time Series Forecasting의 그룹화

샘플 데이터 : 등

State  Product   Month  Sales 
    X   AA    Jan   100 
    X   AA    Feb   120 
    .    .    .   . 
    X   AA    Dec   80 
    X   AB    Jan   400 
    .    .    .   . 
    .    .    .   . 
    X   AB    Dec   300 
    Y   AA    Jan   50 
    Y   AB    Jan   60     

...

현재 코드 :

uniqueStates = unique(data$State) 
    uniqueProducts = unique(data$Product) 
    for i in 1:length(uniqueStates) { 
     for j in 1:length(uniqueProducts) { 
       data_subset = subset(data, data$State == uniqueStates[i] & data$Product == uniqueProducts[j]) 
       model <- auto.arima(data_subset$Sales) 
       result = forecast(model,3) 
       # Store the result in a Data Frame 
     } 
    } 

답변

1

당신은 항상 당신이 목록을 반환하는 기능을 원하는 것을 확인하고 사용 할 수 있습니다 by

library(forecast) 
library(datatable) 
library(dplyr) 
data <-data %>% as.data.table() 


modelaki <- function(x) {model <- auto.arima(x) 
        result = forecast(model,3) 
     return(list(model, result))} 


results <- data[, lapply(.SD, modelaki), by = State, .SDcols = "Sales"] 
과 결합 된 데이터 테이블 내부에 lapply