2017-07-02 52 views
0

我必須爲每一個客戶下一個月式數據做多的時間序列預測,即預測。如何爲每個客戶

我想爲每個客戶做3個月的預測。

注:很多OB具有零(無交易)------需要解決這個稀疏數據集

  CustomerName  01/2009 02/2009 03/2009 04/2009 05/2009 06/2009 07/2009 08/2009 09/2009 10/2009 
     Aaron Bergman   0.00 0.00 0.00 0.00 0.00  0.0 4270.87 0.00 0.00  0 
     Aaron Hawkins   0.00 0.00 0.00 0.00 0.00  0.0 0.00 455.04 0.00  0 
     Aaron Smayling  136.29 4658.69 0.00 119.34 4674.16 0.0 0.00 0.00 0.00  0 
     Adam Bellavance  0.00 0.00 0.00 0.00 2107.55 0.0 0.00 0.00 0.00  0 
     Adam Hart    60.52 0.00 0.00 0.00 0.00  0.0 0.00 0.00 0.00  0 
     Adam Shillingsburg 0.00 1749.50 125.86 0.00 0.00  5689.4 3275.74 1296.30 9887.52 0 
     Adrian Barton   0.00 66.00 0.00 0.00 0.00  55.0 0.00 0.00 0.00  0 
     Adrian Hane   0.00 23.66 0.00 0.00 46.22  0.0 0.00 0.00 0.00  0 
     Adrian Shami   10.00 0.00 0.00 33.00 0.00 48.0 0.00 0.00 42.00 0 
     Aimee Bixby   56.33 22.99 0.00 44.28 0.00  0.0 0.00 66.12 0.00 48.22 

我該怎麼做某種一批時間序列預測說,使用auto.arima爲每一個客戶......

+1

請添加數據作爲最小示例代碼,並根據此示例數據顯示預期輸出。這將使我們更容易找到答案...... –

+0

正是你的意思與「批」是什麼?如果你想立足於銷售按季度時間序列模型,它是微不足道的季度數據幀的轉換爲'zoo'對象和羣體的日期。 – tagoma

+0

@ edouard也許我在錯誤的上下文中使用'批'...我只需要爲每個客戶預測可能使用循環(多個系列預測)...此外,我剛剛給了一個數據的子集..實際上它已超過3年爲每個客戶價值的...我已經做出了嘗試,我會盡快分享...... – Nishant

回答

0

讓我們假設上述數據被稱爲df

(df_melt<-reshape2::melt(df)) 

# Sort by vector `CustomerName` then `variable` 
df_melt_order<-df_melt[with(df_melt, order(CustomerName, variable)),] 
df_melt_order<-df_melt_order[,c(2,1,3)] # reordering the columns 
head(df_melt_order) 

library(dplyr) 
(model_fits <- group_by(df_melt_order, CustomerName) %>% do(fit=auto.arima(.$value))) 
#The result is a data frame containing the model fits for each CustomerName: 

#You can get a list with each model fit like so: 
(fitted<-model_fits$fit) 
sapply(fitted, function(x) plot(forecast(x, 10))) # forecast plot for each time series 

仍無法從上述模型擬合得到點預測...需要一些assistanc在這裏

+0

上述方案可能看起來不漂亮,但它確實實現目的...欣然想一些這裏建議進一步改善....顯然,有些事情仍然懸而未決,如獲得點預測的3個週期進取,把它附加到原始數據集......這裏WUD需要一些幫助 – Nishant

相關問題