Q-Q plot per valutare la normalità
Il quantile-quantile plot (Q-Q plot) è un metodo grafico più efficace per mettere in evidenza la non normalità. In generale, un Q-Q plot confronta i quantili dei dati con i quantili di una distribuzione di riferimento; se i dati provengono da una distribuzione dello stesso tipo (a fattore di scala e posizione vicino), dovresti osservare una linea ragionevolmente dritta. Ricorda che i gradi di libertà (df) indicano il numero di valori o osservazioni che possono influenzare il sistema con cui stai lavorando.
Nel video, hai visto come generare 1000 punti da una normale con la funzione rnorm(), come usare qqnorm() per creare il Q-Q plot e qqline() per aggiungere una linea retta di riferimento:
> data <- rnorm(1000, mean = 3, sd = 2)
> qqnorm(data)
> qqline(data)
In questo esercizio creerai un Q-Q plot dei log-return del Dow Jones in djx rispetto alla distribuzione normale di riferimento, che aggiungerai come guida visiva. Confronterai poi il grafico con insiemi di dati simulati da distribuzioni normale, t di Student e uniforme generati con le funzioni rnorm(), rt() e runif(). La distribuzione t verrà trattata più avanti in questo capitolo.
Se i dati provengono da una distribuzione normale, i punti dovrebbero essere vicini alla linea rossa (anche se può esserci qualche deviazione alle estremità).
Ancora una volta, djx è già stato caricato nel tuo workspace.
Questo esercizio fa parte del corso
Gestione del rischio quantitativa in R
Istruzioni dell'esercizio
- Crea un Q-Q plot di
djxrispetto alla normale conqqnorm()e aggiungi una linea rossa conqqline()ecol = "red"per valutare se il grafico è lineare. - Calcola la lunghezza di
djxconlength()e assegnala all'oggetton. - Genera
nvariabili normali standard conrnorm()e assegnale ax1. Crea un Q-Q plot dix1rispetto alla normale e aggiungi una linea rossa come prima. - Genera
nvariabili t di Student con 4 gradi di libertà e assegnale ax2(questo è già stato fatto per te). Crea un Q-Q plot dix2rispetto alla normale e aggiungi una linea rossa. - Genera
nvariabili uniformi e assegnale ax3(questo è già stato fatto per te). Crea un Q-Q plot dix3rispetto alla normale e aggiungi una linea rossa.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Make a Q-Q plot of djx and add a red line
___(___)
___(___, ___)
# Calculate the length of djx as n
n <- ___
# Generate n standard normal variables, make a Q-Q plot, add a red line
x1 <- ___(___)
___(___)
___(___, ___)
# Generate n Student t variables, make a Q-Q plot, add a red line
x2 <- rt(n, df = 4)
___(___)
___(___, ___)
# Generate n standard uniform variables, make a Q-Q plot, add red line
x3 <- runif(n)
___(___)
___(___, ___)