How to solve data format issue in Auto Arima , Prophet forecasts with R?

381 views Asked by At

This is dataframe (df)

         ds         y
1 2020-09-25 42,034.88
2 2020-09-24 41,806.37
3 2020-09-23 41,876.26
4 2020-09-22 41,828.91
5 2020-09-21 42,174.13

dput of this data:

    structure(list(ds = structure(c(14613, 14614, 14615, 14616, 14617, 
14620, 14621, 14622, 14623, 14624, 14627, 14628, 14629, 14630, 
14631, 14634, 14635, 14636, 14637, 14638, 14641, 14642, 14643, 
14644, 14648, 14649, 14650, 14651, 14652, 14655, 14656, 14657, 
14658, 14659, 14662, 14663, 14664, 14665, 14666, 14669, 14670, 
14671, 14672, 14673, 14676, 14677, 14678, 14679, 14680, 14683, 
14684, 14685, 14686, 14687, 14690, 14692, 14693, 14694, 14697, 
14698, 14699, 14700, 14701, 14704, 14705, 14706, 14707, 14708, 
14711, 14712, 14713, 14714, 14715, 14718, 14719, 14720, 14721, 
14722, 14725, 14726), class = "Date"), y = c(9437.85, 9657.38, 
9727.36, 9737.47, 9776.21, 9797, 9778.36, 9784.85, 9802.45, 9923.14, 
9895.46, 9954.41, 9904.74, 9753.84, 9774.07, 9689.2, 9666.48, 
9603.55, 9579.81, 9614.19, 9591.5, 9595.24, 9627.63, 9769.73, 
9809.98, 9786.46, 9733.36, 9802.8, 9805.87, 9701.81, 9769.68, 
9867.09, 9889.3, 9902.62, 9953.07, 9823.57, 9686.18, 9667.17, 
9657.79, 9498.56, 9546.38, 9419.43, 9511.53, 9626.29, 9740.19, 
9787.03, 9784.98, 9879.7, 10025.99, 10088.45, 10017.71, 9981.48, 
10007.87, 10000.93, 9963.35, 10146.27, 10127.03, 10137.93, 10056.46, 
10073.76, 10178.43, 10246.77, 10416.51, 10447.84, 10419.82, 10523.01, 
10533.57, 10586.46, 10557.19, 10506.2, 10570.88, 10677.47, 10659.21, 
10669.88, 10641.52, 10590.21, 10615.15, 10607.03, 10556.37, 10556.38
)), row.names = 2663:2584, class = "data.frame")

Code tried for Prophet forecast:

  try <- prophet(df)
  future <- make_future_dataframe(try, periods = 31, freq = "day")
  forecast <- predict(try,future)

Error in Prophet

Error in if (m$y.scale == 0) { : missing value where TRUE/FALSE needed In addition: Warning message: In setup_dataframe(m, history, initialize_scales = TRUE) :

Code tried for Arima (data starts from 4th April, weekends missing and may be a day or two missing in the middle like Public holidays or no transaction):

x = ts(df$y, start = c(2010,1,4), frequency = 365)
arima1 = auto.arima(x)
forecast1 = forecast(arima1,h = 31)

Error in Auto Arima:

Error in stats::arima(x = x, order = order, seasonal = seasonal, include.mean = include.mean, : 'x' must be numeric In addition: Warning message: In is.constant(x) : NAs introduced by coercion

Any advice?

0

There are 0 answers