Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • How to ignore non converging GARCH(1,1)

    Dear all,

    I am currently in the process of trying to replicate a paper by O'Brien & Folta: "Sunk costs, uncertainty and market exit: A real options perspective." (2009)
    More specifically I am interested in their way of measuring uncertainty. Their approach is to run a GARCH(1,1) on daily stock returns of a number of companies from the CRSP database and take the calculated conditional variance for each company for each year. Their proxy for uncertainty in an industry is
    the median standard deviation of stock volatility for all firms competing in the industry for the relevant year
    .
    To get my head around their methodology I am starting out on a smaller scale and just took firms from one industry, for one year out of the CRSP database. However, when running my code (see below) I encounter the issue of non convergence. My questions are as follows:
    1. Would there be a way in which you ignore the return series for which this phenomena occurs and only use the series for which the GARCH model did converge to calculate the uncertainty proxy?
    2. Would there be a feasible way to actually make the series converge? Tried the different optimization techniques, but this did not help (which makes sense).
    code:
    use datastocks.dta
    drop permco
    drop cusip
    reshape wide retx, i(date) j(permno)

    gen t = _n
    tsset t
    foreach x of varlist retx* {
    arch `x', arch(1) garch(1)
    predict var`x', variance
    }

    foreach x of varlist var* {
    egen sd`x'= sd(`x')
    }

    egen uncertainty_measure = median(sd*)

    p.s. for educational purposes: if anyone has a good reference to read up on GARCH non-convergence and ML issues please suggest
    Attached Files

  • #2
    Welcome to Statalist. You'll increase your chances of a useful answer by following the FAQ on asking questions - Stata code in code delimiters, readable Stata output, and sample data using dataex.

    It is feasible to look at the return codes when it converges and when it doesn't converge. Look in User Guide Chapter 8 - error messages and return codes and the Programming manual under error.. Then, you can put a separate if block of code so you only do predictions for arch estimates that converge.

    As for non-convergence, trying different optimization techniques including "difficult" is the only thing I know to do. You can mess around a lot with optimization, but it often doesn't help.

    Comment

    Working...
    X