Something wrong with the starting values

Hi all,
I run the code with 2 different data sets, the first one is fine, but the second one the parameter result was missing and the beta is the same for all observation, result is shown below;
------------------------------------------------------------------------
II------------------ Parameter Estimates ------------------II
Starting values: 0.001870984817638 0.013969936604091
-0.000000000009175

b0: 0.001870984817638 .
SMA1: 0.013969936604091 .
SMA2: 0.000000000109175 .

II----------- Smoothed Beta (t) ----------------II
0.023197
0.023197
0.023197
0.023197
0.023197
....
---------------------------------------------------------------------------

However, the only suggestion I have got is there must be something wrong with the starting values that I have no idea how to correct it.

@-- starting values--@
b0 = .1;
sma1 = .12;
sma2 = 0.12; @-- variance of transition eq. --@
parms = b0|sma1|sma2;

@ Do the Estimation and output results @

_cml_Algorithm = 1;
_cml_Linesearch = 2;
_cml_CovPar = 2;
_cml_DirTol = 1e-5;

@ load parms; @
{parms,f,g,h,retcode} = CML(data,0,&LL,parms); save parms;

1 Answer



0



First, it appears to me that there's a serious scaling problem here:

Starting values:     
0.001393011920857    0.014084283178608    0.000001824200129 

b0:         0.001393011920857    1.040977841766207 
SMA1:       0.014084283178608   30.020553274851288 
SMA2:       0.000001824300129    0.000000015132629 

In the Kalman filter, SMA1 and SMA2 are Q and H respectively. When numbers that small are used in operations with larger numbers serious loss of precision occurs.

I think in the Smooth function, it looks like it's smoothing a straight line. In the code below

 
@ Construct the P Star Matrix @
Ps = Pu * T ' invpd(Pp);
 
@ Construct Smooth State Vector for period i @
BVec[i,.] = (Bvec[i,.]' + Ps * (Bvec[i+1,.]' - T*BVec[i,.]'))';

Ps and T are always 1.0, and it appears that the difference between BVec[i+1] and BVec[i] is always the same, suggesting that BVec is a straight line. I think the Kalman filter is failing due to catastrophic failure of precision. It would take some more work to figure that out exactly. I can take a look tomorrow.

aptech

1,773

Your Answer

1 Answer

0

First, it appears to me that there's a serious scaling problem here:

Starting values:     
0.001393011920857    0.014084283178608    0.000001824200129 

b0:         0.001393011920857    1.040977841766207 
SMA1:       0.014084283178608   30.020553274851288 
SMA2:       0.000001824300129    0.000000015132629 

In the Kalman filter, SMA1 and SMA2 are Q and H respectively. When numbers that small are used in operations with larger numbers serious loss of precision occurs.

I think in the Smooth function, it looks like it's smoothing a straight line. In the code below

 
@ Construct the P Star Matrix @
Ps = Pu * T ' invpd(Pp);
 
@ Construct Smooth State Vector for period i @
BVec[i,.] = (Bvec[i,.]' + Ps * (Bvec[i+1,.]' - T*BVec[i,.]'))';

Ps and T are always 1.0, and it appears that the difference between BVec[i+1] and BVec[i] is always the same, suggesting that BVec is a straight line. I think the Kalman filter is failing due to catastrophic failure of precision. It would take some more work to figure that out exactly. I can take a look tomorrow.


You must login to post answers.

Have a Specific Question?

Get a real answer from a real person

Need Support?

Get help from our friendly experts.