Webtudordimatematica

Come generare numeri casuali con distribuzione normale

In questo articolo ti parlo di come creare casualmente dei dati aventi distribuzione normale mediante il software R. Ti ho parlato della famosa curva normale o di Gauss in questo articolo. Cliccaci su se vuoi approfondire al riguardo.
In R, per generare casualmente dei dati che seguono la distribuzione normale devi prima specificare 3 cose:

  1. quanti valori vuoi ottenere: $n$
  2. la media 
  3. la deviazione standard

 

Qui di seguito le istruzioni R che vanno a settare questi valori. Come vedi ho scelto di generare 200 numeri con media 4 e deviazione standard 2.

n <- 200
media <- 4
dev.std <- 2
 

Il comando R per la generazione casuale di distribuzioni normali è rnorm al cui interno bisogna specificare i 3 oggetti appena creati:

dati <- rnorm(n, media, dev.std)
dati

 

In questo modo ho memorizzato l’output del comando rnorm nell’oggetto dati ed ecco il risultato se lo faccio stampare:

Numeri casuali con distribuzione normale

 

Riproducibilità del codice

Se hai lanciato le istruzioni che ti ho indicato sopra ti sarai accorto che i numeri generati sono diversi da quelli che ho ottenuto io. Questo accade perché R genera i numeri casuali in maniera random secondo dei parametri che vengono settati in quel specifico computer dove stiamo facendo girare lo script R. La scomodità sta nel fatto che se lo stesso codice viene eseguito da un'altra persona in un altro computer, verrà fuori un vettore dati diverso. Pensa ad esempio se dovessi consegnare il tuo codice al professore del corso di statistica con R: non riuscirebbe a generare i tuoi stessi dati perché eseguirebbe il codice in un'altra macchina che gli fornirebbe valori casuali differenti dai tuoi.

Il problema sta nel garantire la riproducibilità o replicabilità del codice R. Per farlo, basta lanciare rnorm preceduto dal comando set.seed in questo modo:

set.seed(1234)
dati <- rnorm(n, media, dev.std)

Dentro le parentesi del set.seed devi specificare un numero intero a piacere: questo serve per dire al computer di generare numeri casuali a partire dallo stesso seed (seme in inglese).

Il vettore dati generato è il seguente:Dati normali generati casualmente con il set.seed

Qualsiasi altra persona con qualsiasi altra macchina che eseguirà il codice con il set.seed, otterrà un vettore dati esattamente uguale a questo qui sopra. Prova per credere!

 

Visualizzare i dati casuali normali

Esistono diversi modi per graficare i dati così generati. Il più comodo e immediato è l'istogramma data anche la natura della variabile generata (variabili continua).

hist(dati,
     col = "#144471",
     xlab = "dati normali",
     ylab="Frequenza",
     main = "Istogramma dati normali")

 

Istogramma dei numeri casuali normali


Guarda il video tutorial con R che ho registrato.

 

Il quaderno degli appunti
Statistica e Probabilità

Tavola della distribuzione normale standard: come leggerla

La tavola della distribuzione normale standard ti permette di calcolare la probabilità a sinistra di un dato quantile o viceversa trovare il valore d
Analisi matematica

Calcolo delle derivate

La teoria dell'analisi matematica ci dice che, a norma di definizione, il calcolo della derivata di una funzione equivale al calcolo del limite del ra
Trigonometria

Teorema della corda, teorema delle proiezioni, teorema dei seni e dei coseni

Teorema della corda La misura di una corda di una circonferenza è uguale al prodotto tra la misura del diametro ed il seno di uno qualunque degli ang