library(ggplot2)
library(lattice)
library(mosaic)
library(gridExtra)
Parametri media e deviazione standard della popolazione
#caricare dataset.RData
N=142
y=dati
mu=with(y,mean(gdpPercap))
mu=round(mu,digits=2)
mu
## [1] 11680.07
sigma=with(y,sd(gdpPercap))
sigma=round(sigma,digits=2)
sigma
## [1] 12859.94
histogram( ~ gdpPercap, data=y, n=30,col="red",main="Distribuzione variabile Y",xlab="Y")
Distribuzione asimmetrica, non Normale
Estraiamo campioni casuali semplici di dimensione n=50 e calcoliamo la media degli elementi estratti
Sappiamo che per n>30 la distribuzione della media campionaria risulta ben approssimata dalla curva Normale.
Risulta evidente come la simulazione conferma quanto affermato dalla teoria
Fissato n, sappiamo a quanto ammonta l’errore standard delle nostre stime
n=50
f=n/N
ES_ccs_n50=sqrt((1-f)*sigma^2/n)
ES_ccs_n50
## [1] 1463.874
Calcoliamo l’intervallo di valori (centrato rispetto a mu) che contiene il 95% delle stime
alpha=0.05
#percentile della curva Normale
z_alpha=qnorm(1-(alpha/2))
z_alpha=round(z_alpha,digits=2);
z_alpha
## [1] 1.96
#estremo inferiore
Llim<-mu-z_alpha*ES_ccs_n50
round(Llim)
## [1] 8811
#estremo superiore
Ulim<-mu+z_alpha*ES_ccs_n50
round(Ulim)
## [1] 14549
Le linee blu corrispondono ai valori 8811 e 14549. Quante stime sono al di fuori dell’intervallo?
set.seed(3)
lista=c(1:N)
n=50;f=n/N;
#estrazione campione
s<-sample(lista,n)
#media campionaria
media<-round(mean(y$gdpPercap[s]),digits=2)
media
## [1] 10445.08
#errore standard stimatore (varianza nota)
es=sqrt((1-f)*sigma^2/n)
es=round(es,digits=2)
es
## [1] 1463.87
#Calcolo intervallo di confidenza
IC=c(media-z_alpha*es,media+z_alpha*es)
round(IC,2)
## [1] 7575.89 13314.27
Prova a ripetere il calcolo con campioni diversi: circa 1 volta su 20 l’IC non contiene mu
La varianza si stima sul campione e inoltre la z viene sostituita con la t di Student con n-1 gdl
# il percentile della t di Student si calcola come segue
tint<-qt(1-alpha/2,n-1)
tint=round(tint,2);tint
## [1] 2.01
set.seed(4)
#estrazione campione
s<-sample(lista,n)
#media campionaria
media<-round(mean(y$gdpPercap[s]),digits=2)
media
## [1] 10759.51
#errore standard stimatore (varianza incognita che infatti si stima sul campione)
es=sqrt((1-f)*var(y$gdpPercap[s])/n)
es=round(es,digits=2)
es
## [1] 1329.75
IC=c(media-tint*es,media+tint*es)
round(IC,2)
## [1] 8086.71 13432.31