# # # # # # # # n = 7, sigma = 2 rdata<-c() # prendiamo una popolazione di riferimento Normale con parametri mu<-10 sigma<-2 # generiamo 10000 campioni di grandezza n = 7 casuali indipendenti: for (i in 1:10000){ rdata<-cbind(rdata,rnorm(7,mu,sigma)) } dim(rdata) # calcoliamo le varianze in ogni campione estratto dalla popolazione: VaR<-apply(rdata,2,var) # calcoliamo la statistica (n-1)/sigma^2*VaR, distribuita come un Chi-quadro con n-1 gdl: VaR_Chisq_6<-(7-1)/sigma^2*VaR # parte grafico hist(VaR_Chisq_6,col="gray70",border="white",lwd=2,ylim=c(0,0.17),prob=TRUE,breaks=100) x<-0:30 curve(dchisq(x,df=6),add=TRUE,col="blue",lwd=2) # si osservi come la distribuzione sia sovrapponibile ad un Chi-quadro con 6 gradi di libertà # # # # # # # # n = 7, sigma = 4 rdata<-c() # prendiamo una popolazione di riferimento Normale con parametri mu<-10 sigma<-2 # generiamo 10000 campioni di grandezza n = 7 casuali indipendenti: for (i in 1:10000){ rdata<-cbind(rdata,rnorm(7,mu,sigma)) } dim(rdata) # calcoliamo le varianze in ogni campione estratto dalla popolazione: VaR<-apply(rdata,2,var) # calcoliamo la statistica (n-1)/sigma^2*VaR, distribuita come un Chi-quadro con n-1 gdl: VaR_Chisq_6<-(7-1)/sigma^2*VaR # parte grafico dev.new() hist(VaR_Chisq_6,col="gray90",border="black",lwd=2,ylim=c(0,0.17),prob=TRUE,breaks=100) x<-0:30 curve(dchisq(x,df=6),add=TRUE,col="blue",lwd=2) # si osservi come la distribuzione sia sovrapponibile ad un Chi-quadro con 6 gradi di libertà # # # # # # # # n = 20, sigma = 4 # vediamo ora lo stesso esempio ma con meno campioni, sui quali calcoleremo i limiti dell'intervallo di fiducia al 95%. # Con un grafico cercheremo di individuare quanti intervalli su un totale di 200 non contengono il valore atteso sigma^2= 16 (linea nera). rdata<-c() mu<-10 sigma<-4 # generiamo 200 campioni di grandezza n = 20 casuali indipendenti: for (i in 1:200){ rdata<-cbind(rdata,rnorm(20,mu,sigma)) } dim(rdata) VaR<-apply(rdata,2,var) VaR_Chisq_19<-(20-1)/sigma^2*VaR dev.new() hist(VaR_Chisq_19,col="gray90",border="black",lwd=2,ylim=c(0,0.17),prob=TRUE,breaks=20) x<-0:30 curve(dchisq(x,df=19),add=TRUE,col="blue",lwd=2) # si osservi come la distribuzione sia sovrapponibile ad un Chi-quadro con 19 gradi di libertà # ora in ciascuno dei 200 campioni di grandezza n = 20 calcoliamo l'intervallo di fiducia per la varianza campionaria # troviamo i valori che nella distribuzione Chi-quadro appropriata (n-1 = 19) delimitano le due code con p = 0.025 ciascuna: # Vedere tabella allegata, dove si trovano anche le code di sinistra. chi_UP<-qchisq(p=0.025,df=19,lower.tail=FALSE) # coda di destra p= 0.025 chi_LOW<-qchisq(p=0.975,df=19,lower.tail=FALSE) # coda di destra p=0.975 # iniziamo ora a costruire i limiti dell'intervallo per ciascuno dei 200 campioni indipendenti estratti: ci95UP<-c() ci95Down<-c() for(i in 1:length(VaR)){ ci95UP<-cbind(ci95UP, 1/chi_LOW*(20-1)*VaR[i] ) ci95Down<-cbind(ci95Down, 1/chi_UP*(20-1)*VaR[i] ) } ci95<-rbind(ci95Down,ci95UP) # Disegnamo gli intervalli dei 200 campioni e contiamo quanti non contengono il valore atteso sigma^2= 16 (linea nera). # Dividendo questo numero (linee blue) per 200 troveremo circa 0.05 (per un intervallo al 95%). plot(1:length(VaR),ylim=c(0,40),type="n") abline(h=sigma^2) for(i in 1:length(VaR)){ if(ci95[1,i]>sigma^2|ci95[2,i]