The data for this example are the same as that for Example 1. Preliminary method of moments estimates are computed by default, and the method of least squares is used to find the final estimates. Note that at the end of the output, a warning message appears. In most cases, this warning message can be ignored. There are three general reasons this warning can occur:
ConvergenceTolerance
can be reduced to allow more iterations and a slightly more accurate solution.Trying a smaller value for ConvergenceTolerance
can help determine what caused the error message.
using System;
using Imsl.Stat;
using PrintMatrix = Imsl.Math.PrintMatrix;
public class ARMAEx2
{
public static void Main(String[] args)
{
double[] arInit = new double[]{1.24426e0, - 5.75149e-1};
double[] maInit = new double[]{- 1.24094e-1};
double[] z = new double[]{ 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.Method = Imsl.Stat.ARMA.ParamEstimation.LeastSquares;
arma.SetInitialEstimates(arInit, maInit);
arma.ConvergenceTolerance = 0.125;
arma.Mean = 46.976;
arma.Compute();
new PrintMatrix("AR estimates are: ").Print(arma.GetAR());
Console.Out.WriteLine();
new PrintMatrix("MA estimate is: ").Print(arma.GetMA());
}
}
AR estimates are:
0
0 1.39325700313638
1 -0.733660553488482
MA estimate is:
0
0 -0.137145395974998
Imsl.Stat.ARMA: Relative function convergence - Both the scaled actual and
predicted reductions in the function are less than or equal to the relative
function convergence tolerance "ConvergenceTolerance" = 0.0645856533065147.
Imsl.Stat.ARMA: Least squares estimation of the parameters has failed to
converge. Increase "length" and/or "tolerance" and/or "convergence_tolerance".
The estimates of the parameters at the last iteration may be used as new
starting values.
Link to C# source.