# Time series ARMA model estimation results different from textbook

1 view (last 30 days)

Show older comments

I tried to estimate an ARMA(4,3) model using armax function in the system identification toolbox. I used the same data set, but the result was totally different from the textbook Pandit and Wu,1990, Time Series and System Analysis with Applications. The data I used is the sunspot data in Table A2 in the textbook (page487). I double checked to make sure the data is exactly the same as in the textbook.

The estimated ARMA(4,3) model in the textbook in page 170 is:

A(q)=1-0.42(+-1)q^-1-0.28(+-0.75)q^-2+0.08(+-0.49)q^-3+0.33(+-0.5)q^-4.

C(q)=1+0.89(+-1)q^-1+0.31(+-0.76)q^-2-0.14(+-0.23)q^-3.

However, the estimation result of armax is:

A(q)=1-1.572(+-0.3967)q^-1+0.1358(+-0.9669)q^-2+1.046(+-0.8845)q^-3-0.6024(+-0.3122)q^-4.

C(q)=1-0.3253(+-0.4095)q^-1-0.756(+-0.5163)q^-2 +0.08137(+-0.168)q^-3.

My code is as follows. My question is which result is correct?

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%Read and plot raw data (rawdata has 176 points in one column)

rawdata=[80.9 83.4 47.7 47.8 30.7 12.2 9.6 ...

10.2 32.4 47.6 54 62.9 85.9 61.2 45.1 36.4 ...

20.9 11.4 37.8 69.8 106.1 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 139.1 111.2 101.7 66.3 44.7 17.1 ...

11.3 12.3 3.4 6 32.3 54.3 59.7 63.7 ...

63.5 52.2 25.4 13.1 6.8 6.3 7.1 35.6 ...

73 84.9 78 64 41.8 26.2 26.7 12.1 9.5 ...

2.7 5 24.4 42 63.5 53.8 62 48.5 43.9 ...

18.6 5.7 3.6 1.4 9.6 47.4 57.1 103.9 ...

80.6 63.6 37.6 26.1 14.2 5.8 16.7]';

meanvalue=mean(rawdata);

%Fit an ARMA model

order=[4 3];

data=iddata(rawdata-meanvalue,[],1);

model=armax(data,order);

%Show the fitted model

present(model);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

##### 2 Comments

Wayne King
on 14 Nov 2011

### Accepted Answer

Wayne King
on 21 Nov 2011

##### 0 Comments

### More Answers (3)

Gurudatha Pai
on 22 Nov 2011

Assuming that the there is no typo in the data (I dint check), I tried your code through system id GUI of Matlab system id toolbox. It give the same values as you have typed here (obviously, right!) for 'zero' initialization and gives (very) different answers for other initializations. So, I am not sure about the books answer! I am not familiar with this book. I am just wondering what the "initial values" are supposed to be! Is this something on any of the recursive system id algorithms which are using initial values of the parameters? I don't see that you have used these initial values anywhere. You might want to use these initial values and see what happens to the result. I don't know if system id toolbox allows you to use non-zero initial values.

If I get a chance, I will play more with your data and may be I will have a better answer later! Finally, I would take it for granted that any computation tool (Matlab, R or Fortan for that matter) should give visibly same answer (unless some numerical or theoretical exception is happening).

##### 0 Comments

### See Also

### Products

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!