HI Allin and Sven, thanks for your reply.
@Allin If you find some time it would be nice if you can have a look on it. @Sven I will have a look on your idea. Actually, it seems to be a good idea to separate the functions. Cheers, Artur Am 10.05.2010 10:21, schrieb Sven Schreiber: > 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 > _______________________________________________ > Gretl-users mailing list > Gretl-users(a)lists.wfu.edu > http://lists.wfu.edu/mailman/listinfo/gretl-users >