p <- 0.5
x <- c(0, 1)
f_x <- c(1 - p, p)
plot(x, f_x,
type = "h", # per il diagramma ad aste (h = "height")
col = "red", # colore delle aste (rosso)
lwd = 2) # ampiezza delle linee (linewidth)Modello di Bernoulli, modello binomiale e teorema del limite centrale
Alla fine di questa puntata…
- dovreste avere imparato le funzioni disponibili nel package `gtools` per estrarre campioni ordinati e non ordinati usando un processo di estrazioni con e senza rimessa
- dovreste essere in grado di estrarre campioni usando un identificativo generico o effettuando un campionamento a partire dai valori di una variabile osservata
- dovreste essere in grado di gestire la struttura dati convertendolo in maniera opportuna
Prima di cominciare… prerequisiti
Sul tuo PC ipotizzo che tu abbia installato sia R che RStudio. Se ti servono istruzioni al riguardo consulta la pagina con le istruzioni disponibile a questo link.
Cosa utilizzeremo in questa lezione?
Le funzioni sfruttate in queste lezioni sono disponibile nell’installazione base di R.
Il più semplice dei modelli…
Il modello di Bernoulli può essere facilmente replicato in R utilizzando i comandi base:
Ma può essere ottenuto anche sfruttando le funzioni disponibili per il modello binomiale impostando a 1 l’argomento size (numero di prove):
plot(x, dbinom(x, size = 1, prob = p),
type = "h", col = "red", lwd = 2,
# per personalizzare le etichette dei due assi
xlab = "X", ylab = "f(X = x)")Se si cambia il valore di p si vede come il modello di Bernoulli presenta un’asimmetria a destra nel caso in cui p è minore di 0.5:
plot(x, dbinom(x, size = 1, prob = 0.2),
type = "h", col = "red", lwd = 2, xlab = "x", ylab = "f(X = x)")oppure destra nel caso in cui p è maggiore di 0.5:
plot(x, dbinom(x, size = 1, prob = 0.7),
type = "h", col = "red", lwd = 2, xlab = "X", ylab = "f(X = x)")Il modello binomiale
La distribuzione di probabilità di un modello binomiale può essere calcolata sfruttando la funzione dbinom:
# fisso i due parametri del modello binomiale
n <- 10
p <- 0.5
# supporto della v.c. binomiale
x <- seq(0, n, 1)
# distribuzione di probabilità
f_x <- dbinom(x, size = n, prob = p)
# rappresentazione grafica
plot(x, f_x, type = "h", col = "red", lwd = 2)Dal grafico precedente si osserva come fissando il parametro \(\pi = 0.5\) (argomento prob = 0.5), la variabile casuale binomiale è simmetrica. Nel caso di n pari (argomento size) la distribuzione è unimodale, per la presenza del valore x = 0. Se invece n è dispari, allora la distribuzione diventa bimodale, come nel seguente esempio (sempre simmetrica fissando π=0.5):
n <- 11
p <- 0.5
x <- seq(0, n, 1)
f_x <- dbinom(x, size = n, prob = p)
plot(x, f_x, type = "h", col = "red", lwd = 2)Per valori di \(\pi\) inferiori a 0.5 la distribuzione è asimmetrica destra: è più facile “perdere” che vincere, per cui la maggior parte dei valori è concentrata sulla sinistra della distribuzione (basso numero di successi). Di seguito il caso per \(n = 10\) e \(\pi = 0.1\):
n <- 10
p <- 0.1
x <- seq(0, n, 1)
f_x <- dbinom(x, size = n, prob = p)
plot(x, f_x, type = "h", col = "red", lwd = 2)Naturalmente la situazione è speculare nel caso in cui \(\pi\) è maggiore di 0.5:
n <- 10
p <- 0.9
x <- seq(0, n, 1)
f_x <- dbinom(x, size = n, prob = p)
plot(x, f_x, type = "h", col = "red", lwd = 2)Quando n cresce, anche per valori di \(\pi\) diversi da \(0.5\) la distribuzione binomiale la situazione cambia, come mostrato nel seguente grafico:
n <- 50
pi <- 0.1
x <- seq(0, n, 1)
f_x <- dbinom(x, size = n, prob = p)
plot(x, f_x, type = "h", col = "red", lwd = 2)Si tratta dell’effetto del teorema del limite centrale, di cui qualche dettaglio in più nel paragrafo seguente.
Il teorema del limite centrale (versione di De Moivre-Laplace)
La convergenza della distribuzione binomiale (v.c. discreta) ad un modello normale (v.c. continua) è la prima versione del teorema del limite centrale, nota in letteratura anche come versione di De Moivre-Laplace. La variabile casuale binomiale è infatti una somma di \(n\) v.c. di Bernoulli di parametro \(\pi\) e il teorema del limite centrale ci dice che una qualunque combinazione lineare di variabili casuali indipendenti ed identicamente distribuite (la somma è una combinazione lineare) converge ad una distribuzione normale i cui parametri sono regolati da quanto noto circa il valore atteso e la varianza di una combinazione lineare.
Per mostrare l’effetto dei due parametri \(n\) e \(\pi\) conviene ricorrere ad una comparazione grafica tra modelli in cui i valori dei due parametri cambiano. La convergenza assicurata dal teorema del limite centrale dipende dalla simmetria delle variabili casuali messe in combinazioni (la Bernoulli nel nostro caso) e dal numero di variabili (il parametro \(n\) della binomiale alla normale nel nostro caso).
I grafici seguenti permettono di apprezzare l’effetto della simmetria delle variabili messe in combinazione sulla convergenza al modello normale (abbiamo visto sopra come il valore di \(\pi\) determina la forma della v.c. di Bernoulli):
# per una veloce comparazione di quattro situazioni differenti conviene
# impostare la finestra grafica ad una griglia di 2 righe e 2 colonne
par(mfrow = c(2, 2))
#
# fisso il valore di n
n <- 20
# e calcolo il supporto del modello binomiale
x <- seq(0, n, 1)
#
# uso un valore di pi-greco che va da 0.4 (situazione non troppo asimmetrica)
p <- 0.4
f_x <- dbinom(x, size = n, prob = p)
plot(x, f_x, type = "h", col = "red", lwd = 2,
# sfrutto la funzione expression per inserire simboli matematici
# nel titolo (per dettagli vedi ?plotmath)
main = expression(paste("X ~ binom(", n == 20, ", ", pi == 0.4, ")")))
#
p <- 0.3
f_x <- dbinom(x, size = n, prob = p)
plot(x, f_x, type = "h", col = "red", lwd = 2,
main = expression(paste("X ~ binom(", n == 20, ", ", pi == 0.3, ")")))
#
p <- 0.2
f_x <- dbinom(x, size = n, prob = p)
plot(x, f_x, type = "h", col = "red", lwd = 2,
main = expression(paste("X ~ binom(", n == 20, ", ", pi == 0.2, ")")))
# fino a 0.1 (maggiore asimmetria)
p <- 0.1
f_x <- dbinom(x, size = n, prob = p)
plot(x, f_x, type = "h", col = "red", lwd = 2,
main = expression(paste("X ~ binom(", n == 20, ", ", pi == 0.1, ")")))Fissando invece il valore di \(\pi\), i grafici seguenti mostrano l’effetto dell’aumentare di \(n\) sulla convergenza della binomiale al modello normale:
# imposto la finestra grafica ad una griglia 2 x 2
par(mfrow = c(2, 2))
# fisso il valore del parametro pi-greco della Bernoulli (forte asimmetria)
p <- 0.1
#
# e parto da un valore di n pari a 30
n <- 30
x <- seq(0, n, 1)
f_x <- dbinom(x, size = n, prob = p)
plot(x, f_x, type = "h", col = "red", lwd = 2,
main = expression(paste("X ~ binom(", n == 30, ", ", pi == 0.1, ")")))
#
n <- 50
x <- seq(0, n, 1)
f_x <- dbinom(x, size = n, prob = p)
plot(x, f_x, type = "h", col = "red", lwd = 2,
main = expression(paste("X ~ binom(", n == 50, ", ", pi == 0.1, ")")))
#
n <- 70
x <- seq(0, n, 1)
f_x <- dbinom(x, size = n, prob = p)
plot(x, f_x, type = "h", col = "red", lwd = 2,
main = expression(paste("X ~ binom(", n == 70, ", ", pi == 0.1, ")")))
#
# fino ad un valore di n pari a 90
n <- 90
x <- seq(0, n, 1)
f_x <- dbinom(x, size = n, prob = p)
plot(x, f_x, type = "h", col = "red", lwd = 2,
main = expression(paste("X ~ binom(", n == 90, ", ", pi == 0.1, ")")))# una volta terminata la rappresentazione grafica conviene reimpostare la finestra grafica ad una griglia 1 x 1
par(mfrow = c(1, 1))