2
$\begingroup$

i'm a newbie in Time Series Analysis. I have a 2 year pandas dataframe about water consumptions in hour granularity (24 records for day, 365 days).

                            Water_consumptions
Data                                     
2017-01-01 00:00:00            315.546173
2017-01-01 01:00:00            322.469203
2017-01-01 02:00:00            305.497974
2017-01-01 03:00:00            291.905637
2017-01-01 04:00:00            268.990071
2017-01-01 05:00:00            267.545479 
                 ...

I would like to predict day water consumptions (the next 24 records) based on this two years. Which kind of model is most accurate for this task?

I've read about Sarimax and Recurrent Neural Network (LSTM) as a possibility. Are there other possibilities?

My series has also trending and seasonal component. Have my series to be stationarized? Why? in which way i have to use trending, seasonal and residuals in my model after my series was stationarized? i think i can't remove annual seasonality with 2 only years of data:

Plotting before stationarity:

Plotting after stationarity, except for annual seasonality: ****

Thanks

$\endgroup$
1
$\begingroup$

You very probably have : intra-daily, intra-weekly and intra-yearly. Therefore, my first choice would be models that explicitly address these. Examples of such models are and . Both are available in the forecast package for R (beware: they take a long time to fit), but I am not aware of any implementations for Python.

Seasonal ARIMA can only deal with a single seasonality. You could (and should) certainly fit this as a benchmark, separately for the three kinds of seasonality your data probably contains.

That said, both years of your history exhibit a marked dip around August, but the dips are different in both years. Even if this is apparently not the focal time period for your forecast, it would be good to understand what actually happened here and perhaps to model it in some way, e.g., by regressing your consumption on dummy variables and then applying a time series model to residuals.

$\endgroup$
  • $\begingroup$ +1. Also: two years is not very much data in terms of yearly seasonal patterns. You're trying to predict something you've only seen twice. $\endgroup$ – Wayne Apr 10 at 12:36
  • 1
    $\begingroup$ Looks like there is a tbats and bats implementation for Python: github.com/intive-DataScience/tbats $\endgroup$ – aranglol Apr 10 at 14:55
0
$\begingroup$

Forecasting data with multiple seasonality raises a similar question. My response is that there may be latent deterministic factors which should be taken into account in addition to short-term memory. I have found that 3-4 years of daily data should be used BUT if 2 years is all that is available you might be able to pick up some holiday effects.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.