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