CommencezCommencez gratuitement

Ajuster une loi t aux données

Une loi t de Student convient généralement beaucoup mieux que la loi normale aux rendements quotidiens, hebdomadaires et mensuels.

Vous pouvez en ajuster une avec la fonction fit.st() du paquet QRM. Le modèle ajusté résultant contient un composant des estimations des paramètres, par.ests, que vous pouvez affecter à une liste tpars afin d'y stocker les valeurs de nu, mu et sigma pour une utilisation ultérieure :

> 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 t de Student aux rendements logarithmiques quotidiens de l'indice Dow Jones de 2008 à 2011 contenus dans djx. Ensuite, vous tracerez l'histogramme des données et superposerez une ligne rouge au graphique représentant la densité t ajustée. Les données djx et le paquet QRM ont été chargés pour vous.

Cette activité fait partie du cours

Gestion des risques quantitatifs en R

Voir le cours

Instructions de l’exercice

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

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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