Indeed it should read:
<hansl>
clear
set echo off
set messages off
set seed 1234
open denmark.gdt -q
function void varsim (series Y, matrix ARbeta "Coeff. vector of Y",
list X "List of exogenous (-pmin to -p)",
matrix Xbeta "coeff vector of Xs",
list D "deterministics",
matrix Dbeta "coeff. vector of D",
series e "resampled", int p, series *ysim)
list lX = D X
matrix DLcoef = Dbeta | Xbeta
series m = lincomb(lX, DLcoef)
scalar T = rows({e})
matrix A = ARbeta' | (I(p-1) ~ 0)
matrix y0 = mreverse({Y}[1:p])'
matrix U = {e + m} ~ zeros(T, p-1)
matrix S = varsimul(A, U, y0)
S = {Y}[1:p-1] | S[,1]
series ysim = S
end function
series Y = LRY
series X = LRM
list lD = const time
scalar nD = nelem(lD)
scalar p = 4
scalar minp = 0
ols Y lD Y(-1 to -p) X(minp to -p)
scalar ay = (1+nD)
scalar ey = ay+p-1
matrix ARbeta = $coeff[ay:ey]
matrix Dbeta = $coeff[1:nD]
matrix Xbeta = $coeff[1+ey:]
series ysim = 0
list lX = X(0 to -p)
varsim(Y, ARbeta, lX, Xbeta, lD, Dbeta, resample($uhat), p, &ysim)
gnuplot Y ysim --with-lines --time-series --output=display
</hansl>
Artur
Am 09.12.2016 um 04:47 schrieb Allin Cottrell:
On Fri, 9 Dec 2016, Clive Nicholas wrote:
> Thanks Jack,
>
> The reformatting works, but then chokes on
>
>> varsim(Y, ARbeta, lX, Xbeta, lD, Dbeta, e,
> The symbol 'e' is undefined
>
> Error executing script: halting
>> varsim(Y, ARbeta, lX, Xbeta, lD, Dbeta, e, p, &ysim)
>
> And indeed 'e' is not defined...
You're right, Artur's example does not run as posted. It's not totally
obvious to me where the missing "e" series is supposed to come from,
though maybe one should insert
series e = resample($uhat)
after the ols command?
Allin Cottrell
_______________________________________________
Gretl-users mailing list
Gretl-users(a)lists.wfu.edu
http://lists.wfu.edu/mailman/listinfo/gretl-users