La campana di Gauss

Una prima occhiata alla distribuzione gaussiana.

Author

Corrado Caudek

First Published

October 1, 2021

Per iniziare, carichiamo i pacchetti necessari.

library("tidyverse", warn.conflicts = FALSE)
library("gghighlight")

1 Funzione gaussiana

Una funzione gaussiana è una funzione della seguente forma: \[ f(x) = \frac{1}{\sigma\sqrt{2\pi}} \exp\left( -\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^{\!2}\,\right) \] laddove \(\mu\) e \(\sigma\) sono i paramemtri della distribuzione.

In R la formula diventa:

gauss <- function(x, mu, sigma) {
  1 / sqrt(2 * pi * sigma^2) * exp(-(x - mu)^2 / (2 * sigma^2)) 
}

L’area è unitaria, per qualsiasi valore \(\mu\) e \(\sigma\):

area <- integrate(
  gauss, 
  mu = 100,
  sigma = 15,
  lower = -Inf, 
  upper = Inf)$value
area
[1] 1
area <- integrate(
  gauss, 
  mu = 0,
  sigma = 1,
  lower = -Inf, 
  upper = Inf)$value
area
[1] 1

Il fatto che la distribuzione gaussiana dipende dai parametri \(\mu\) e \(\sigma\) significa che, al variare dei parametri, varia la forma della curva di densità: la variazione di \(\mu\) trasla la curva di densità in maniera rigida sull’asse \(\mathbb{R}\); la variazione di \(\sigma\) allarga o appiattisce la curva di densità.

Disegnamo la funzione di densità usando, come parametri, \(\mu\) = 100 e \(\sigma\) = 15 – ovvero, specifichiamo la distribuzione del QI.

mu <- 100
sigma <- 15
x <- seq(55, 145, length.out = 1e3)
plot(x, gauss(x, mu, sigma), type = 'l', ylab = "Densità")

Lo stesso risultato si ottene con

plot(x, dnorm(x, 100, 15), type = 'l', ylab = "Densità")

1.1 La funzione di ripartizione

curve(
  pnorm(x), 
  xlim = c(-3.5, 3.5), 
  ylab = "Probabilità", 
  main = "Funzione cumulativa della normale standardizzata"
)

1.2 Quantili e densità

Definiamo i seguenti quantili e calcoliamo la densità corrispondente per il caso della normale standardizzata:

quants <- c(-1.96, 0, 1.96)
gauss(quants, 0, 1)
[1] 0.05844094 0.39894228 0.05844094

Lo stesso risultato si ottene con

dnorm(quants, 0, 1)
[1] 0.05844094 0.39894228 0.05844094

2 La probabilità

Calcoliamo ora le probabilità, ovvero le aree. Iniziamo con la probabilità \(P(X < 115)\) per il QI.

df <- data.frame(x = seq(55, 165, length.out = 100)) %>% 
  mutate(y = dnorm(x, mean=100, sd=15))

ggplot(df, aes(x, y)) + 
  geom_area(fill = "sky blue") + 
  gghighlight(x < 115) +
  labs(
    x = "QI",
    y = "Densità"
  ) +
  papaja::theme_apa()

Il risultato cercato è

integrate(
  gauss, 
  mu = 100,
  sigma = 15,
  lower = -Inf, 
  upper = 115)
0.8413447 with absolute error < 3.8e-06

ovvero

pnorm(115, 100, 15)
[1] 0.8413447

Consideriamo ora l’area sottesa alla funzione di densità nell’intervallo \(\mu \pm 1.96 \sigma\).

df <- data.frame(x = seq(55, 165, length.out = 100)) %>% 
  mutate(y = dnorm(x, mean=100, sd=15))

ggplot(df, aes(x, y)) + 
  geom_area(fill = "sky blue") + 
  gghighlight(x > 100 - 1.96*15 & x < 100 + 1.96*15) +
  labs(
    x = "QI",
    y = "Densità"
  ) +
  papaja::theme_apa()

La probabilità cercata è

integrate(
  gauss, 
  mu = 100,
  sigma = 15,
  lower = 100 - 1.96*15, 
  upper = 100 + 1.96*15)
0.9500042 with absolute error < 1e-11

ovvero

pnorm(100 + 1.96 * 15, 100, 15) - pnorm(100 - 1.96 * 15, 100, 15)
[1] 0.9500042

3 Il valore atteso

Il valore atteso di una variabile aleatoria continua \(X\) è \[ \mathbb{E}(X) = \mu_X = \int xf_X(x)dx. \]

Per calcolare il valore numerico dell’integrale con R definiamo la seguente funzione:

g <- function(x) x * gauss(x, 100, 15)

Possiamo ora usare integrate() per trovare la soluzione che cerchiamo:

EX <- integrate(
  g,
  lower = -Inf,
  upper = Inf
)$value
EX
[1] 100

4 La varianza

La varianza di una variabile aleatoria continua \(X\) è \[ var(X) = \mu_X = \int (x - \mu)^2f_X(x)dx. \] In R definiamo la seguente funzione

h <- function(x) x^2 * gauss(x, 100, 15)

e poi calcoliamo l’integrale

VarX <- integrate(
  h,
  lower = -Inf,
  upper = Inf
)$value - EX^2 
VarX
[1] 225
sqrt(VarX)
[1] 15

5 L’interpretazione dei parametri

In conclusione, la distribuzione gaussiana dipende da due parametri: \(\mu\) e \(\sigma^2\). Tali parametri corrispondono al valore atteso (cioè alla media) e alla varianza (cioè alla dispersione dei valori attorno al massimo della curva) della distribuzione.