On Sat, 21 Nov 2020, Sven Schreiber wrote:
Am 21.11.2020 um 15:26 schrieb Allin Cottrell:
> On Fri, 20 Nov 2020, Sven Schreiber wrote:
>>
>> It seems to come from VAR_allocate_cholesky_matrix in lib/src/var.c,
>> where we have:
>>
>> n = var->neqns * effective_order(var);
>> var->C = gretl_zero_matrix_new(n, var->neqns);
>>
>> So the number of rows is indeed chosen as dim x lagorder which explains
>> my row number 4 above - but this doesn't make any sense, does it?
>
> That C matrix is described in var.h as "augmented Cholesky-decomposed
> error matrix". I can't say I remember the exact reason for augmenting it
> with zeros, but as things stand it's required for conformability in
> functions such as gretl_VAR_get_fcast_decomp().
I think I understand it now. That C matrix augmented with a bunch of
rows of zeros is a device one would use in giving a compact account
of the algorithm for IRFs and FEVDs. One can construct it literally
in code but that's not efficient -- better to keep C square and just
calculate "as if" it had zeros in train. That's what we now do in
git.
(Algorithmic accounts of estimators quite often feature big matrices
that offer notational economy, but that it would be silly to
actually construct. Mostly libgretl avoids that kind of silliness.)
Allin