Non Liner Wald Restrictions in VAR
Posted: Mon May 08, 2017 5:06 pm
Hi,
I am trying to replicate the paper The behaviour of UK stock prices and returns: is the market efficient? by K Cuthbertson, S Hayes, D Nitzsche - The Economic Journal, 1997.
https://www.jstor.org/stable/pdf/2957845.pdf
They use a VAR method, also used by Campbell and Shiller and derive theoretical dividend yield and returns based on the VAR by placing non linear restrictions.
My matrix algebra is not correct as time horizon increases. Any help would be much appreciated. Also the best way to implement the restrictions and the Wald test mentioned in the text.
I am trying to replicate the paper The behaviour of UK stock prices and returns: is the market efficient? by K Cuthbertson, S Hayes, D Nitzsche - The Economic Journal, 1997.
https://www.jstor.org/stable/pdf/2957845.pdf
They use a VAR method, also used by Campbell and Shiller and derive theoretical dividend yield and returns based on the VAR by placing non linear restrictions.
Code: Select all
*Div yield and Dividend growth (First model)
system(model=varmodel)
vars d_p dd1
lags 1
end(system)
estimate(sigma,resids=resids)
sur(model=varmodel, robust, COEF=beta)
com a11 = beta(1,1)
com a12 = beta(2,1)
com a21 = beta(1,2)
com a22 = beta(2,2)
display a11 a12 a21 a22
** Theoretical Dp
declare rect e1
dimension e1(1,2)
compute e1 =|| 1 , 0||
dis 'e1' e1
declare rect e2
dimension e2(1,2)
compute e2 =|| 0 , 1||
dis 'e2' e2
compute [rect] Ide = %identity(2)
compute [rect] A = || 0.522, -0.162 | -0.055, 0.315||
dis 'A' A
*This matrix is inverse of (I- rho*A)
compute [rect] ds = (ide - 0.951*A)
dis 'ds' ds
compute [rect] dsinv = inv(ds)
dis 'dsinv' dsinv
* this is matrix e2*A*(I- rho*A)^-1
declare rectangular[real] ds1
compute ds1 = e2*A*dsinv
dis 'ds1' ds1
*this matrix is (I - p^i * A^i)
compute [rect] ds2 = (ide - (0.951**3)*(A*A*A))
dis 'ds2' ds2
*this is matrix p^1 * e1 * A^1
compute [rect] ds3 = 0.951**(3) * e1 * A**(3)
dis 'ds3' ds3
*combining the all matrices together
compute [rect] ds4 = (ds1*ds2)+ds3
dis 'ds4' ds4
*check to see if matrix calculations are correct
declare rect ds5
dimension ds5(1,2)
compute ds5 =(e2 * A * (Ide - 0.951 * A)**(-1) * (Ide - 0.951**(3) * A**(3)) + 0.951**(3) * e1 * A**(3))
dis 'ds5' ds5
compute asd = ds4(1,1)
compute dfg = ds4(1,2)
dis 'asd' asd
dis 'dfg' dfg
set thdp = asd*d_p
set thdd1 = dfg * dd1
set theoretical = thdp + thdd1