hist.r<- function(rend,classi) { ############################################################### # Crea un istogramma di una serie di rendimenti finanziari e # sovrappone ad esso la funzione di densità di una variabile normale ################################################################ # Input: # # rend = vettore T x 1 di rendimenti finanziari # classi = scalare che indica il numero di classi in cui deve essere # suddiviso il dominio delle serie per il calcolo della distribuzione # di frequenze # USO: istogramma.r(rend,classi) # rend<-as.matrix(rend) # si determina il max fra il max della serie e il valore assoluto del minimo # serve per determinare i limiti dell'asse x dell'istogramma massimo<-max(max(rend,na.rm=T),abs(min(rend,na.rm=T))) # grafico temporale dei rendimenti plot(rend,type="l") windows() # grafico ad istogrammi della distribuzione die frequenze della serie dei rend. hist(rend,breaks=classi,freq=F,xlim=c(-massimo,massimo),xlab="r_t",main="distribuzione rendimenti",col="blue") mu <- mean(rend,na.rm=T) # calcola la media campionaria sigma <- sqrt(var(rend,na.rm=T)) # calcola la scarto quadratico medio campioanrio x <- seq(-massimo, massimo, length=5000) # definisce i valori x della funzione di densità di prob y <- dnorm(x, mu, sigma) # calcola la densità di prob della normale lines(x, y, col = 2, lty = 2, lwd = 2) # sovrappone la funz di densità della normale all'istogramma library(sm) # carica la libreria "sm" per la stima kernel della distribuzione windows() boxplot(rend) # rappresenta il boxplot windows() sm.density(rend, model = "Normal",ylim=c(0,0.10),xlab="r_t") } rend<-rendimenti.r("bulgari") hist.r(rend$rt*100,50)