# prediction on short time series with seasonality and data correlations

I have, say, 5 weeks of data standing for daily income of a company and I want to predict the next income. Obviously, there is a seasonality in data - every day is "seasonal" with the same day of the previous week. Obviously, there is a correlation between preceding days - if for 5 days there is a decrease in income, it probably means something. The data is small.

Any ideas on which model may suit best for such data? Using value of the previous week on the same day as predictor does not give good results. Using mean of previous values in some time-window does not give good results (either of same days from previous weeks or all days from previous weeks). Using weighted mean (or median) does not give good results too.

I am new at time series analysis and from what I read, ARIMA can give an over fit for such series. Moreover, ARIMA will not really take into consideration the seasonality - on the contrary, it's advised to remove trends and seasonality from the system and bring the TS into stationary to use ARIMA. But it there are certain weeks where there is an increase and then say no sails, it's really hard to remove these automatically - too many conditions to test.

It's obvious that I am not the first one who tackles this problem. Strangely I failed to find any comprehensive literature on the subject - a sea of signal processing works and nothing fits :-(

Any suggestions/comments/approaches will be really appreciated.

Following the request: a sample of data - 4 days out of 7 of the week available for 6 diff companies (the other 3 are unavailable, so let's assume that it's a 4-day week, it can also match quarterly results or else):

A         B         C         D         E         F

0.0428    0.3703    0.0656    0.0285    0.4171    0.0758
0.0402    0.3775    0.0621    0.0351    0.4050    0.0802
0.0420    0.4339    0.0395    0.0362    0.3512    0.0972
0.0365    0.4470    0.0516    0.0317    0.3352    0.0980
0.0387    0.4952    0.0346    0.0306    0.2888    0.1119
0.0349    0.4465    0.0515    0.0179    0.3228    0.1263
0.0325    0.4672    0.0567    0.0158    0.3087    0.1191
0.0318    0.4564    0.0464    0.0211    0.3258    0.1185
0.0351    0.5143    0.0398    0.0132    0.2650    0.1327
0.0326    0.4758    0.0597    0.0108    0.3004    0.1206
0.0366    0.5058    0.0275    0.0103    0.2764    0.1436
0.0342    0.4622    0.0591    0.0140    0.2972    0.1334
0.0366    0.5136    0.0345    0.0106    0.2385    0.1662
0.0330    0.4776    0.0413    0.0076    0.2814    0.1591
0.0320    0.5127    0.0320    0.0067    0.2578    0.1588
0.0162    0.4964    0.0506    0.0085    0.2747    0.1536
0.0179    0.5495    0.0572    0.0077    0.1969    0.1707
0.0171    0.5650    0.0450    0.0062    0.1916    0.1751
0.0138    0.5170    0.0431    0.0070    0.2191    0.2000
0.0124    0.4889    0.0550    0.0192    0.2370    0.1875
0.0135    0.5259    0.0508    0.0037    0.2104    0.1957
0.0050    0.5041    0.0503    0.0160    0.2363    0.1883
0.0122    0.5661    0.0549    0.0123    0.2116    0.1428
0.0063    0.5652    0.0209    0.0108    0.2330    0.1638
0.0035    0.5596    0.0367    0.0026    0.2419    0.1558
0.0017    0.5793    0.0307    0.0029    0.2203    0.1652
0.0006    0.6107    0.0307    0.0020    0.1916    0.1643
0    0.6394    0.0403    0.0021    0.1533    0.1650
0    0.6897    0.0232    0.0034    0.1093    0.1744
0    0.6674    0.0224    0.0057    0.1330    0.1715
0    0.6993    0.0257    0.0043    0.1010    0.1697
0    0.6628    0.0366    0.0061    0.1338    0.1607
0    0.6905    0.0347    0.0076    0.1096    0.1576
0    0.7152    0.0314    0.0077    0.0808    0.1648
0    0.7220    0.0246    0.0102    0.0830    0.1602
0    0.7006    0.0401    0.0065    0.0835    0.1693
0    0.7509    0.0190    0.0043    0.0667    0.1591
0    0.7374    0.0364    0.0066    0.0489    0.1707
0    0.7356    0.0171    0.0101    0.0593    0.1780
0    0.7371    0.0309    0.0082    0.0460    0.1779
0    0.7446    0.0212    0.0071    0.0302    0.1969
0    0.7374    0.0213    0.0062    0.0485    0.1866
0    0.7733    0.0174    0.0036    0.0295    0.1761
0    0.7683    0.0264    0.0010    0.0417    0.1626
0    0.7346    0.0209    0.0009    0.0396    0.2039
0    0.7277    0.0182    0.0036    0.0379    0.2126
0    0.7326    0.0219    0.0029    0.0316    0.2110
0    0.7306    0.0144    0.0014    0.0318    0.2218


You assert " ARIMA can give an over fit for such series. Moreover, ARIMA will not really take into consideration the seasonality, it's advised to remove trends and seasonality from the system and bring the TS into stationary to use ARIMA." On the contrary, the final ARIMA model can take into account seasonality BUT it is purely autoregressive seasonality whereas deterministic seasonality might be more applicable. You are confusing identification steps and final model identification which by the way is not unusual in time series newbies. Note that stepdown and stepup strategies yield models that are minimally sufficient whereas naive one-step identification procedures using a list-based process are flawed in this regard ( and more ! )

Good analysis should consider both approaches incorporating either or both as is suggested by the actual data while being sensitive/robust to the detection of unusual/untoward values. If you post an example time series I will use my favorite tool to do just that. Note that deterministic factors like day-of-the-week often change over time and that may not be identifiable with only five weeks of data.

AFTER RECEIPT OF DATA: I used AUTOBOX a commercial piece of software that I have helped to develop.

I was given 48 values for each of 6 time series , each of which was to be separately analyzed just using the history of the series in question . The OP wishes to predict out 1 period from each of 28 origins starting at origin 20 and ending at origin 47. He wished a hands-free totally automatic procedure to examine/study data up to and including the origin to be solely used to develop a model and make a 1 period out prediction. Please download from http://www.autobox.com/stack/ALL6.ZIP . It contains 6 separate csv files ( one for each time series) presenting the forecast, the actual and the mape . Additionally for series 6 as an example, I have included a file called 6htm.zip detailing the modelling process that was conducted for each of the 28 origins as supporting "proof" of the hands-free solution and the resulting audit trail .

• Thank you, @IrishStat. What I would like is to be able to update the model progressively, i.e., for each t to calculate the most appropriate model rather than to use one that was trained before. Therefore I am a little confused by talking about identification procedure and the final model - won't I need to perform both for each t? Aug 16, 2015 at 9:59
• You could do exactly that . With t observations a model can be identified and used to predict say the next 7 values . You could then store those forecasts and submit 1 additional value and have the analysis package re-identify the model and estimate the "best" parameters and yield another 7 forecasts. Aug 16, 2015 at 10:03
• I added an example of data if you may. First 20 values are "given", the next are to be predicted. Thank you. Aug 16, 2015 at 10:24
• I am a little confused . You provide 6 distinct time series. Col1 has 27 values , I surmise that you wish to model the first 20 to predict the next 1 and then using 21 values you wish to model and predict the 22nd ...and so that you have 7 origins , 7 models and 7 1 period out predictions from each origin . Now is that what you also precisely want for cols 2-6 ? If so why are you providing 48 actual values for items 2-6 ? Aug 16, 2015 at 11:20
• ".you wish to model the first 20 to predict the next 1 and then using 21 values you wish to."-yes. I want to use the same algorithm for 6 columns. Not the same model, but the same approach.First column that turns into 0 needs to algorithm-wise co-exist with other columns, some of which have rapid changes while others are semi stationary. From what I understood,in ARIMA,I will have to turn these series into stationary, in part, removing trends.Here,there are diff trends.I am looking for an alg that does not depend on manual threshold|trend removal..What would your tool predict for these series? Aug 16, 2015 at 11:39