This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

Nonseasonal and Seasonal Differencing

This example shows how to apply both nonseasonal and seasonal differencing using lag operator polynomial objects. The time series is monthly international airline passenger counts from 1949 to 1960.

Load the airline data set (Data_Airline.mat).

y = log(Data);
T = length(y);

h1 = gca;
h1.XLim = [0,T];
h1.XTick = [1:12:T];
h1.XTickLabel = datestr(dates(1:12:T),10);
title 'Log Airline Passenger Counts';

The data shows a linear trend and a seasonal component with periodicity 12.

Take the first difference to address the linear trend, and the 12th difference to address the periodicity. If is the series to be transformed, the transformation is

where denotes the difference operator, and denotes the lag operator.

Create the lag operator polynomials and . Then, multiply them to get the desired lag operator polynomial.

D1 = LagOp({1 -1},'Lags',[0,1]);
D12 = LagOp({1 -1},'Lags',[0,12]);
D = D1*D12
D = 

    1-D Lag Operator Polynomial:
        Coefficients: [1 -1 -1 1]
                Lags: [0 1 12 13]
              Degree: 13
           Dimension: 1

The first polynomial, , has coefficient 1 at lag 0 and coefficient -1 at lag 1. The seasonal differencing polynomial, , has coefficient 1 at lag 0, and -1 at lag 12. The product of these polynomials is

which has coefficient 1 at lags 0 and 13, and coefficient -1 at lags 1 and 12.

Filter the data with differencing polynomial D to get the nonseasonally and seasonally differenced series.

dY = filter(D,y);
length(y) - length(dY)
ans =


The filtered series is 13 observations shorter than the original series. This is due to applying a degree 13 polynomial filter.

h2 = gca;
h2.XLim = [0,T];
h2.XTick = [1:12:T];
h2.XTickLabel = datestr(dates(1:12:T),10);
axis tight;
title 'Differenced Log Airline Passenger Counts';

The differenced series has neither the trend nor seasonal component exhibited by the original series.

See Also


Related Examples

More About

Was this topic helpful?