I have a univariate time series consisting of 70,000 observations (power consumption of a building) over equal time increments (15 minutes).

How do I check whether this realization is wide-sense stationary? Note that I don't know the formula of the underlying stochastic process, so I cannot calculate the mean function E[x(t)] or the autocovariance function E[(x(t1)-m(t1))(x(t2)-m(t2))]

(I'm aware of the definition of wide-sense/weak/covariance stationarity and I've read several threads on the topic here at Cross Validated, the closest one being this one.)

I'm arriving to the conclusion that checking a sample path for weak stationarity comes down to some heuristic tests.

The Engineering Statistics Handbook (which I like for its practical approach) states:

Stationarity can be defined in precise mathematical terms, but for our purpose we mean a flat looking series, without trend, constant variance over time, a constant autocorrelation structure over time and no periodic fluctuations.

(Also see the reply in this MATLAB Central thread.)

If you agree with this practical approach, then my comments/questions are:

  • We can easily do linear fitting to tell if there's a trend. We're good here.
  • But how do we test for a constant autocorrelation structure over time?
  • And how do we check for constant variance over time? Do we using moving windows, or non-overlapping windows? And what should the size of the window be?

I'm looking for some good rules of thumb to test with.

Thanks in advance for the help, and apologies for the long post. (First post here.)

  • 1
    $\begingroup$ Before doing the "linear fitting" I strongly suspect you have 24-hour, 7-day and most probably a yearly seasonal trend. Energy consumption is highly periodic. $\endgroup$ – usεr11852 says Reinstate Monic Apr 11 '14 at 21:53
  • $\begingroup$ If you suspect the time series in question is stationary around a deterministic trend: the KPSS-test is a reasonable first choice but be very careful as seasonality invalidates it. $\endgroup$ – usεr11852 says Reinstate Monic Apr 11 '14 at 22:10
  • $\begingroup$ @usεr11852, the trend is almost non-existent in the 2-years' worth of data that I have. Extracting the seasonalities from the trace seems to be tricky. The ACF for the first 140+ lags (roughly ~ 37 hours) shows significant correlations throughout the entire range. (And single differencing results in this ACF. But I don't know if I'm derailing my own thread now.) $\endgroup$ – Kostas Apr 11 '14 at 22:43
  • $\begingroup$ @usεr11852 The KPSS-test can be used with data that exhibit seasonality -but most probably one should execute it "manually" because ready-made software commands won't know that the data exhibit seasonality, see this post stats.stackexchange.com/questions/78254/… $\endgroup$ – Alecos Papadopoulos Apr 11 '14 at 23:49
  • $\begingroup$ @Kostas: Sorry, which trend are you talking about? I guess "the linear one", because if you mean the seasonal trend you need to have a building that its energy requirements are the same in winter and summer time; unless the building is in the tropics or the poles I somehow doubt that... Additionally even from your first plot it is evident that you have "something" taking part between 90-100 lags (which is obviously your daily cycle). Unless you account for potential periodic trends in your series you will have "stationary issues". $\endgroup$ – usεr11852 says Reinstate Monic Apr 11 '14 at 23:55

Empirically, to check if the process is stationary, you biggest enemies are trend and unit roots.

Checking for trend is relatively easier. A trend over time can be checked by regression you series over time.

Checking for unit roots is generally harder. There are tests that let you do it such as the Dickey Fuller test, but such tests generally suffer from low statistical power.

If the process has neither trend nor unit roots, it is common practice in empirical studies to assume it is wide-sense stationary.


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.