Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
st: RE: MGARCH DCC in panel settings - error?
From
Nick Cox <[email protected]>
To
"'[email protected]'" <[email protected]>
Subject
st: RE: MGARCH DCC in panel settings - error?
Date
Fri, 16 Mar 2012 11:10:55 +0000
I can't comment on your -mgarch- use. I don't think anyone can comment easily on comparison with OxMetrics without seeing much more detail.
In terms of cycling over panels, this can be simplified, but note that -- naturally -- this is not tested by me because I do not have your data.
-forval- is more natural here.
use "etf.sticker_quotes_upd_32.dta", clear
drop if ret == .
sort permno date
duplicates drop permno date, force
egen id=group(permno)
su id, meanonly
local max = r(max)
save etf.sticker_quotes_upd_32_2
qui forval i = 1/`max' {
use "etf.sticker_quotes_upd_32_2.dta", clear
keep if id == `i'
gen date_n=_n
tsset date_n
l permno in 1/2
di "{title: results for `i'}"
di
noisily mgarch dcc (ret vwretd = , noconstant) ///
, arch(1) garch(1) technique(bhhh) iterate(4000)
predict H* if e(sample), variance
generate double corr_ret_vwretd = H_ret_vwretd / ( sqrt(H_ret_ret) *sqrt(H_vwretd_vwretd))
outsheet using DCC_`i'.csv , comma
}
On similar technique see
FAQ . . . . . . . . . . Making foreach go through all values of a variable
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox
8/05 Is there a way to tell Stata to try all values of a
particular variable in a foreach statement without
specifying them?
http://www.stata.com/support/faqs/data/foreach.html
Nick
[email protected]
Arsenio Staer
Hi Nick and Rafal,
Thank you for the answers! I approached this following way
================================= begin example =============================
use "etf.sticker_quotes_upd_32.dta", clear
sort permno date
duplicates drop permno date, force
egen id=group(permno)
su id, meanonly
scalar max_r = `r(max)'
foreach i of num 1/`=max_r' { /* instead of forvalues which has to have a numeric range? */
use "etf.sticker_quotes_upd_32.dta", clear
sort permno date
qui egen id=group(permno)
drop if id != `i'
duplicates drop permno date, force
drop if ret == .
gen date_n=_n
tsset date_n
l permno in 1/2 if id==`i'
noisily mgarch dcc (ret vwretd = , noconstant) ///
if id == `i' , arch(1) garch(1) technique(bhhh) iterate(4000)
predict H* if e(sample), variance
generate double corr_ret_vwretd = H_ret_vwretd / ( sqrt(H_ret_ret) *sqrt(H_vwretd_vwretd))
outsheet using DCC_`i'.csv , comma
}
================================== end example ==============================
Apologize if the code above looks unformatted.
I found out that, the series need to be -tsset- but can't be -xtset-
at least in my case, any mgarch command on -xtset- dataset gives that
error in the previous message. So i create a new dataset based on the
group and -tsset- it in the loop and run the estimation and output the
DCC time series which I'm interested in. This is an proof of concept
on the return data then i will run it on the other variables.
I'm working on the estimation itself, somehow can't achieve
convergence. The same model in OxMetrics achieves convergence in
seconds with similar log likelihood values. But that's a different
matter altogether.
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/