Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: -ml- estimators for time series (keys: ts, ml, arch)


From   "Mindaugas Baltutis" <[email protected]>
To   <[email protected]>
Subject   st: -ml- estimators for time series (keys: ts, ml, arch)
Date   Tue, 13 Dec 2005 15:22:47 +0100

Dear Stata Users,

I expect to write various Multivariate GARCH estimators on Stata, but at the
moment I am even stuck at writing my own estimator for simple GARCH(1,1)
model using -ml-. I am a newbie to Stata, so I apologize if my questions are
na�ve. 

1. The info about -ml- which I found in "[R] ml" was not enough for me,
because no examples were given how to specify time series estimators. 

In particular:

2. Which -ml- method {lf,d0,d1,..} is appropriate for ts likelihood like in
garch. In this case it is a conditional likelihood, and that is a problem: I
don't find the way to fit in the framework of -ml-, i.e. how to specify the
`theta' when it depends on its own lags.

I do it straightforward:
........
program myarch_dr
	version 8
	args lnf sigma2
	qui replace `lnf' = -0.5 * (ln(2*_pi) + ln(`sigma2') + $ML_y1
/`sigma2')
end

cmd: ml model lf myarch_dr ( e2_t = L.e2_t  L.sigma2) in 2/l, collinear
........
If all `sigma2' values are initialized then the model is estimated, but with
these static values. And if I supply only the initial value for `sigma2',
with rest missing, the output is "insufficient observation".

3. I did examine the own Stata's arch.ado file. And there is a different
approach and commands, for which I didn't find help. In particular:

The call for -ml- method is "rdu0". What is that?
.........
capture noi ml model rdu0 `ml_prog' `xbeqn' .... etc..
.........

And the log-likelihood is calculated in observation loop for which I also
didn't find the help:
........

			/* Observartion loop */

	_byobs {
		......
				/* ARCH components */
		$Tdoarch score $Tsigma2 = `b', eq("ARCH") missval(`sig2_0')
		`dohet' update $Tsigma2 = $Tsigma2 `hetterm'
		......

			/* Likelihood */
		update `llvar' =  -0.5 * (ln(2*_pi) + /*
			*/ ln($Tsigma2) + $Te2 / $Tsigma2)
	}
........
How does this loop work? I didn't find info about the "update" and "_byobs"
commands?


4. Does somebody know if the book 
	Maximum Likelihood Estimation with Stata (Gould and Sribney 1999)
Is describing these features about -ml- programming, does it have examples
with time series.

Thank you in advance for comments and help.

Best regards,
Mindaugas

---
Mindaugas Baltutis
Department of Finance
University of Vienna
Bruenner Strasse 72
A-1210 Vienna
Austria

Tel: +43 (0)1 4277-38076
Fax: +43 (0)1 4277-38054 


*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index