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