here::here("code", "_common.R") |>
source()
# Load packages
if (!requireNamespace("pacman")) install.packages("pacman")
pacman::p_load(HistData)
61 La regressione verso la media
- comprendere il concetto di regressione verso la media.
- Leggere il capitolo Basic Regression di Statistical Inference via Data Science: A ModernDive into R and the Tidyverse (Second Edition).
- Leggere il capitolo Linear Statistical Models (Schervish & DeGroot, 2014).
61.1 Introduzione
Il concetto di regressione verso la media è stato introdotto da Francis Galton, un pioniere della statistica, mentre studiava la trasmissione ereditaria di tratti fisici, in particolare l’altezza. Galton osservò che, quando si confronta l’altezza dei padri con quella dei figli, i figli tendono ad essere più vicini alla media della popolazione rispetto ai loro padri. Questo fenomeno è noto come regressione verso la media.
Immaginiamo di avere un padre che è più alto della media della popolazione. Ci aspettiamo che suo figlio sia anch’esso più alto della media, ma non tanto quanto il padre. In altre parole, l’altezza del figlio “regredisce” parzialmente verso la media della popolazione. Lo stesso principio si applica ai padri più bassi della media: i loro figli tenderanno ad essere più bassi della media, ma non tanto quanto i padri.
Perché succede? Quando un padre è alto 75 pollici (mentre la media magari è 69.1), essere così alto potrebbe essere dovuto a molti fattori “eccezionali” combinati (genetici, ambientali, casuali). Il figlio, tuttavia, eredita solo una parte di quei fattori, e probabilmente avrà altri fattori (positivi o negativi) in modo casuale, cosicché la sua altezza si sposta verso la media della popolazione. Questo non vuol dire che il figlio sia basso: rimane comunque al di sopra della media, ma non raggiunge l’estremo del padre.
Il cuore statistico del fenomeno si trova nella correlazione tra due variabili (in questo caso, altezza del padre e altezza del figlio). Se la correlazione fosse 1 (perfetta), un padre alto in modo eccezionale avrebbe sempre un figlio proporzionalmente alto, senza “riavvicinarsi” alla media. Se invece la correlazione è minore di 1, come succede quasi sempre nel mondo reale, la relazione padre-figlio non è perfetta e vi è una certa variabilità.
Galton misurò in media una correlazione di circa 0.5 tra altezza paterna e altezza del figlio maschio. Questo valore implica che, se un padre si discosta di 2-3 deviazioni standard sopra la media, il figlio di solito ne recupererà una parte, ma non interamente.
61.1.1 I Dati di Galton
Esaminiamo il fenomeno della regressione verso la media usando i dati di Galton. Nel pacchetto HistData di R sono disponibili i dati originali raccolti da Galton, che includono informazioni sull’altezza di padri, madri, figli maschi e femmine. Per semplificare l’analisi, possiamo creare un dataset che include solo l’altezza del padre e l’altezza di un figlio maschio scelto casualmente da ogni famiglia:
Questo dataset contiene due colonne: father
(altezza del padre) e son
(altezza del figlio maschio). Calcolando la media e la deviazione standard delle altezze dei padri e dei figli, otteniamo:
I risultati mostrano che, in media, i padri e i figli hanno altezze simili, anche se le distribuzioni non sono identiche. Un grafico di dispersione (scatterplot) evidenzia una chiara tendenza: padri più alti tendono ad avere figli più alti:
galton_heights |>
ggplot(aes(father, son)) +
geom_point(alpha = 0.5)
61.1.2 Il Coefficiente di Correlazione
Per quantificare la relazione lineare tra l’altezza del padre e quella del figlio, utilizziamo il coefficiente di correlazione (indicato con \(r\) o \(\rho\)). La formula del coefficiente di correlazione è:
\[ \rho = \frac{1}{n}\sum_{i=1}^n \left(\frac{x_i - \mu_x}{\sigma_x}\right) \left(\frac{y_i - \mu_y}{\sigma_y}\right). \]
In R, possiamo calcolare la correlazione tra l’altezza del padre e quella del figlio con il seguente codice:
galton_heights |>
summarize(r = cor(father, son)) |>
pull(r)
#> [1] 0.4434
Nel nostro caso, la correlazione è circa 0.5. Questo valore positivo indica che padri più alti tendono ad avere figli più alti, ma la correlazione non è perfetta. Il coefficiente di correlazione varia tra -1 e 1, dove il valore assoluto misura la forza della relazione lineare.
61.1.3 Stime Condizionate: Previsioni basate sull’Altezza del Padre
Un modo per fare previsioni è chiedersi: “Se un padre è alto 72 pollici, quale sarà l’altezza media dei figli di tutti i padri di 72 pollici?” In termini statistici, questa è l’aspettativa condizionata \(\mathbb{E}(\text{altezza figlio} \mid \text{altezza padre} = 72)\).
- Se filtriamo i dati prendendo solo i padri di altezza 72 pollici, possiamo calcolare la media dell’altezza dei figli in quel sottogruppo.
- Tuttavia, questo metodo può essere instabile se il numero di osservazioni nel sottogruppo è piccolo.
Ad esempio:
Questo ci dà la stima condizionata dell’altezza media del figlio di un padre di 72 pollici. Spesso, questa media è maggiore della media generale dei figli, ma meno di quanto il padre (72 pollici) sia sopra la media dei padri. Questo fenomeno è noto come regressione verso la media.
61.2 Visualizzare la Regressione verso la Media
Ripetiamo ora lo stesso procedimento per tutti i dati. Stratifichiamo i dati raggruppadoli in base a valori simili di altezza del padre. Calcoliamo poi in ogni gruppo la media dell’altezza del figlio:
galton_heights |>
mutate(father_strata = factor(round(father))) |>
group_by(father_strata) |>
summarize(avg_son = mean(son)) |>
ggplot(aes(x = father_strata, y = avg_son)) +
geom_point()
Nel grafico risultante, ogni punto rappresenta la media dei figli corrispondenti a un determinato “strato” di padri. Se tracciamo anche la retta di regressione, noteremo che i punti si dispongono in modo approssimativamente lineare: a padri più alti corrispondono figli più alti, ma in media meno alti di quanto ci si aspetterebbe se la correlazione fosse perfetta.
61.3 La Retta di Regressione
Per capire perché, dal punto di vista statistico, si verifica la regressione verso la media, consideriamo il modello di regressione lineare semplice che prevede l’altezza del figlio \(\hat{Y}\) in base all’altezza del padre \(X\):
\[ \hat{Y} = \beta_0 + \beta_1 X. \]
- Quando standardizziamo i dati (cioè trasformiamo sia \(X\) sia \(Y\) in “punti z”, sottraendo la media e dividendo per la deviazione standard), la pendenza \(\beta_1\) della retta di regressione diventa esattamente la correlazione \(\rho\).
- Se \(\rho = 1\), la pendenza sarebbe 1 e non ci sarebbe alcun “riavvicinamento” alla media: i valori alti di \(X\) corrisponderebbero a valori altrettanto alti di \(Y\).
- Se \(\rho < 1\), la pendenza risulta minore di 1 e ciò significa che, partendo da un valore molto alto (o molto basso) di \(X\), la nostra previsione di \(Y\) si colloca in una posizione parzialmente più vicina alla media di \(Y\) rispetto alla distanza del padre dalla media di \(X\). È proprio questo il fenomeno della regressione verso la media.
61.3.1 Forma non standardizzata
Nella forma originale (non standardizzata), i coefficienti si calcolano con:
\[ \beta_1 = \rho \,\frac{\sigma_Y}{\sigma_X}, \quad \beta_0 = \mu_Y - \beta_1 \,\mu_X, \]
dove:
- \(\mu_X, \mu_Y\) sono le medie di \(X\) (altezza del padre) e \(Y\) (altezza del figlio);
- \(\sigma_X, \sigma_Y\) sono le rispettive deviazioni standard;
- \(\rho\) è la correlazione tra \(X\) e \(Y\).
61.3.2 Forma standardizzata
Nella forma standardizzata, le deviazioni standard di \(X\) e \(Y\) sono pari a 1 e i coefficienti di regressione diventano:
\[ \beta_1 = \rho, \quad \beta_0 = 0, \]
dato che le medie di \(X\) e \(Y\) sono uguali a zero.
61.3.3 Regressione Verso la Media
Ne segue dunque che, se la correlazione tra le variabili è minore di 1, si verificherà necessariamente il fenomeno della regressione verso la media.
In R, possiamo stimare la retta di regressione tramite la stima dei minimi quadrati:
fit <- lm(son ~ father, data = galton_heights)
fit$coefficients
#> (Intercept) father
#> 37.6324 0.4559
La funzione lm
calcola gli stimatori \(\hat{\beta}_0\) e \(\hat{\beta}_1\) che minimizzano la somma dei quadrati degli scarti:
\[ \text{RSS} = \sum_{i} \left[y_i - (\beta_0 + \beta_1 x_i)\right]^2. \]
Possiamo quindi tracciare la retta sullo scatterplot dei dati:
galton_heights |>
ggplot(aes(father, son)) +
geom_point(alpha = 0.5) +
geom_abline(
slope = coef(fit)[2],
intercept = coef(fit)[1],
color = "blue"
)
Se standardizziamo i dati, la pendenza della retta di regressione diventa uguale alla correlazione:
galton_heights |>
ggplot(aes(scale(father), scale(son))) +
geom_point(alpha = 0.5) +
geom_abline(
slope = coef(fit_2)[2],
intercept = coef(fit_2)[1],
color = "blue"
)
Il punto cruciale è ricordare che la pendenza \(\beta_1\) è proporzionale alla correlazione \(\rho\). Se la correlazione non è perfetta (\(\rho < 1\)), allora qualsiasi previsione basata su \(X\) (ad esempio, l’altezza del padre) risulterà meno estrema di quanto sia \(X\) stesso rispetto alla sua media. In altre parole, un padre altissimo (molto sopra la media) avrà, in media, un figlio sopra la media ma non altrettanto estremo, “regredendo” parzialmente verso il centro della distribuzione.
In sintesi: la correlazione imperfetta (\(\rho < 1\)) è la ragione principale per cui un valore estremo di \(X\) (ad esempio, un padre molto alto) porta a un valore \(\hat{Y}\) che è sì superiore (o inferiore) alla media, ma meno estremo del padre. Questo “ritorno verso il centro” è ciò che chiamiamo regressione verso la media.
61.4 Riflessioni Conclusive
- Galton scoprì il fenomeno della regressione verso la media studiando l’altezza di padri e figli: un padre più alto della media tenderà ad avere un figlio più alto della media, ma non tanto quanto ci si aspetterebbe se la correlazione fosse perfetta.
- Questo concetto è generale e applicabile in molti contesti. Spesso, un apparente “calo” o “miglioramento” delle prestazioni è semplicemente un effetto statistico di regressione verso la media, non un effetto causale.
- La retta di regressione minimizza la somma dei quadrati degli errori e la sua pendenza è legata alla correlazione \(\rho\) e al rapporto tra le deviazioni standard \(\sigma_Y\) e \(\sigma_X\).
In sintesi, la regressione verso la media è un fenomeno statistico che spiega perché, in media, i valori estremi tendono a “ritornare” verso la media della popolazione. Questo concetto è fondamentale per interpretare correttamente i dati e evitare errori di interpretazione causati da correlazioni imperfette.
Informazioni sull’Ambiente di Sviluppo
sessionInfo()
#> R version 4.4.2 (2024-10-31)
#> Platform: aarch64-apple-darwin20
#> Running under: macOS Sequoia 15.3.1
#>
#> Matrix products: default
#> BLAS: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRblas.0.dylib
#> LAPACK: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.12.0
#>
#> locale:
#> [1] C/UTF-8/C/C/C/C
#>
#> time zone: Europe/Rome
#> tzcode source: internal
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] HistData_0.9-1 thematic_0.1.6 MetBrewer_0.2.0 ggokabeito_0.1.0
#> [5] see_0.10.0 gridExtra_2.3 patchwork_1.3.0 bayesplot_1.11.1
#> [9] psych_2.4.12 scales_1.3.0 markdown_1.13 knitr_1.49
#> [13] lubridate_1.9.4 forcats_1.0.0 stringr_1.5.1 dplyr_1.1.4
#> [17] purrr_1.0.4 readr_2.1.5 tidyr_1.3.1 tibble_3.2.1
#> [21] ggplot2_3.5.1 tidyverse_2.0.0 rio_1.2.3 here_1.0.1
#>
#> loaded via a namespace (and not attached):
#> [1] generics_0.1.3 stringi_1.8.4 lattice_0.22-6 hms_1.1.3
#> [5] digest_0.6.37 magrittr_2.0.3 evaluate_1.0.3 grid_4.4.2
#> [9] timechange_0.3.0 fastmap_1.2.0 rprojroot_2.0.4 jsonlite_1.9.1
#> [13] mnormt_2.1.1 cli_3.6.4 rlang_1.1.5 munsell_0.5.1
#> [17] withr_3.0.2 tools_4.4.2 parallel_4.4.2 tzdb_0.4.0
#> [21] colorspace_2.1-1 pacman_0.5.1 vctrs_0.6.5 R6_2.6.1
#> [25] lifecycle_1.0.4 htmlwidgets_1.6.4 pkgconfig_2.0.3 pillar_1.10.1
#> [29] gtable_0.3.6 glue_1.8.0 xfun_0.51 tidyselect_1.2.1
#> [33] rstudioapi_0.17.1 farver_2.1.2 htmltools_0.5.8.1 nlme_3.1-167
#> [37] labeling_0.4.3 rmarkdown_2.29 compiler_4.4.2