G. Perendia wrote:
Dear Michel
Should we include Matlab disclyap_fast.m into (next major release of) Dynare Matlab suite as an alternative or replacement for lyapunov_symm.m and shall we/I then also:
we should just replace lyapunov_symm by (renamed) disclyap_fast.m
a) change Matlab disclyap_fast.m to accept tolerance as parameter and include it into Dynare Matlab suite,
yes
b) change its name,
yes
d) prepare and include C++ disclyap_fast_dll.dll as separate module, again as alternative to lyapunov_symm.m,
no, let's not multiply the DLLs called from Matlab. We will use the C code as part of a big DLL that performs all the estimation code
d) change its name too, e) change DsgeLikelihood.m to use either Matlab and/or C++ disclyap_fast.m
This is a bit complicated. Dsgelikelihood (and dsgelikelihood_hh) calls lyapunov_symm for stationary models. kalman_algo = 1 or 2 Equivalent code is present in dsgelikelihood.m for nonstationary models kalman_algo = 3 or 4
Best
Michel
Best regards
George ----- Original Message ----- From: "Michel Juillard" michel.juillard@ens.fr To: "List for Dynare developers" dev@dynare.org Sent: Wednesday, July 29, 2009 7:36 PM Subject: Re: [DynareDev] lyapunov kalman filter options
Sounds good, thanks
Michel
G. Perendia wrote:
Dear Michel (et al)
On my slower laptop I run few tests and got timings roughly on lines of
the
following timings for an 8x8 T matrix and 10,000 loops:
Matlab:
lyapunov_symm.m time = 19.2270 s Pearlman Matlab disclyap_fast.m time = 13.0280 s
New C++ disclyap_fast DLL:
disclyap_fast_dll_time = 7.8010 sec for tolerance= 1e-16 disclyap_fast_dll_time = 6.5600 sec for tolerance= 1e-12
Best regards
George
----- Original Message ----- From: "Michel Juillard" michel.juillard@ens.fr To: "G. Perendia" george@perendia.orangehome.co.uk; "List for Dynare developers" dev@dynare.org Sent: Wednesday, July 29, 2009 10:33 AM Subject: Re: [DynareDev] lyapunov kalman filter options
Tanks for the update. The false value when A contains unit root is a fault of design. The information on which columns are useable is in the list of stationary variables,
Best
Michel
G. Perendia wrote:
Dear Michel and Stephane
Re the below warning: the results from lyapunov_symm.m seem now correct -
It
seems that my Matlab variables memory was corrupted and after a reboot
and
restart it seems ok now - sorry for the alarm.
It however reports (an incorrect ) X=[0's] instead of indeterminate or
NaN
if I pass a=I.
PS: and I still need to test and debug new C++lyapunov because it may
have
been causing the variable corruption.
Best regards
George
----- Original Message ----- From: "Michel Juillard" michel.juillard@ens.fr To: "G. Perendia" george@perendia.orangehome.co.uk Cc: "List for Dynare developers" dev@dynare.org Sent: Wednesday, July 29, 2009 9:27 AM Subject: lyapunov kalman filter options
I would use lyapunov_tol = 1e-12 (in the example disclyap_fat.m, the criterium is 1e-16) and kalman_tol = 1e-12
Both options should be accessible to users and obtained from options_. The initialization should take place in
global_initialization.m
Best
Michel
Errata:
- it is options_.lyapunov_complex_threshold=1e-15 that is passed in
calls
to the existing lyapunov_symm.m and I can use that as tolerance instead the original 1e-6 if needed.
Warning:
If I pass a=T=[0] and b=RQR'~0 to lyapunov_symm.m, I get result Pstar
very
different from b although the solution to Lyapunov x-a*x*a' = b is
x=b=RQR'
and both, the new C++ and old matlab disklyap_fast return X=b=RQR as solution!!
Best regards
George
----- Original Message ----- From: "G. Perendia" george@perendia.orangehome.co.uk To: "Michel Juillard" michel.juillard@ens.fr; "Stéphane Adjemian" stephane.adjemian@gmail.com Sent: Wednesday, July 29, 2009 7:46 AM Subject: Re: measurement errors + steady KF
Hi Michel, Stephane
What tolerances should we use to pass:
1)for the new fast iterative C++ Lyapunov solution convergence check
if max( max( abs( P1 - P0 ) ) )>tol
The original Joe Pearlman's matlab code used 1e-6. which is same as
Dynare
default ricatti_tol (also used for a similar purpose in calls to the existing lyapunov_symm.m.). So, shall we use the riccati_tol or set a separate, lyapunov_tol one at the same default level?
- and, as per below, for the Old style DiffuseLikelihood.m like
Pstar
convergence/differences, that has been built into the C++KF i.e.: notsteady = ~(max(max(abs(Pstar-oldPstar)))<crit); where crit is options_.kalman_tol = 1.0000e-012 - I guess we can
continue
to use the same though the new likelihood/kalman_filter*.m suite uses riccati_tol
instead
but for F convergence check.
Best regards
George Mob. +44(0)7951415480 artilogica@btconnect.com
----- Original Message ----- From: "Michel Juillard" michel.juillard@ens.fr To: "G. Perendia" george@perendia.orangehome.co.uk; "Stéphane
Adjemian"
stephane.adjemian@gmail.com Sent: Tuesday, July 14, 2009 11:47 PM Subject: Re: measurement errors + steady KF
> I don't know. This is something that we need to discuss with >
Stephane.
> All the best, > > Michel > > G. Perendia wrote: > > > > >> Thanks Michel >> >> I am finishing algorithm for checking if KF P (and/or K) are steady >> >> >> >>
for
the
>> C++KF. >> >> Old DiffuseLikelihood.m uses Pstar differences, i.e.: >> notsteady = ~(max(max(abs(Pstar-oldPstar)))<crit); >> where crit is options_.kalman_tol = 1.0000e-012 >> >> whilst the new kalman_filter.m uses K to check: >> notsteady = max(max(abs(K-oldK))) > riccati_tol; >> where >> K = Pstar*Z'*invF; >> and options_.riccati_tol= 1.0000e-006 >> >> Which tolerance (and check) should I use for C++KF? >> I have already built a system using Pstar -oldPstar and that works >> >> >> >>
well
but
>> question is which tolerance to use since riccati seems sufficient >>
for
>> >>
P
>> difference too. >> >> Best regards >> >> George >> Mob. +44(0)7951415480 >> artilogica@btconnect.com >> >> ----- Original Message ----- >> From: "Michel Juillard" michel.juillard@ens.fr >> To: "G. Perendia" george@perendia.orangehome.co.uk >> Sent: Tuesday, July 14, 2009 6:57 AM >> Subject: Re: measurement errors >> >> >> >> >> >> >> >>> Hi George, >>> >>> it is like for exogenous variables. If GDP is an endogenous >>>
variable
>>> estimated_params; >>> stderr GDP, uniform_pdf,,,0,1; >>> .... >>> end; >>> >>> will introduce a measurement error on GDP. >>> >>> Best >>> >>> Michel >>> G. Perendia wrote: >>> >>> >>> >>> >>> >>>> Dear Michel >>>> >>>> For testing Part Info (and the other) Kalman filters, I would need >>>> >>>> >>>> >>>>
to
>>>> set situation with measurement errors so that H~=0. >>>> >>>> Can you please let me know how one specifies measurement errors >>>> in Dynare for estimation so that H ~ =0? >>>> Best regards >>>> >>>> George >>>> artilogica@btconnect.com mailto:artilogica@btconnect.com >>>> >>>> >>>> >>>> >>>> > a > > > > >
Dev mailing list Dev@dynare.org http://www.dynare.org/cgi-bin/mailman/listinfo/dev
Dev mailing list Dev@dynare.org http://www.dynare.org/cgi-bin/mailman/listinfo/dev
Dev mailing list Dev@dynare.org http://www.dynare.org/cgi-bin/mailman/listinfo/dev