CommencerCommencer gratuitement

Ajuster une loi t aux données

Une loi de Student (t) correspond généralement bien mieux aux rendements quotidiens, hebdomadaires et mensuels qu’une loi normale.

Vous pouvez en ajuster une avec la fonction fit.st() du package QRM. Le modèle ajusté comporte une composante d’estimations de paramètres par.ests que vous pouvez affecter à une liste tpars pour conserver les valeurs de nu, mu et sigma pour un usage ultérieur :

> tfit <- fit.st(ftse)
> tpars <- tfit$par.ests
> tpars
          nu           mu        sigma
2.949514e+00 4.429863e-05 1.216422e-02

Dans cet exercice, vous allez ajuster une loi de Student aux rendements logarithmiques quotidiens de l’indice Dow Jones sur 2008–2011, contenus dans djx. Vous tracerez ensuite l’histogramme des données et superposerez une courbe rouge représentant la densité t ajustée. Les données djx et le package QRM ont été chargés pour vous.

Cet exercice fait partie du cours

Gestion quantitative des risques avec R

Afficher le cours

Instructions

  • Utilisez fit.st() pour ajuster une loi de Student aux données de djx et affectez le résultat à tfit.
  • Affectez la composante par.ests du modèle ajusté à tpars, puis les éléments de tpars à nu, mu et sigma, respectivement.
  • Complétez hist() pour tracer l’histogramme de djx.
  • Complétez dt() pour calculer la densité t ajustée aux valeurs de djx et affectez-la à yvals. Reportez-vous à la vidéo pour cette équation.
  • Complétez lines() pour ajouter à l’histogramme de djx une courbe rouge représentant la densité t ajustée.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Fit a Student t distribution to djx
tfit <- ___(___)

# Define tpars, nu, mu, and sigma
tpars <- ___
nu <- ___
mu <- ___
sigma <- ___

# Plot a histogram of djx
hist(___, nclass = 20, probability = TRUE, ylim = range(0, 40))

# Compute the fitted t density at the values djx
yvals <- dt((___ - ___)/___, df = ___)/___

# Superimpose a red line to show the fitted t density
lines(___, yvals, col = "red")
Modifier et exécuter le code