Hi Artur,

thanks for your girf work!

Artur T. schrieb:

> Hi all,
> 
> I found some time to improve my gretl programming skills a little bit
> and improved the function for the GIRF. I've got still some issues with
> it. Maybe somebody is interested to help me with it...
> 
> 1. The results seem to be ok from my perspective. Since I cannot compare
> them at the moment, maybe someone is interested in checking the code.

sorry, don't have the time currently to do a cross-check

In general I would think about splitting the function in at least two
parts:
one, say getGIRF(), which does the computations and returns a matrix of
the girfs (ok, probably actually a matrix of stacked girfs since we have
three dimensions here: shock, target, horizon).

And another one, say plotGIRF() which takes the matrix from getGIRF(),
plots it somehow, and doesn't return anything (same as your function).

That way you or somebody else can reuse getGIRF() in other applications
where you may want to do something more with the GIRFS (check the signs
in a script, bootstrap, or whatever).

> 
> 2. I would like to add an output describing which is the shock variable
> and which are the responses for the generated matrix. Something like:
> 
> Responses of the respective variables to a shock in Variable 1.
> Period    Variable 1 Variable 2 ...
> 1                    0.03        0.9

Something like this?:

numofvars = nelem(Y)
loop for i=1..numofvars # loop over shock origins
printf "Responses of the respective variables \
to a shock in Variable %d\n", i
printf "Period    "
loop for j=1..numofvars
    printf "Variable %d    ", j
endloop
printf "\n"
loop for j=1..horizon
    printf "%d         ", j
    loop for k=1..numofvars     # loop over target vars
        printf " %f  ", girfmatrix[i, k*j]
        # (girfmatrix defined elsewhere)
        # (and number of blanks needs adjustment)
    endloop # target loop
    printf "\n"
endloop # horizon loop
printf "\n"
endloop # origin loop


> 
> 2. I wrote the function in such a way that it estimates a VAR system and
> then conducts the GIRF. Since you can have all those additional options
> like --nc --trend --robust and so on, the function would be quite big to
> consider all those cases. So, is it maybe reasonable to call the
> function after one has estimated the VAR by the conventional way and
> then calling the function?

Not for turning it into a function package at some point, I'd say.
Adding the various options later is easy, and the extra code is
straightforward. So IMHO it won't be a problem if it will be a bit lengthy.

> 
> 3. I also would like to improve the plotting. I want to plot the
> responses of all variables to a specific shock within one graph. For
> example, if I have three variables which are shocked, the plot command
> must be "gnuplot 1 2 3 --time-series..." where 1 2 3 denote the
> corresponding columns of the response matrix. Is there a way to
> generalize this in such a way that one can type in the corresponding
> numbers of coulumns one wants to plot in the "function-gui" or just to
> plot all columns which equals the number of endogenous variables?

There are many combinations and thus I don't think it makes much sense
to make it a GUI option. I haven't checked thoroughly, but I'm not aware
of a way to construct the gnuplot command where the number of columns is
unknown at coding time. (Apart from having many if-blocks and separate
gnuplot commands for all cases, of course.) Maybe the gnuplot command in
gretl could be extended with a syntax to plot *all* columns of a matrix?

cheers,
sven

Reply via email to