# Simulate Trend-Stationary and Difference-Stationary Processes

This example shows how to simulate trend-stationary and difference-stationary processes. The simulation results illustrate the distinction between these two nonstationary process models.

### Generate Observations from Trend-Stationary Process

Specify the trend-stationary process

${y}_{t}=0.5t+{\epsilon }_{t}+1.4{\epsilon }_{t-1}+0.8{\epsilon }_{t-2},$

where the innovation process is Gaussian with variance 8. After specifying the model, simulate 50 sample paths of length 200. Use 100 burn-in simulations.

t = [1:200]';
trend = 0.5*t;

MdlTS = arima('Constant',0,'MA',{1.4,0.8},'Variance',8);
rng('default')
u = simulate(MdlTS,300,'NumPaths',50);

Yt = repmat(trend,1,50) + u(101:300,:);

figure
plot(Yt,'Color',[.85,.85,.85])
hold on
h1 = plot(t,trend,'r','LineWidth',5);
xlim([0,200])
title('Trend-Stationary Process')
h2 = plot(mean(Yt,2),'k--','LineWidth',2);
legend([h1,h2],'Trend','Simulation Mean',...
'Location','NorthWest')
hold off

The sample paths fluctuate around the theoretical trend line with constant variance. The simulation mean is close to the true trend line.

### Generate Observations from Difference-Stationary Process

Specify the difference-stationary model

$\Delta {y}_{t}=0.5+{\epsilon }_{t}+1.4{\epsilon }_{t-1}+0.8{\epsilon }_{t-1},$

where the innovation distribution is Gaussian with variance 8. After specifying the model, simulate 50 sample paths of length 200. No burn-in is needed because all sample paths should begin at zero. This is the simulate default starting point for nonstationary processes with no presample data.

MdlDS = arima('Constant',0.5,'D',1,'MA',{1.4,0.8},...
'Variance',8);
Yd = simulate(MdlDS,200,'NumPaths',50);
figure
plot(Yd,'Color',[.85,.85,.85])
hold on
h1=plot(t,trend,'r','LineWidth',5);
xlim([0,200])
title('Difference-Stationary Process')
h2=plot(mean(Yd,2),'k--','LineWidth',2);
legend([h1,h2],'Trend','Simulation Mean',...
'Location','NorthWest')
hold off

The simulation average is close to the trend line with slope 0.5. The variance of the sample paths grows over time.

### Difference Sample Paths

A difference-stationary process is stationary when differenced appropriately. Take the first differences of the sample paths from the difference-stationary process, and plot the differenced series. One observation is lost as a result of the differencing.

diffY = diff(Yd,1,1);

figure
plot(2:200,diffY,'Color',[.85,.85,.85])
xlim([0,200])
title('Differenced Series')
hold on
h = plot(2:200,mean(diffY,2),'k--','LineWidth',2);
legend(h,'Simulation Mean','Location','NorthWest')
hold off

The differenced series appears stationary, with the simulation mean fluctuating around zero.