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à

Coefficiente di correlazione di Pearson

Dati due variabili quantitative X e Y, si dice coefficiente di correlazione o covarianza normalizzata di X e Y il rapporto tra la covarianza e il prod
Trigonometria

Teorema del coseno o di Carnot

Il teorema del coseno (o di Carnot) è una conseguenza del teorema delle proiezioni (visto qui) e afferma che in un triangolo qualsiasi, il quadrato d
Trigonometria

Teorema delle proiezioni

Il teorema delle proiezioni dice che in un triangolo qualsiasi la misura di un lato è uguale alla somma dei prodotti di quelle degli altri due lati p