# How to use ARIMA with non-stationary data

I'm in need of some help. I'm modelling daily financial data, which I have read will almost always follow a random walk model. I've confirmed this in Rusing the auto.arima function and the result was to use an ARIMA (0,1,0) with drift.

However, I've also read that random walks are non-stationary, and would require some way of being made stationary because ARIMA models cannot be used with non-stationary data.

So my question is, how should I proceed, taking into account the non-stationarity of this data?

I proceeded to model the data with ARIMA (0,1,0) with drift and then I obtained forecasts using forecast. the result was a straight line that more or less followed the actual data (I already had the data for the forecasted period, though I didn't include it in the model). Was this approach wrong?

If it is wrong, how should I treat the non-stationary data? (when I take a first difference, it becomes a white noise process)

• If your series is a random walk, perhaps with drift, the model is really simple. There is nothing to fit, except to estimate the drift coefficient if it is non-zero. The forecast will be a straight line just as you said. The problem of non-stationarity is actual if you were to estimate a model more complicated than an ARIMA(0,1,0), perhaps with drift. But what is your ultimate intention? – Richard Hardy Oct 1 '15 at 14:18
• @RichardHardy My intention is to use the model to obtain forecasts. I already have the actual observations for the period I'm forecasting but I want to compare the actual values to the forecasts I obtain from the ARIMA model. So for a random walk, non-stationarity is not really an issue? – James Oct 1 '15 at 15:38
• A random walk is nonstationary, but that is not a problem if you want to forecast. Regarding the choice of random walk against a more general ARIMA model, if you are to forecast stock prices of a mature market (not some exotic outlier), there is very little chance to beat a random walk forecast. – Richard Hardy Oct 1 '15 at 15:49

You did not specify which financial data you model. You can't make a blanket statement that all financial data follows random walk, it's simply not true. Certain series are known to look like random walk with a drift, e.g. some asset prices. Even that is a gross simplification.

Assuming that you're dealing with asset prices, it's common to deal with asset returns. For instance, if your asset price series are $p_t$, then you'd obtain the return series $r_t=p_t/p_{t-1}-1$, alternatively, the log return can be used $\Delta \ln p_t$. The returns are stationary series, e.g. a few thousand years ago the returns on loans were about the same as they are today.

You can try ARMA on ARMAX on returns, but these are constant conditional variance models. Asset returns are known to exhibit non-constant variance, even stochastic variance. Hence, models like GARCH are applied often times.

This is a big topic, and I'm only scratching the surface. Asset returns are largely unpredictable. There are certain cases when they are predictable, of course, e.g. long run returns are in some sense etc.

• @Asakal "The returns are stationary series, e.g. a few thousand years ago the returns on loans were about the same as they are today." Corrected for inflation, of course (real return). I remember that 14.5% CDs I got in 1982 -- but that was a time of high inflation. – zbicyclist Oct 1 '15 at 14:41
• @zbicyclist, no I meant the nominal interests. See Peter Temin. A market economy in the early roman empire. The Journal of Roman Studies, Vol.91, 2001. He wrote that in roman empire the interest on loans was 4-12%. I think he meant nominal rates – Aksakal Oct 1 '15 at 14:56
• @Aksakal I'm using daily adjusted closing prices and I read that most of this type of data follows a random walk, though not all. I got the returns series and used auto.arima but i still got a random walk model. and its plot was the same as that of the original series. I then modelled the log returns as you said, and the resulting best model was ARIMA(0,0,0). Does the non-stationarity affect the forecasts with a random walk? Should I attempt to difference the series or just use the data as it is to obtain the forecasts? – James Oct 1 '15 at 15:46
• @James, ARIMA(0,1,0) on price series is the same as ARMA(0,0) or ARIMA(0,0,0) on return series. ARIMA is obviously random walk-ish, while ARMA will be stationary. ARMA(0,0) is the same as getting the average return of the sample. Normally, you can't forecast the return, as you see from the results so far. At best you can forecast the variance. Estimating the drift is also a challenge. I hope you're not trying to make money on stocks this way. – Aksakal Oct 1 '15 at 16:12
• @Aksakal, I'm not putting money into this, that is if you don't count tuition fees. It's a school project. I want to compare the accuracy of ARIMA and GARCH in forecasting stock prices and I'm still trying to understand ARIMA. I understand the underlying theory but my major problem comes in practical application; how to create the models, which criteria to use to choose a model, what to do in some circumstances (such as this one) and so on. From using forecast either ARIMA is terrible at forecasting stock prices or I'm doing something wrong. My worry is that I'm doing it all wrong. – James Oct 1 '15 at 16:35