Webtudordimatematica

Come generare numeri casuali con distribuzione normale

Eserciziari di Matematica Generale, Analisi I e II, Statistica, Fisica e Algebra Lineare...

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à

Indice di connessione di Mortara

L'indice di Mortara è un indice utilizzato per misurare il grado di connessione o associazione tra due variabili X e Y qualitative nominali o categor
Statistica e Probabilità

Indice di connessione Chi-quadrato

Il Chi-quadrato è l'indice di connessione più utilizzato in statistica per valutare l'associazione tra due variabili categoriali o qualitative. Ad
Statistica e Probabilità

Indice V di Cramer

L'indice di Cramer è un indice di connessione normalizzato usato per stabilire il grado di associazione tra due variabili qualitative nominali X eY.