FRM Exam Part I · Measuring and Monitoring Volatility
Estimating GARCH Parameters with Maximum Likelihood
Updated 11 October 2026 · Fact-checked
Maximum likelihood picks the volatility-model parameters that make the observed returns most probable. For EWMA or GARCH(1,1), you compute each day's variance, then maximize the sum of −ln(vᵢ) − uᵢ²/vᵢ. Check fit by testing whether uᵢ²/vᵢ shows autocorrelation, using Ljung-Box, and compare models with likelihood ratios, AIC or BIC.
Understand Estimating GARCH Parameters and Model Checks
A volatility model such as EWMA or GARCH(1,1) has parameters: λ for EWMA, or ω, α and β for GARCH. You cannot read them off the data directly because the variance is never observed. Maximum likelihood estimation (MLE) solves this. It asks: which parameter values make the returns we actually saw the most likely?
To build the likelihood, assume each return uᵢ is normal with mean zero and variance vᵢ, where vᵢ comes from the model and depends on the parameters. The density of uᵢ is then 1 ÷ √(2πvᵢ) × exp(−uᵢ² ÷ 2vᵢ). Multiply the densities across all days, take logs, and drop constants. You are left with a simple objective: maximize Σ[−ln(vᵢ) − uᵢ²/vᵢ]. A good parameter set gives variances that are neither too high (the −ln v term punishes this) nor too low (the −u²/v term punishes this).
In practice you pick starting values, run the variance recursion through the whole sample, compute the objective, and let a solver such as Excel Solver change the parameters. For EWMA there is one parameter, λ. For GARCH(1,1) there are three. Constraints apply: α ≥ 0, β ≥ 0, and α + β < 1 so that the process is stationary and has a long-run variance.
Model checks come next. If the model captures volatility clustering, the standardized returns uᵢ/σᵢ should look like independent draws. So the squares uᵢ²/vᵢ should show no autocorrelation. The Ljung-Box test checks this. To compare models, a higher log-likelihood is better, but more parameters always help the fit. So you use a likelihood ratio test for nested models, or AIC and BIC, which penalize extra parameters.
Key formulas to remember
- Log-likelihood objective (zero mean, normal)
- Maximize Σ [ −ln(vᵢ) − uᵢ² ÷ vᵢ ]
- Constants are dropped. Full form per day: −½ln(2π) − ½ln(vᵢ) − uᵢ² ÷ (2vᵢ). Maximizing either gives the same parameters. Compare raw values only if the same form is used.
- EWMA variance
- vᵢ = λ·vᵢ₋₁ + (1 − λ)·uᵢ₋₁²
- One parameter, λ. It is a special case of GARCH with ω = 0, α = 1 − λ, β = λ.
- GARCH(1,1) variance
- vᵢ = ω + α·uᵢ₋₁² + β·vᵢ₋₁
- Needs ω > 0, α ≥ 0, β ≥ 0 and α + β < 1.
- Long-run variance
- V_L = ω ÷ (1 − α − β)
- Exists only if α + β < 1. α + β is the persistence.
- Ljung-Box statistic
- Q = m(m + 2) Σₖ₌₁ᴷ ηₖ² ÷ (m − k)
- m is the number of observations and ηₖ is the lag-k autocorrelation of uᵢ²/vᵢ. Compare Q with a chi-square critical value with K degrees of freedom. A high Q means leftover autocorrelation, so the model is inadequate. Some texts reduce K by the number of estimated parameters.
- Likelihood ratio test
- LR = 2 × (lnL_unrestricted − lnL_restricted) ~ χ²(number of restrictions)
- Only for nested models. Reject the restricted model if LR exceeds the critical value.
- AIC and BIC
- AIC = 2k − 2lnL; BIC = k·ln(n) − 2lnL
- k is the number of parameters and n the sample size. Lower is better. BIC penalizes parameters more heavily when n is large.
How to solve Estimating GARCH Parameters and Model Checks questions
Use this order for any question on estimating volatility-model parameters or checking fit.
- 1Identify the model and its parameters: EWMA has λ, GARCH(1,1) has ω, α and β. Note the starting variance given.
- 2Write the variance recursion and run it forward for each observation to get vᵢ from the candidate parameters.
- 3For each day compute the term −ln(vᵢ) − uᵢ²/vᵢ. Make sure uᵢ² and vᵢ are in the same units (both in % or both in decimals).
- 4Sum the terms. The parameter set with the larger total is the better fit. The MLE is the set that gives the maximum.
- 5Check constraints: α, β ≥ 0 and α + β < 1. Compute V_L = ω ÷ (1 − α − β) if needed.
- 6To test adequacy, compute uᵢ²/vᵢ, find its autocorrelations, and apply Ljung-Box. Reject the model if Q exceeds the chi-square critical value.
- 7To compare models, use the LR test for nested models, or AIC and BIC for any models. Pick the lower AIC or BIC, or reject the restricted model when LR is large.
Quickest way: Compare candidates with the likelihood sum, not the algebra
When to use it: Use when the question gives two or three candidate parameter sets and asks which fits best, or gives log-likelihoods and asks which model to prefer.
- Do not solve for the optimum. Just evaluate −ln(v) − u²/v for each candidate on the few days given.
- Keep v and u² in the same units and keep four decimals for ln(v).
- Choose the candidate with the higher total. If log-likelihoods are given, choose the higher one only if the models have equal parameters.
- If the numbers of parameters differ, use AIC or BIC (lower wins) or the LR test: 2 × difference in lnL against the chi-square critical value.
- Remember the shortcut: the EWMA vs GARCH(1,1) test has 2 restrictions.
Common mistakes in Estimating GARCH Parameters and Model Checks
Choosing the model with the highest log-likelihood when the models have different numbers of parameters.
Students forget that adding parameters can only raise the likelihood.
Fix: Use the LR test for nested models, or AIC and BIC, which penalize extra parameters.
Applying Ljung-Box to the raw returns uᵢ or to uᵢ² instead of uᵢ²/vᵢ.
Students mix up testing for volatility clustering with testing model adequacy.
Fix: Raw squared returns should show autocorrelation. A good model removes it, so test the standardized squares uᵢ²/vᵢ.
Mixing units, such as using u² in %² and v in decimals.
Returns are quoted in percent but variances in the recursion are in decimals.
Fix: Convert everything to one unit before computing −ln(v) − u²/v.
Ignoring the constraint α + β < 1 or computing V_L when α + β ≥ 1.
Students plug into ω ÷ (1 − α − β) without checking the denominator.
Fix: Check persistence first. If α + β ≥ 1, there is no finite long-run variance and the model is not stationary.
Thinking maximum likelihood minimizes squared errors.
It is confused with OLS.
Fix: MLE maximizes the probability of the observed data under the model. The variance is not observed, so OLS does not apply directly.
Using the wrong number of restrictions in the LR test.
Students count parameters in the larger model rather than the constraints imposed.
Fix: Degrees of freedom equal the number of restrictions. EWMA from GARCH(1,1) imposes ω = 0 and α + β = 1, so 2.
Worked examples
Example 1
Two EWMA candidates, λ = 0.90 and λ = 0.95, are tested. The starting variance v₁ is 1 (%²) and the first return u₁ is 2%. The second return u₂ is 1.5%. Which λ gives the higher log-likelihood term for day 2? Use −ln(v) − u²/v.
Show the solution
- Find v₂ for λ = 0.90: 0.90 × 1 + 0.10 × 4 = 1.30.
- Find v₂ for λ = 0.95: 0.95 × 1 + 0.05 × 4 = 1.15.
- u₂² = 1.5² = 2.25.
- For λ = 0.90: −ln(1.30) − 2.25 ÷ 1.30 = −0.2624 − 1.7308 = −1.9931.
- For λ = 0.95: −ln(1.15) − 2.25 ÷ 1.15 = −0.1398 − 1.9565 = −2.0963.
- −1.9931 is larger than −2.0963.
Answer: λ = 0.90 gives the higher term (−1.9931 against −2.0963), so it fits better on this observation.
Example 2
A GARCH(1,1) model has log-likelihood −1,520.4 on 1,000 daily returns. The EWMA model, which sets ω = 0 and α + β = 1, has log-likelihood −1,526.0 on the same data. The 5% chi-square critical value with 2 degrees of freedom is 5.99. Which model do you prefer?
Show the solution
- EWMA is nested in GARCH(1,1) because it imposes two restrictions: ω = 0 and α + β = 1.
- LR = 2 × (−1,520.4 − (−1,526.0)) = 2 × 5.6 = 11.2.
- Compare with the critical value: 11.2 > 5.99.
- The restriction is rejected at the 5% level.
Answer: LR = 11.2 exceeds 5.99, so reject EWMA and prefer GARCH(1,1).
Exam tips
- Questions usually give a few days of data and ask you to compare likelihood values. Practice the −ln(v) − u²/v calculation until it takes a minute.
- Know what the test statistic is applied to: Ljung-Box goes on uᵢ²/vᵢ, and a large Q means the model is inadequate.
- Count restrictions, not parameters, for LR degrees of freedom. Remember EWMA is GARCH with ω = 0 and α + β = 1.
- When models differ in size, a plain log-likelihood comparison is a trap. Look for AIC, BIC or LR in the correct answer.
- Before using V_L, check α + β < 1. Questions often give values that violate it to test you.
Practice questions from Measuring and Monitoring Volatility
- Which statement about the parameters of a GARCH(1,1) model is correct?
- An analyst estimates daily volatility from five observed daily log returns: +1%, -2%, +3%, 0%, -2%. Assuming the true mean is zero, the anal…
- The daily log returns of a portfolio are assumed i.i.d. with a standard deviation of 1.2% per day. Using the square-root-of-time rule with 2…
- A risk analyst compares two volatility estimates for an equity index. The historical estimate uses 250 daily returns, each weighted equally.…
- A risk analyst compares two volatility estimates for an equity index. The 30-day historical volatility computed from daily returns is 14%, w…
Estimating GARCH Parameters and Model Checks: frequently asked questions
How does maximum likelihood work for volatility models?
You assume returns are normal with a variance given by the model, such as EWMA or GARCH. You compute the variance for each day, then pick the parameters that maximize the total log-likelihood of the observed returns. A solver does the search, and you evaluate the objective by hand.
How do I test if a GARCH model fits well?
Compute the standardized squared returns uᵢ²/vᵢ and test them for autocorrelation, for example with the Ljung-Box test. If there is no significant autocorrelation, the model has captured the volatility clustering. A large Q statistic means the fit is poor.
Why do we drop constants in the likelihood function for EWMA?
Terms like ln(2π) do not depend on λ, ω, α or β. They shift the value but not the location of the maximum. So the parameters that maximize the shortened objective are the same.
Can I compare GARCH models using log-likelihood alone?
Only if they have the same number of parameters. Otherwise use a likelihood ratio test for nested models, or AIC and BIC, where the lower value is preferred.