Example 1: ARMA

Consider the Wolfer Sunspot Data (Anderson 1971, p. 660) consisting of the number of sunspots observed each year from 1749 through 1924. The data set for this example consists of the number of sunspots observed from 1770 through 1869. The method of moments estimates

{\rm{\hat \theta }}_{\rm{0}} {\rm{,\hat \phi }}_{\rm{1}} {\rm{,\hat \phi }}_{\rm{2}} {\rm{, and \, \hat \theta }}_{\rm{1}}

for the ARMA(2, 1) model

z_t = \theta _0 + \phi _1 z_{t - 1} + \phi _2 z_{t - 2} - \theta _1 A_{t - 1} + A_t

where the errors A_t are independently normally distributed with mean zero and variance

\sigma _A^2


import com.imsl.stat.*;
import com.imsl.math.PrintMatrix;

public class ARMAEx1 {

    public static void main(String args[]) throws Exception {
        double[] z = {
            100.8, 81.6, 66.5, 34.8, 30.6, 7, 19.8, 92.5,
            154.4, 125.9, 84.8, 68.1, 38.5, 22.8, 10.2, 24.1, 82.9,
            132, 130.9, 118.1, 89.9, 66.6, 60, 46.9, 41, 21.3, 16,
            6.4, 4.1, 6.8, 14.5, 34, 45, 43.1, 47.5, 42.2, 28.1, 10.1,
            8.1, 2.5, 0, 1.4, 5, 12.2, 13.9, 35.4, 45.8, 41.1, 30.4,
            23.9, 15.7, 6.6, 4, 1.8, 8.5, 16.6, 36.3, 49.7, 62.5,
            67, 71, 47.8, 27.5, 8.5, 13.2, 56.9, 121.5, 138.3, 103.2,
            85.8, 63.2, 36.8, 24.2, 10.7, 15, 40.1, 61.5, 98.5,
            124.3, 95.9, 66.5, 64.5, 54.2, 39, 20.6, 6.7, 4.3, 22.8,
            54.8, 93.8, 95.7, 77.2, 59.1, 44, 47, 30.5, 16.3, 7.3,
            37.3, 73.9
        };

        ARMA arma = new ARMA(2, 1, z);
        arma.compute();

        new PrintMatrix("AR estimates are:  ").print(arma.getAR());
        System.out.println();
        new PrintMatrix("MA estimate is:  ").print(arma.getMA());
    }
}

Output

AR estimates are:  
     0     
0   1.244  
1  -0.575  


MA estimate is:  
     0     
0  -0.124  

Link to Java source.