Valuta con questo script (o in altro modo)
la probabilità che un fenomeno casuale con distribuzione
gaussiana di media 1 e scarto quadratico medio 2 abbia
una uscita compresa tra −2 e 3.
Genera con questo script
qualche centinaio di uscite di una variabile casuale gaussiana
di media 1 e scarto quadratico medio 2, rappresentane
la distribuzione con opportuno software e calcola la frequenza relativa
con cui esse cadono in
Confronta (e discuti) i valori ottenuti nei due modi.
Con il primo script proposto ottengo:
0.77453754512 se a=-2 b=3 m=1 sigma=2
Col secondo posso generare ad esempio 1000 valori:
Traccio l'istogramma di questi valori con quest'altro script ottenendo un istogramma simile al seguente, che ha un evidente andamento gaussiano:
Le frequenze che cadono tra -2 e 3 sono in tutto 76+157+193+206+148.
(76+157+193+206+148)/1000 = 0.78 = 78%.
C'è un'ottima corrispondenza tra
77.453...% e 78%.
Per altri commenti: Limiti in probabilità neGli Oggetti Matematici.
Nota. Se non avessi conosciuto (o non avessi avuto
a disposizione) tecniche di integrazione della gaussiana avrei
potevo usare uno script per calcolare la probabilità cercata (e valutarne la precisione):
eccolo (qui:
limiti in probabilità
una spiegazione del funzionamento), ottenendo, per es.:
n=100000 77.199% +/- 0.39802120561447635%
n=50000 77.194% +/- 0.5629332850326653%
n=10000 76.49% +/- 1.2722475275578797%
Con R avrei ottenuto:
s <- 1; m <- 2
f <- function(x) dnorm(x,mean=m,sd=s)
integrate(f, -2,3)
# 0.7745375
Per quanto riguarda le uscite sperimentali (generabili con questo file) posso ottenere
esiti come i seguenti (analizzati con R: ho generato 1000 dati li ho messi
in memoria, poi li ho caricati da questa, ma potevo anche metterli in un file):
dati <- scan(file="clipboard") # Read 1000 items summary(dati) # Min. 1st Qu. Median Mean 3rd Qu. Max. # -4.9860 -0.3779 0.9785 1.0240 2.4900 7.5030 boxplot(dati,horizontal=TRUE, range=0) dev.new() hist(dati,probability=TRUE) mean(dati); sd(dati) # 1.023688 2.058485 f <- function(x) dnorm(x,mean=mean(dati),sd=sd(dati)) curve(f,add=TRUE) # metto la scala per vedere meglio la curva hist(dati,probability=TRUE,ylim=c(0,0.2)) curve(f,add=TRUE)
Per valutare la frequenza relativa con cui le uscite cadono in [-2,3) posso procedere in vari modi. Riferendosi al caso delle 1000 uscite posso ad es. procedere così:
j <- 0; for (i in 1:length(dati)) if(dati[i]<3 & dati[i] >= -2) j <- j+1 j/length(dati)*100 # 76.1