Inizia subitoInizia gratis

Adattare una distribuzione t ai dati

Una distribuzione t di Student in genere si adatta molto meglio ai rendimenti giornalieri, settimanali e mensili rispetto a una distribuzione normale.

Puoi crearne una usando la funzione fit.st() del pacchetto QRM. Il modello stimato risultante ha un componente dei parametri stimati par.ests che può essere assegnato a una lista tpars per memorizzare i valori di nu, mu e sigma da usare in seguito:

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

In questo esercizio adatterai una distribuzione t di Student ai rendimenti logaritmici giornalieri dell'indice Dow Jones dal 2008 al 2011 contenuti in djx. Poi traccerai un istogramma dei dati e sovrapporrai una linea rossa al grafico che mostri la densità t stimata. I dati djx e il pacchetto QRM sono già stati caricati per te.

Questo esercizio fa parte del corso

Gestione del rischio quantitativa in R

Visualizza corso

Istruzioni dell'esercizio

  • Usa fit.st() per adattare una distribuzione t di Student ai dati in djx e assegna i risultati a tfit.
  • Assegna il componente par.ests del modello stimato a tpars e gli elementi di tpars a nu, mu e sigma, rispettivamente.
  • Completa hist() per tracciare un istogramma di djx.
  • Completa dt() per calcolare la densità t stimata ai valori di djx e assegnala a yvals. Fai riferimento al video per questa formula.
  • Completa lines() per aggiungere una linea rossa all'istogramma di djx che mostri la densità t stimata.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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")
Modifica ed esegui il codice