Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
pionarie
1. Cenno sui metodi Monte Carlo
Le tecniche di simulazione, in statistica e in altri ambiti, sono fortemente legate al calcolo
automatico e agli elaboratori elettronici. Simulare un processo significa sperimentare lo
stesso processo in condizioni analoghe un gran numero di volte, rilevando ogni volta lo
stato finale del sistema. Se quest’ultimo è esprimibile da variabili numeriche, una prima
sintesi della simulazione è data, ad esempio, dalla media aritmetica degli stati e dalla
loro varianza. Questa tecnica prende il nome di metodo “Monte Carlo”, termine che fu
inizialmente utilizzato con riferimento alle dinamiche del gioco d’azzardo.
Gli studi di simulazione possono permetterci di apprezzare alcune delle proprietà
di distribuzioni campionarie ricavate per via teorica. Soprattutto, essi permettono di
valutare il comportamento di statistiche (funzioni di dati campionari), nel contesto del
principio del campionamento ripetuto, quando sia difficile o impossibile farlo per via
analitica. Il principio del campionamento ripetuto consiste nell’usare come riferimen-
to per l’inferenza la distribuzione campionaria di una statistica (di uno stimatore, in
particolare). Ad esempio, la stima della vera e ignota proporzione di pezzi difettosi in
un processo produttivo è data da θ̂ = y/n, dove y è il numero di pezzi difettosi e n è
la numerosità di un campione casuale di pezzi; essendo y una determinazione di una
variabile casuale, allora anche θ̂ = y/n lo è. Pertanto si adotta il criterio di valutare l’a-
deguatezza di θ̂ cosiderandolo come determinazione di una v.c. e studiando le proprietà
di tale variabile. Si può simulare dalla distribuzione campionaria di una statistica
• simulando l’estrazione dal campione, ovvero ottenendo una n-pla di valori y1 , . . . , yn ,
come determinazioni di una data v.a.;
• calcolando la statistica di un campione casuale di pezzi sul campione simulato;
• ripetendo i primi due passi un gran numero di volte, N.
Si ottiene cosı̀ un campione di ampiezza N dalla distribuzione campionaria della stati-
stica. La distribuzione campionaria della statistica di interesse dovrebbe, a rigore, essere
valutata con riferimento a tutti i possibili campioni, cosa palesemente impossibile nel
caso di popolazioni infinite, e quasi sempre impraticabile anche nel caso di popolazioni
finite. Per questa ragione ciò che si fa di solito è esaminare il valore della statistica per
un numero finito, ma molto ampio, di replicazioni di campioni. Si ottiene in questo
modo una descrizione (approssimata), detta di “Monte Carlo”, della sua distribuzio-
ne. Il numero di replicazioni sufficiente dipende dal problema in esame; di solito, per
semplici problemi, si pone N = 1000. Utilizzeremo questa tecnica per illustrare alcuni ri-
sultati teorici noti riguardanti la distribuzione della media campionaria e della varianza
campionaria. Tuttavia, come accennato in precedenza, gli studi di simulazione vengo-
no spesso utilizzati in problemi di inferenza riguardo statistiche campionarie per cui i
risultati teorici non sono noti o non sono applicabili perchè sono presenti condizioni
1
diverse da quelle teoriche, o se si riscontrano problemi nei dati (ad esempio, la ridotta
numerosità campionaria, la presenza di valori anomali, errori nelle assunzioni riguardo
il campionamento o la distribuzione della variabile di interesse nella popolazione).
2
1000 replicazioni (invece di infinite) esso sarà molto vicino ma non uguale. Si noti
che aumentando il numero di replicazioni l’approssimazione migliora.
• possiamo calcolare la varianza della media campionaria;
• possiamo ottenere il grafico della distribuzione dei dati simulati (un istogramma
con molti breaks o anche un density plot).
# CASO (i)
R <- 1000 #numero di replicazioni
n <- 30 #dimensione del campione
medie = vector(mode = "numeric", length = R)
for (i in 1:R) {
x <- rnorm(n)
medie[i] <- mean(x)
}
mean(medie)
## [1] 0.004520938
var(medie)
## [1] 0.03574498
Histogram of medie
2.0
1.5
Density
1.0
0.5
0.0
medie
3
Si consideri ora il caso di campioni tratti da una R(0, 1), anche di numerosità piccola
(n < 10). Che conclusioni possiamo trarre?
R <- 10000
medie = vector(mode = "numeric", length = R)
for (i in 1:R) {
x <- rexp(n, lambda)
medie[i] <- mean(x)
}
hist(medie, breaks = 30, prob = TRUE, main = " ")
# distribuzione teorica: Gamma(n, n*lambda)
curve(dgamma(x, n, n * lambda), type = "l", add = T)
# distribuzione approssimata: N(mu, sigma2)
curve(dnorm(x, mean = mu, sd = sqrt(sigma2)), col = 3, add = T, lwd = 2)
2.5
2.0
1.5
Density
1.0
0.5
0.0
medie
4
3. Distribuzione campionaria della varianza
Utilizziamo lo stesso schema di simulazione per verificare alcuni risultati teorici sulla
distribuzione campionaria della per una popolazione normale. Consideriamo un cam-
pione casuale X1 , X2 , . . . Xn da una gaussiana di media e varianza fissate (consideriamo
una numerosità non elevata). Valutiamo la distribuzione della varianza campionaria
∑in=1 ( Xi − X̄ )2
S2 =
n−1
che sappiamo essere uno stimatore non distorto della varianza della popolazione. Con-
frontiamo inoltre questa statistica con la statistica S2 = ∑in=1 ( Xi − X̄ )2 /n, che invece è
uno stimatore distorto di σ2 .
#numero di replicazioni
R <- 1000
#dimensione del campione
n <- 8
#parametri
mu<-5
sigma<-2
## [1] 3.96711
## [1] 3.471221
5
S2 S2nc
0.25
0.20
0.20
0.15
0.15
Density
Density
0.10
0.10
0.05
0.05
0.00
0.00
0 2 4 6 8 10 14 0 2 4 6 8 10
S2 S2nc
Nell’ipotesi che il modello della popolazione sia normale, sappiamo che la varian-
za campionaria S2 ha distribuzione di probabilità proporzionale a quella di una chi-
quadrato con n − 1 gradi di libertà:
σ2 2
S2 ∼ χ .
n − 1 n −1
σ2
Verifichiamo questo risultato, osservando che se Y ∼ χ2n−1 e X = n−1 Y, allora
n−1 n−1
f X (x) = fY x
σ2 σ2
6
0.20
0.15
densità
0.10
0.05
0.00
0 2 4 6 8 10 12 14
S2
Esercizi
1. Si conduca un piccolo studio di simulazione simile a quello visto nella Sezione
2. per valutare la distribuzione della media campionaria per un campione di
ampiezza n tratto da X ∼ N (µ, σ2 ), con diversi valori dei parametri. Si provi
anche a far variare il numero di replicazioni R. Si commentino i risultati.
2. Si definisca ora una funzione che attua lo studio Monte Carlo dell’esercizio 1.,
che abbia come argomenti R, n, µ e σ2 .
3. Si valuti la media e la distribuzione di S2 e Snc
2 al variare di n (n < 30) quando
7
Stimatori e loro proprietà, funzione di verosimiglianza
Stimatore 3: la media dei dati escludendo i due più piccoli e i due più grandi ottenendo
la media sfrondata (trimmed).
Per un confronto tra i primi due stimatori proposti potremmo descrivere le loro ca-
ratteristiche (la distribuzione, la media e l’errore quadratico medio) simulando molte
replicazioni di un campione da una N (µ, σ2 ). Poniamo n = 10 e fissiamo µ = 5 e σ2 = 4.
Lo studio Monte Carlo, come già osservato in precedenza, si realizza secondo i seguenti
passi:
I passi (i) e (ii) andranno ripetuti un elevato numero di volte: in questo modo si avranno
molte repliche dei valori della stima ottenuti applicando gli Stimatori 1 e 2 ai campioni
pseudo-casuali. Si noti che è possibile condurre lo studio di simulazione poiché sono
noti i valori dei parametri della distribuzione da cui si simula.
#numero di replicazioni
R=10000
#ampiezza del campione
n=10
#parametri
mu=5
sig2=4
8
{
y=rnorm(n=n,mean=mu,sd=sqrt(sig2))
stima1[i]=sum(y)/n #stimatore 1
stima2[i]=(max(y)+min(y))/2 #stimatore 2
}
mean(stima1)
## [1] 4.99568
var(stima1)
## [1] 0.3986426
mean((stima1-mu)^2) #MSE(T1)
## [1] 0.3986214
mean(stima2)
## [1] 5.003039
var(stima2)
## [1] 0.739404
mean((stima2-mu)^2) #MSE(T2)
## [1] 0.7393392
boxplot(cbind(stima1,stima2), main="")
9
8
6
4
2
stima1 stima2
Come si vede dal grafico lo Stimatore 1 è meno variabile e quindi è da preferire allo
Stimatore 2 (almeno per n=10), essendo molto vicina a zero la distrosione E( T ) − µ per
entrambi gli stimatori.
Dati contaminati. Si può procedere analogamente con gli altri stimatori e alla fine
dovremmo poter concludere che il migliore stimatore della media di una popolazione
gaussiana è proprio la media campionaria.
Si immagini ora che la nostra popolazione non rispecchi esattamente quello che ab-
biamo assunto. Crediamo di campionare da una popolazione gaussiana ma in realtà per
qualche motivo la popolazione contiene una piccola percentuale di valori (diciamo 1 su
100) che provengono da una diversa popolazione la cui media è molto più elevata. In
questo caso si parla di dati contaminati che si compongono di una parte prevalente e di
una parte contaminante di proporzione piccola e (in questo caso pari a 0.01).
Immaginiamo però che il nostro intento sia sempre quello di stimare la media del-
la gaussiana che ha generato la maggior parte dei dati. A tal fine si propongano lo
Stimatore 1 (x̄) e lo Stimatore 3 (media sfrondata).
Impostiamo un piccolo studio di simulazione in cui si genera un campione di n =
100 unità che provengano da una gaussiana di media µ = 5 e varianza σ2 = 9, con
probabilità 1 − e = 0.99, e da una gaussiana di media ξ = 60 e uguale varianza, con
probabilità pari a e = 0.01. Vediamo come generare dei dati contaminati in R:
10
xi=60
#varianza delle popolazioni
sig2 <- 9
#percentuale di contaminazione
epsilon=0.01
## [1] 1
#generiamo il campione
y <- c(rnorm(n1, mu, sqrt(sig2)), rnorm(n2, xi, sqrt(sig2)))
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
## [1] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
## [1] 10.5
11
perc.trimm <- 2/n
media.trimmR <- mean(y, trimm=perc.trimm)
media.trimmR
## [1] 10.5
for(i in 1:R)
{
n1 <- rbinom(1, size=n, prob=1-epsilon)
n2 <- n-n1
N2[i] <- n2
y <- c(rnorm(n1, mu, sqrt(sig2)), rnorm(n2, xi, sqrt(sig2)))
stimatore1[i] <- mean(y)
stimatore3[i] <- mean(y, trim=perc.trimm)
}
mean(stimatore1)
## [1] 5.562324
mean(stimatore3)
## [1] 5.122968
par(mfrow=c(1,2))
hist(stimatore1, prob=TRUE, breaks=30)
hist(stimatore3, prob=TRUE, breaks=30)
12
Histogram of stimatore1 Histogram of stimatore3
0.7
1.2
0.6
1.0
0.5
0.8
0.4
Density
Density
0.6
0.3
0.4
0.2
0.2
0.1
0.0
0.0
4 5 6 7 8 9 4 5 6 7 8
stimatore1 stimatore3
2. La funzione di verosimiglianza
Stima di massima verosimiglianza del parametro di una Bernoulliana.
R = 1000
n = 10
p = 0.3
p * (1 - p)/n
## [1] 0.021
13
pml = vector(mode = "numeric", length = R)
for (i in 1:R) {
y = rbinom(n, 1, p)
pml[i] = mean(y)
}
mean(pml)
## [1] 0.2937
var(pml)
## [1] 0.02061092
R = 1000
n = 100
p = 0.3
pml = vector(mode = "numeric", length = R)
for (i in 1:R) {
y = rbinom(n, 1, p)
pml[i] = mean(y)
}
mean(pml)
## [1] 0.30142
var(pml)
## [1] 0.002019203
14
Histogram of pml
10
8
6
Density
4
2
0
pml
1.76 1.44 1.66 0.99 6.34 0.97 8.51 5.27 7.06 10.78 3.34 6.53
Si ritiene plausibile che i guasti avvengano secondo un processo di Poisson. Si vuole sti-
mare il parametro λ che riguarda l’intensità di tale processo. Possiamo quindi ipotizzare
che i tempi siano determinazioni di una variabile casuale esponenziale il cui parametro
è appunto λ. La funzione di log-verosimiglianza per il campione è:
n n n
l (λ) = log L(λ) = log ∏ λe −λxi
= ∑ log(λe −λxi
) = n log λ − λ ∑ xi
i =1 i =1 i =1
1
da cui si ottiene λ̂SMV = .
x̄
x=c(1.76, 1.44, 1.66, 0.99, 6.34, 0.97, 8.51, 5.27, 7.06, 10.78, 3.34, 6.53)
15
n=length(dati)
n*log(lambda)-lambda*sum(dati)
}
seq.lambda=seq(0.01,1,length=500)
#calcoliamo la funzione per i valori della sequenza
llik=log.ver.exp(lambda=seq.lambda, dati=x)
plot(seq.lambda, llik, type="l", ylab="log-verosimiglianza",
xlab=expression(lambda), main="campione esponenziale")
campione esponenziale
−30
−35
log−verosimiglianza
−40
−45
−50
−55
16
Esercizi
1. Ripetere lo studio di simulazione proposto nella Sezione 1., riguardante gli
stimatori 1 e 2, per diversi valori di µ e per diverse numerosità campionarie.
2. Valutare il comportamento degli stimatori media aritmetica e media sfron-
data assumento dati contaminati con uno studio di simulazione analogo a
quello proposto nella Sezione 1., utilizzando diverse numerosità campionarie,
diverse percentuali di contaminazione e di trimming.
3. Verificare con uno studio di simulazione che la varianza dello stimatore me-
πS2
diana campionaria quando si campiona da una gaussiana
√
è pari a 2n per cui
l’errore standard è approssimativamente pari a √πs .
2n
17