L’azienda Neonatal Health Solutions desidera creare un modello
statistico in grado di prevedere con precisione il peso dei neonati alla
nascita, basandosi su variabili cliniche raccolte da tre ospedali. Il
progetto mira a migliorare la gestione delle gravidanze ad alto rischio,
ottimizzare le risorse ospedaliere e garantire migliori risultati per la
salute neonatale.
Il progetto si inserisce all’interno di un contesto di crescente
attenzione verso la prevenzione delle complicazioni neonatali. La
possibilità di prevedere il peso alla nascita dei neonati rappresenta
un’opportunità fondamentale per migliorare la pianificazione clinica e
ridurre i rischi associati a nascite problematiche, come parti prematuri
o neonati con basso peso. Di seguito, i principali benefici che questo
progetto porterà all’azienda e al settore sanitario:
Miglioramento delle previsioni cliniche.
Ottimizzazione delle risorse ospedaliere.
Prevenzione e identificazione dei fattori di rischio.
Valutazione delle pratiche ospedaliere.
Supporto alla pianificazione strategica.
Per costruire il modello predittivo, abbiamo raccolto dati su
2500 neonati provenienti da tre ospedali. Le variabili raccolte
includono:
Età della madre: Misura dell’età in anni.
Numero di gravidanze: Quante gravidanze ha avuto la madre.
Fumo materno: Un indicatore binario (0=non fumatrice, 1=fumatrice).
Durata della gravidanza: Numero di settimane di gestazione.
Peso del neonato: Peso alla nascita in grammi.
Lunghezza e diametro del cranio: Lunghezza del neonato e diametro craniale, misurabili anche durante la gravidanza tramite ecografie.
Tipo di parto: Naturale o cesareo.
Ospedale di nascita: Ospedale 1, 2 o 3.
Sesso del neonato: Maschio (M) o femmina (F).
L’obiettivo principale è identificare quali di queste variabili sono più predittive del peso alla nascita, con un focus particolare sull’impatto del fumo materno e delle settimane di gestazione, che potrebbero indicare nascite premature.
Caricamento del dataset “neonati.csv” in un dataframe R denominato df e visualizzazione dell’intestazione in formato tabella per verificarne il caricamento.
| Anni.madre | N.gravidanze | Fumatrici | Gestazione | Peso | Lunghezza | Cranio | Tipo.parto | Ospedale | Sesso |
|---|---|---|---|---|---|---|---|---|---|
| 26 | 0 | 0 | 42 | 3380 | 490 | 325 | Nat | osp3 | M |
| 21 | 2 | 0 | 39 | 3150 | 490 | 345 | Nat | osp1 | F |
| 34 | 3 | 0 | 38 | 3640 | 500 | 375 | Nat | osp2 | M |
| 28 | 1 | 0 | 41 | 3690 | 515 | 365 | Nat | osp2 | M |
| 20 | 0 | 0 | 38 | 3700 | 480 | 335 | Nat | osp3 | F |
| 32 | 0 | 0 | 40 | 3200 | 495 | 340 | Nat | osp2 | F |
Esaminazione della struttura del dataframe per identificare: il tipo di ciascuna variabile, la presenza di eventuali anomalie o codifiche non appropriate e di valori mancanti o incoerenti al fine di assicurare la qualità dei dati utilizzati.
## 'data.frame': 2500 obs. of 10 variables:
## $ Anni.madre : int 26 21 34 28 20 32 26 25 22 23 ...
## $ N.gravidanze: int 0 2 3 1 0 0 1 0 1 0 ...
## $ Fumatrici : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Gestazione : int 42 39 38 41 38 40 39 40 40 41 ...
## $ Peso : int 3380 3150 3640 3690 3700 3200 3100 3580 3670 3700 ...
## $ Lunghezza : int 490 490 500 515 480 495 480 510 500 510 ...
## $ Cranio : int 325 345 375 365 335 340 345 349 335 362 ...
## $ Tipo.parto : chr "Nat" "Nat" "Nat" "Nat" ...
## $ Ospedale : chr "osp3" "osp1" "osp2" "osp2" ...
## $ Sesso : chr "M" "F" "M" "M" ...
Il dataset contiene 2500 osservazioni,
## Anni.madre N.gravidanze Fumatrici Gestazione Peso Lunghezza
## 0 0 0 0 0 0
## Cranio Tipo.parto Ospedale Sesso
## 0 0 0 0
Il dataset non contiene valori nulli.
## [1] Anni.madre N.gravidanze Fumatrici Gestazione Peso
## [6] Lunghezza Cranio Tipo.parto Ospedale Sesso
## <0 rows> (or 0-length row.names)
Il dataset non contiene valori duplicati.
Caricamento delle librerie necessarie per condurre l’analisi.
library(dplyr)
library(kableExtra)
library(corrplot)
library(car)
library(broom)
library(ggplot2)
library(plotly)
2.1 Analisi Preliminare: nella prima fase, esploreremo le
variabili attraverso un’analisi descrittiva per comprenderne la
distribuzione e identificare eventuali outlier o anomalie.
Inoltre si saggeranno le seguenti ipotesi con i test adatti:
In alcuni ospedali si fanno più parti cesarei.
La media del peso e della lunghezza di questo campione di neonati sono significativamente uguali a quelle della popolazione.
Le misure antropometriche sono significativamente diverse tra i due sessi.
| Anni.madre | N.gravidanze | Gestazione | Peso | Lunghezza | Cranio | |
|---|---|---|---|---|---|---|
| Min. : 0.00 | Min. : 0.0000 | Min. :25.00 | Min. : 830 | Min. :310.0 | Min. :235 | |
| 1st Qu.:25.00 | 1st Qu.: 0.0000 | 1st Qu.:38.00 | 1st Qu.:2990 | 1st Qu.:480.0 | 1st Qu.:330 | |
| Median :28.00 | Median : 1.0000 | Median :39.00 | Median :3300 | Median :500.0 | Median :340 | |
| Mean :28.16 | Mean : 0.9812 | Mean :38.98 | Mean :3284 | Mean :494.7 | Mean :340 | |
| 3rd Qu.:32.00 | 3rd Qu.: 1.0000 | 3rd Qu.:40.00 | 3rd Qu.:3620 | 3rd Qu.:510.0 | 3rd Qu.:350 | |
| Max. :46.00 | Max. :12.0000 | Max. :43.00 | Max. :4930 | Max. :565.0 | Max. :390 |
| Variabile | N_outlier | Valori_outlier |
|---|---|---|
| Peso | 69 | 1370, 1340, 4680, 1500, 1850, 1560, 1280, 1750, 4600, 1285, 1550, 1410, 1900, 1720, 1980, 1390, 1450, 1970, 1190, 2000, 830, 1615, 1960, 1770, 1750, 1170, 2040, 1980, 4600, 4900, 1840, 1620, 1280, 1280, 4810, 2040, 4620, 1500, 2000, 990, 4760, 1800, 1430, 1950, 1970, 900, 1780, 4580, 4930, 4700, 4650, 4720, 1780, 1180, 1890, 1140, 1600, 1300, 930, 1750, 2000, 4690, 1580, 1170, 4720, 1690, 980, 930, 1730 |
| Lunghezza | 59 | 390, 400, 410, 405, 420, 420, 360, 430, 400, 410, 560, 380, 420, 390, 405, 360, 430, 310, 390, 430, 390, 420, 410, 420, 370, 430, 430, 410, 385, 390, 560, 315, 420, 340, 410, 430, 430, 380, 325, 420, 420, 410, 400, 430, 355, 370, 410, 380, 355, 410, 425, 400, 370, 430, 565, 405, 320, 345, 430 |
| Cranio | 48 | 298, 382, 287, 273, 285, 280, 390, 384, 295, 276, 382, 274, 289, 295, 386, 390, 277, 280, 272, 254, 297, 385, 295, 275, 266, 383, 390, 292, 292, 293, 278, 253, 277, 390, 381, 270, 267, 290, 276, 235, 294, 299, 298, 290, 273, 290, 265, 245 |
| Gestazione | 67 | 34, 33, 34, 30, 34, 34, 31, 34, 33, 28, 32, 28, 34, 34, 32, 33, 33, 31, 32, 34, 33, 33, 33, 33, 29, 34, 28, 32, 31, 33, 34, 34, 33, 30, 33, 34, 32, 29, 34, 29, 33, 31, 31, 32, 25, 32, 33, 34, 34, 33, 31, 32, 27, 33, 30, 28, 30, 32, 33, 34, 30, 33, 31, 27, 26, 31, 33 |
| Anni.madre | 13 | 13, 45, 43, 44, 44, 43, 14, 46, 1, 0, 14, 44, 44 |
Si può notare quindi come le variabili numeriche del dataset neonatale mostrano distribuzioni complessivamente regolari e coerenti con dati clinici reali, pur presentando un numero non trascurabile di outlier (soprattutto per peso, lunghezza, cranio e settimane di gestazione) che riflettono la naturale variabilità biologica e la presenza di casi estremi come prematurità o neonati macrosomici. L’assenza di valori mancanti o duplicati conferma inoltre una buona qualità del dataset, rendendolo idoneo per le successive analisi inferenziali e per la costruzione del modello predittivo del peso neonatale.
In seguito a quanto emerso dall’analisi preliminare possiamo saggiare
l’ipotesi che in alcuni ospedali si fanno più parti cesarei utlizzando
il test di chi-quadrato. Considerate le due variabili categoriche:
Tipo.parto (Nat / Ces) e Ospedale (Osp1 / osp2 / osp3), l’obiettivo è
verificare se la frequenza dei parti cesarei dipende dall’ospedale.
L’ipotesi nulla \(H_0\) è che la proporzione di parti
cesarei è la stessa nei tre ospedali e quindi non c’è associazione tra
ospedale e tipo di parto.
L’ipotesi alternativa
\(H_1\) è che la proporzione di parti cesarei è diversa in
almeno un ospedale e quindi esiste un’associazione tra ospedale e tipo
di parto.
##
## Pearson's Chi-squared test
##
## data: tab
## X-squared = 1.0972, df = 2, p-value = 0.5778
| Ospedale | Cesareo (n) | Naturale (n) | Cesareo (%) | Naturale (%) |
|---|---|---|---|---|
| osp1 | 242 | 574 | 0.297 | 0.703 |
| osp2 | 254 | 595 | 0.299 | 0.701 |
| osp3 | 232 | 603 | 0.278 | 0.722 |
In base ai risultati del test del chi-quadrato, in particolare al
p-value = 0.5778 > 0.05, non si rifiuta l’ipotesi nulla H_0 e quindi
non ci sono differenze significative tra gli ospedali.
Saggiamo l’ipotesi successiva, ovvero che la media del peso e della lunghezza di questo campione di neonati sono significativamente uguali a quelle della popolazione, utilizzando il Test-t per singolo campione e assumendo (da linee guida cliniche) che il peso medio della popolazione sia pari a 3300 g e che la lunghezza media della popolazione sia pari a 500 mm. L’ipotesi nulla H_0 prevede che il peso campione sia uguale al peso della popolazione e che la lunghezza campione sia uguale alla lunghezza della popolazione.
##
## One Sample t-test
##
## data: df$Peso
## t = -1.516, df = 2499, p-value = 0.1296
## alternative hypothesis: true mean is not equal to 3300
## 95 percent confidence interval:
## 3263.490 3304.672
## sample estimates:
## mean of x
## 3284.081
##
## One Sample t-test
##
## data: df$Lunghezza
## t = -10.084, df = 2499, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 500
## 95 percent confidence interval:
## 493.6598 495.7242
## sample estimates:
## mean of x
## 494.692
| Variabile | Media_campione | Media_popolazione | Differenza | T_value | P_value | Decisione |
|---|---|---|---|---|---|---|
| Peso | 3284.081 | 3300 | -15.9192 | -1.5160 | 0.1296 | Non rifiuto H0 |
| Lunghezza | 494.692 | 500 | -5.3080 | -10.0841 | 0.0000 | Rifiuto H0 |
In base ai risultati ottenuti dal t-test è possibile concludere che per la media del peso dei neonati non si rifiuta l’ipotesi nulla, con un p-value = 0.1296 > 0.05 e quindi la media del campione non differisce significativamente da quella della popolazione. Invece per la lunghezza media del neonati l’ipotesi nulla viene rifutata, con un p-value = 0 < 0.05 e quindi la media del campione è significativamente diversa da quella della popolazione.
La terza e ultima ipotesi da saggiare dice che le misure antropometriche (Peso, Lunghezza, Cranio) sono significativamente diverse tra i due sessi. Si utilizza anche in questo caso un Test-t per campioni indipendenti. La formulazione delle ipotesi ne prevede una nulla H_0: La media della variabile è uguale nei due sessi e una alternativa H_1: La media della variabile è diversa nei due sessi.
##
## Welch Two Sample t-test
##
## data: Peso by Sesso
## t = -12.106, df = 2490.7, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group F and group M is not equal to 0
## 95 percent confidence interval:
## -287.1051 -207.0615
## sample estimates:
## mean in group F mean in group M
## 3161.132 3408.215
##
## Welch Two Sample t-test
##
## data: Lunghezza by Sesso
## t = -9.582, df = 2459.3, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group F and group M is not equal to 0
## 95 percent confidence interval:
## -11.929470 -7.876273
## sample estimates:
## mean in group F mean in group M
## 489.7643 499.6672
##
## Welch Two Sample t-test
##
## data: Cranio by Sesso
## t = -7.4102, df = 2491.4, p-value = 1.718e-13
## alternative hypothesis: true difference in means between group F and group M is not equal to 0
## 95 percent confidence interval:
## -6.089912 -3.541270
## sample estimates:
## mean in group F mean in group M
## 337.6330 342.4486
| Variabile | Media_M | Media_F | T_value | P_value | Decisione |
|---|---|---|---|---|---|
| Peso | 3408.2154 | 3161.1322 | -12.1061 | 0 | Rifiuto H0 |
| Lunghezza | 499.6672 | 489.7643 | -9.5820 | 0 | Rifiuto H0 |
| Cranio | 342.4486 | 337.6330 | -7.4102 | 0 | Rifiuto H0 |
In seguito all’analisi condotta è emerso che l’ipotesi nulla viene rifiutata in tutti e tre i casi essendo il p-value < 0.05 per tutte e tre le misure. Quindi le misure antropometriche sono significativamente diverse tra maschi e femmine. In particolare i maschi hanno un peso medio (differenza media di circa 247 g), una lunghezza media e una circonferenza cranica media significativamente maggiori rispetto alle femmine.
2.2 Creazione del modello di regressione: verrà sviluppato un
modello di regressione lineare multipla che includa tutte le variabili
rilevanti. In questo modo, potremo quantificare l’impatto di ciascuna
variabile indipendente sul peso del neonato ed eventuali interazioni. Ad
esempio, ci aspettiamo che una maggiore durata della gestazione
aumenterebbe in media il peso del neonato.
Calcolo della correlazione tra le variabili e visualizzazione della matrice al fine di indentificare la presenza di eventuali forti correlazioni. Si considerano a tal fine le variabili numeriche (Anni.madre, N.gravidanze, Gestazione, Peso, Lunghezza, Cranio).
| Anni.madre | N.gravidanze | Gestazione | Peso | Lunghezza | Cranio | |
|---|---|---|---|---|---|---|
| Anni.madre | 1.000 | 0.381 | -0.136 | -0.022 | -0.063 | 0.016 |
| N.gravidanze | 0.381 | 1.000 | -0.101 | 0.002 | -0.060 | 0.039 |
| Gestazione | -0.136 | -0.101 | 1.000 | 0.592 | 0.619 | 0.461 |
| Peso | -0.022 | 0.002 | 0.592 | 1.000 | 0.796 | 0.705 |
| Lunghezza | -0.063 | -0.060 | 0.619 | 0.796 | 1.000 | 0.603 |
| Cranio | 0.016 | 0.039 | 0.461 | 0.705 | 0.603 | 1.000 |
Si nota come la matrice di correlazione evidenzia relazioni forti e positive tra le misure antropometriche (peso, lunghezza, cranio): neonati più lunghi e con cranio più ampio tendono ad avere anche un peso maggiore. Una correlazione moderata con la durata della gestazione indica che che più settimane di gestazione portano a una maggiore crescita fetale, sia in peso che in dimensioni corporee. Queste osservazioni confermano la coerenza fisiologica del dataset. Le variabili materne (età e numero di gravidanze) mostrano invece correlazioni molto deboli, suggerendo un impatto minimo sulle caratteristiche antropometriche neonatali. Le poche correlazioni negative (es. Anni.madre – Gestazione = −0.136) sono deboli e non indicano relazioni clinicamente significative. Nel complesso, non emergono problemi di multicollinearità tali da compromettere la costruzione del modello di regressione multipla.
Al fine di verificare la normalità della variabile Peso si effettua uno Shapito-Wilk test
##
## Shapiro-Wilk normality test
##
## data: df$Peso
## W = 0.97066, p-value < 2.2e-16
Finora abbiamo riscontrato una distribuzione del peso asimmetrica, la presenza di outlier e una coda sinistra più lunga (ovvero con valori molto bassi). E’ quindi corretto aspettarsi come esito del test un p-value < 0.05 e il risultato lo conferma. Si rifiuta quindi l’ipotesi nulla H_0 per cui il peso sarebbe normalmente distribuito: il peso non è normalmente distribuito. Questo, tuttavia, non è un problema per la regressione lineare, perché la regressione richiede la normalità dei residui, non della variabile dipendente e con n = 2500, il teorema del limite centrale rende il modello robusto.
Creazione e rappresentazione del modello di regressione lineare multipla inserendo tutte le variabili rilevanti per spiegare il peso del neonato: Gestazione (settimane), Lunghezza, Cranio, Anni.madre, N.gravidanze, Fumatrici (0/1), Tipo.parto (Nat/Ces), Ospedale (osp1/osp2/osp3), Sesso (M/F).
##
## Call:
## lm(formula = Peso ~ Gestazione + Lunghezza + Cranio + Anni.madre +
## N.gravidanze + Fumatrici + Tipo.parto + Ospedale + Sesso,
## data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1124.40 -181.66 -14.42 160.91 2611.89
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -6738.4762 141.3087 -47.686 < 2e-16 ***
## Gestazione 32.5696 3.8187 8.529 < 2e-16 ***
## Lunghezza 10.2945 0.3007 34.236 < 2e-16 ***
## Cranio 10.4707 0.4260 24.578 < 2e-16 ***
## Anni.madre 0.8921 1.1323 0.788 0.4308
## N.gravidanze 11.2665 4.6608 2.417 0.0157 *
## Fumatrici -30.1631 27.5386 -1.095 0.2735
## Tipo.partoNat 29.5254 12.0844 2.443 0.0146 *
## Ospedaleosp2 -11.2095 13.4379 -0.834 0.4043
## Ospedaleosp3 28.0958 13.4957 2.082 0.0375 *
## SessoM 77.5409 11.1776 6.937 5.08e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 273.9 on 2489 degrees of freedom
## Multiple R-squared: 0.7289, Adjusted R-squared: 0.7278
## F-statistic: 669.2 on 10 and 2489 DF, p-value: < 2.2e-16
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | -6738.4762 | 141.3087 | -47.6862 | 0.0000 |
| Gestazione | 32.5696 | 3.8187 | 8.5290 | 0.0000 |
| Lunghezza | 10.2945 | 0.3007 | 34.2364 | 0.0000 |
| Cranio | 10.4707 | 0.4260 | 24.5777 | 0.0000 |
| Anni.madre | 0.8921 | 1.1323 | 0.7879 | 0.4308 |
| N.gravidanze | 11.2665 | 4.6608 | 2.4173 | 0.0157 |
| Fumatrici | -30.1631 | 27.5386 | -1.0953 | 0.2735 |
| Tipo.partoNat | 29.5254 | 12.0844 | 2.4433 | 0.0146 |
| Ospedaleosp2 | -11.2095 | 13.4379 | -0.8342 | 0.4043 |
| Ospedaleosp3 | 28.0958 | 13.4957 | 2.0818 | 0.0375 |
| SessoM | 77.5409 | 11.1776 | 6.9372 | 0.0000 |
Una volta creato il modello completo calcoliamo il VIF per la verifica della multicollinearità:
| GVIF | Df | GVIF_adj | |
|---|---|---|---|
| Gestazione | 1.6958 | 1 | 1.3022 |
| Lunghezza | 2.0858 | 1 | 1.4442 |
| Cranio | 1.6308 | 1 | 1.2770 |
| Anni.madre | 1.1875 | 1 | 1.0897 |
| N.gravidanze | 1.1864 | 1 | 1.0892 |
| Fumatrici | 1.0074 | 1 | 1.0037 |
| Tipo.parto | 1.0042 | 1 | 1.0021 |
| Ospedale | 1.0041 | 2 | 1.0010 |
| Sesso | 1.0406 | 1 | 1.0201 |
Da questi risultati emerge che le uniche variabili con un VIF un po’ più alto (ma comunque molto basso) sono: Peso, Lunghezza e Cranio e sono moderatamente correlate tra loro, con correlazioni tra 0.46 e 0.80. I valori delle altre variabili dimostrano che queste sono indipendenti tra loro e non introducono alcuna ridondanza nel modello. In generale comunque tutti i VIF di tutte sono molto bassi e di molto inferiori a 5, e anche le variabili più correlate (Lunghezza, Cranio, Gestazione) mostrano valori assolutamente accettabili.
2.2 Attraverso tecniche di selezione del modello, come la
minimizzazione del criterio di informazione di Akaike (AIC) o di Bayes
(BIC), selezioneremo il modello più parsimonioso, eliminando le
variabili non significative. Verranno considerati anche modelli con
interazioni tra le variabili e possibili effetti non lineari.
Selezione del modello tramite AIC (stepwise), usando il metodo stepAIC, che prova aggiunte e rimozioni di variabili per minimizzare l’AIC.
##
## Call:
## lm(formula = Peso ~ Gestazione + Lunghezza + Cranio + N.gravidanze +
## Tipo.parto + Ospedale + Sesso, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1113.18 -181.16 -16.58 161.01 2620.19
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -6707.4293 135.9438 -49.340 < 2e-16 ***
## Gestazione 31.9909 3.7896 8.442 < 2e-16 ***
## Lunghezza 10.3086 0.3004 34.316 < 2e-16 ***
## Cranio 10.4922 0.4254 24.661 < 2e-16 ***
## N.gravidanze 12.3619 4.3325 2.853 0.00436 **
## Tipo.partoNat 29.2803 12.0817 2.424 0.01544 *
## Ospedaleosp2 -11.0227 13.4363 -0.820 0.41209
## Ospedaleosp3 28.6408 13.4886 2.123 0.03382 *
## SessoM 77.4412 11.1756 6.930 5.36e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 273.9 on 2491 degrees of freedom
## Multiple R-squared: 0.7287, Adjusted R-squared: 0.7278
## F-statistic: 836.3 on 8 and 2491 DF, p-value: < 2.2e-16
Secondo AIC, queste variabili aggiungono un piccolo miglioramento predittivo, sufficiente a giustificare la loro presenza.
Selezione del modello tramite BIC. Questo modello penalizza di più i modelli complessi, quindi tende a selezionare modelli più parsimoniosi.
##
## Call:
## lm(formula = Peso ~ Gestazione + Lunghezza + Cranio + N.gravidanze +
## Sesso, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1149.44 -180.81 -15.58 163.64 2639.72
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -6681.1445 135.7229 -49.226 < 2e-16 ***
## Gestazione 32.3321 3.7980 8.513 < 2e-16 ***
## Lunghezza 10.2486 0.3006 34.090 < 2e-16 ***
## Cranio 10.5402 0.4262 24.728 < 2e-16 ***
## N.gravidanze 12.4750 4.3396 2.875 0.00408 **
## SessoM 77.9927 11.2021 6.962 4.26e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 274.6 on 2494 degrees of freedom
## Multiple R-squared: 0.727, Adjusted R-squared: 0.7265
## F-statistic: 1328 on 5 and 2494 DF, p-value: < 2.2e-16
Secondo BIC, queste variabili non migliorano abbastanza il modello da giustificare la loro inclusione.
Quindi il criterio AIC ha selezionato un modello più complesso, includendo anche Tipo.parto e Ospedale, mentre il BIC ha scelto un modello più parsimonioso che mantiene solo le variabili con contributo realmente sostanziale. Entrambi i modelli confermano che le misure antropometriche (Lunghezza, Cranio) e la durata della gestazione sono i principali predittori del peso neonatale, con un contributo significativo anche del sesso del neonato.
Consideriamo ora le interazioni tra variabili. Quelle più sensate, in base ai dati a disposizione, sono: Gestazione × Fumatrici (il fumo potrebbe influenzare la crescita fetale in modo diverso a seconda della durata della gravidanza), Sesso × Gestazione (maschi e femmine potrebbero crescere con pendenze diverse), Lunghezza × Cranio (due misure antropometriche fortemente correlate).
##
## Call:
## lm(formula = Peso ~ Gestazione + Fumatrici + Sesso + Lunghezza +
## Cranio + N.gravidanze + Tipo.parto + Ospedale + Gestazione:Fumatrici +
## Lunghezza:Cranio, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1115.65 -181.51 -13.13 160.77 2843.89
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.837e+03 1.017e+03 -1.807 0.07081 .
## Gestazione 3.873e+01 4.002e+00 9.678 < 2e-16 ***
## Fumatrici 1.038e+03 7.534e+02 1.378 0.16831
## SessoM 7.363e+01 1.118e+01 6.587 5.47e-11 ***
## Lunghezza -2.941e-01 2.201e+00 -0.134 0.89371
## Cranio -4.856e+00 3.188e+00 -1.523 0.12790
## N.gravidanze 1.311e+01 4.320e+00 3.035 0.00243 **
## Tipo.partoNat 2.824e+01 1.203e+01 2.347 0.01900 *
## Ospedaleosp2 -1.038e+01 1.338e+01 -0.776 0.43788
## Ospedaleosp3 2.929e+01 1.343e+01 2.180 0.02933 *
## Gestazione:Fumatrici -2.716e+01 1.918e+01 -1.416 0.15681
## Lunghezza:Cranio 3.166e-02 6.523e-03 4.853 1.29e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 272.7 on 2488 degrees of freedom
## Multiple R-squared: 0.7315, Adjusted R-squared: 0.7303
## F-statistic: 616.2 on 11 and 2488 DF, p-value: < 2.2e-16
E’ possibile anche creare un modello con l’aggiunta di termini quadritici per ovviare a una relazione non perfettamente lineare (es. crescita fetale accelerata o rallentata).
##
## Call:
## lm(formula = Peso ~ Gestazione + I(Gestazione^2) + Lunghezza +
## I(Lunghezza^2) + I(Cranio^2) + N.gravidanze + Tipo.parto +
## Ospedale + Sesso, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1153.34 -179.67 -8.42 156.34 1419.25
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.736e+03 9.046e+02 -1.919 0.05505 .
## Gestazione 3.716e+02 6.245e+01 5.951 3.05e-09 ***
## I(Gestazione^2) -4.333e+00 8.213e-01 -5.276 1.44e-07 ***
## Lunghezza -3.033e+01 4.027e+00 -7.531 7.00e-14 ***
## I(Lunghezza^2) 4.191e-02 4.133e-03 10.140 < 2e-16 ***
## I(Cranio^2) 1.535e-02 6.163e-04 24.903 < 2e-16 ***
## N.gravidanze 1.427e+01 4.237e+00 3.368 0.00077 ***
## Tipo.partoNat 2.701e+01 1.181e+01 2.287 0.02228 *
## Ospedaleosp2 -1.107e+01 1.313e+01 -0.843 0.39921
## Ospedaleosp3 3.099e+01 1.318e+01 2.351 0.01879 *
## SessoM 7.196e+01 1.096e+01 6.563 6.39e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 267.6 on 2489 degrees of freedom
## Multiple R-squared: 0.7412, Adjusted R-squared: 0.7402
## F-statistic: 712.8 on 10 and 2489 DF, p-value: < 2.2e-16
Abbiamo ottenuto quindi quattro modelli: AIC (lineare), BIC (lineare), Interazioni, Quadratico. Possiamo confrontarli tramite una tabella comparativa:
| Modello | AIC | BIC | R2 | R2_adj | RSE |
|---|---|---|---|---|---|
| Lineare AIC | 35169.79 | 35228.03 | 0.729 | 0.728 | 273.916 |
| Lineare BIC | 35179.33 | 35220.10 | 0.727 | 0.726 | 274.604 |
| Interazioni | 35149.69 | 35225.40 | 0.732 | 0.730 | 272.654 |
| Quadratico | 35055.84 | 35125.73 | 0.741 | 0.740 | 267.638 |
Da questa tabella emerge che Il modello quadratico è quello che:
- ha R² e R² aggiustato più alti
- ha residual standard error più
basso
- migliora il fit in modo migliore rispetto agli altri
Quindi risulta il modello più adatto.
Per la previsione del peso neonatale sono stati confrontati quattro modelli di regressione lineare: un modello lineare completo selezionato tramite AIC, un modello lineare più parsimonioso selezionato tramite BIC, un modello con termini di interazione e un modello con termini quadratici per gestazione, lunghezza e cranio.
Il modello quadratico ha mostrato le migliori prestazioni complessive, con R² = 0.7412, R² aggiustato = 0.7402 e il più basso errore standard dei residui (σ ≈ 268 g), risultando superiore sia ai modelli lineari sia al modello con interazioni.
I termini quadratici per gestazione, lunghezza e cranio sono risultati altamente significativi, indicando relazioni non strettamente lineari tra queste variabili e il peso alla nascita. In particolare, l’aumento della durata della gestazione e delle misure antropometriche è associato a un incremento del peso, ma con un andamento lievemente curvilineo.
Anche il numero di gravidanze, il tipo di parto, l’ospedale e il sesso del neonato contribuiscono in modo significativo al modello, seppur con effetti di entità minore rispetto alle variabili antropometriche. La diagnostica dei residui non evidenzia violazioni gravi delle assunzioni del modello (normalità, omoscedasticità, assenza di osservazioni eccessivamente influenti), confermando l’adeguatezza del modello quadratico per la descrizione e la previsione del peso neonatale.
2.3 Una volta ottenuto il modello finale, valuteremo la sua
capacità predittiva utilizzando metriche come R² e il Root Mean Squared
Error (RMSE). Un’attenzione particolare sarà rivolta all’analisi dei
residui e alla presenza di valori influenti, che potrebbero distorcere
le previsioni, indagando su di essi.
Utilizzo di:
- R² → quota di variabilità spiegata
- RMSE →
errore medio di previsione in unità della variabile (grammi)
Per
valutare quanto bene il modello predice il peso neonatale.
| Metrica | Valore |
|---|---|
| R-squared | 0.7412 |
| R-squared aggiustato | 0.7402 |
| RMSE | 267.0485 |
Si deduce che il modello spiega circa il 74% della variabilità del peso neonatale e l’errore medio di previsione è di circa 268 grammi,
Si analizzano i residui per verificare che: la varianza sia costante (omoscedasticità), i residui siano distribuiti normalmente, non ci siano pattern sistematici, non ci siano osservazioni influenti che distorcono il modello.
Emerge che non c’è nessun pattern evidente e una buona omoscedasticità (Residuals vs Fitted), ci sono lievi deviazioni in coda (normale con n=2500, Normal Q-Q plot), la varianza è abbastanza costante (Scale-Location), ci sono alcune osservazioni influenti, ma nessuna dominante (Residuals vs Leverage / Cook’s distance).
Con il metodo del calcolo della distanza di Cook individuiamo dei punti che potrebbero potenzialmente distorcere il modello.
## 101 119 130 134 146 155 161 220 295 310 312 322 329 375 378 383
## 101 119 130 134 146 155 161 220 295 310 312 322 329 375 378 383
## 390 471 472 478 492 516 582 615 616 632 633 656 657 684 729 750
## 390 471 472 478 492 516 582 615 616 632 633 656 657 684 729 750
## 791 828 890 906 908 950 991 1036 1109 1132 1137 1181 1194 1215 1230 1253
## 791 828 890 906 908 950 991 1036 1109 1132 1137 1181 1194 1215 1230 1253
## 1268 1273 1287 1293 1306 1323 1341 1357 1385 1395 1399 1402 1426 1428 1429 1433
## 1268 1273 1287 1293 1306 1323 1341 1357 1385 1395 1399 1402 1426 1428 1429 1433
## 1450 1472 1505 1541 1551 1553 1556 1588 1593 1619 1635 1639 1694 1701 1712 1718
## 1450 1472 1505 1541 1551 1553 1556 1588 1593 1619 1635 1639 1694 1701 1712 1718
## 1743 1780 1838 1856 1868 1893 1915 1920 1926 1937 1962 1963 2023 2040 2076 2086
## 1743 1780 1838 1856 1868 1893 1915 1920 1926 1937 1962 1963 2023 2040 2076 2086
## 2087 2115 2120 2123 2132 2135 2175 2195 2204 2219 2221 2225 2287 2315 2317 2392
## 2087 2115 2120 2123 2132 2135 2175 2195 2204 2219 2221 2225 2287 2315 2317 2392
## 2421 2422 2452 2471
## 2421 2422 2452 2471
Con 2500 osservazioni è normale avere alcuni punti con Cook’s distance > 4/n e spesso si tratta di neonati molto prematuri o macrosomici, già identificati come outlier nelle analisi preliminari. Quindi nessuno di questi punti compromette la stabilità del modello (come mostrato dal R² e dai residui)
Infine stampiamo la tabella finale dei coefficienti del modello di regressione quadratico.
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | -1736.2400 | 904.5767 | -1.9194 | 0.0550 |
| Gestazione | 371.6037 | 62.4470 | 5.9507 | 0.0000 |
| I(Gestazione^2) | -4.3331 | 0.8213 | -5.2757 | 0.0000 |
| Lunghezza | -30.3304 | 4.0274 | -7.5311 | 0.0000 |
| I(Lunghezza^2) | 0.0419 | 0.0041 | 10.1401 | 0.0000 |
| I(Cranio^2) | 0.0153 | 0.0006 | 24.9026 | 0.0000 |
| N.gravidanze | 14.2694 | 4.2373 | 3.3676 | 0.0008 |
| Tipo.partoNat | 27.0051 | 11.8077 | 2.2871 | 0.0223 |
| Ospedaleosp2 | -11.0734 | 13.1331 | -0.8432 | 0.3992 |
| Ospedaleosp3 | 30.9933 | 13.1820 | 2.3512 | 0.0188 |
| SessoM | 71.9565 | 10.9637 | 6.5631 | 0.0000 |
Il modello finale selezionato è un modello di regressione quadratico che include termini lineari e quadratici per gestazione, lunghezza e diametro craniale, oltre a variabili cliniche e demografiche come numero di gravidanze, tipo di parto, ospedale e sesso del neonato.
Questo modello ha mostrato le migliori prestazioni complessive tra quelli considerati, con un R² pari a 0.7412 e un RMSE di circa 268 grammi, indicando un’elevata capacità predittiva.
L’analisi dei residui non evidenzia violazioni sostanziali delle assunzioni del modello: i residui risultano distribuiti in modo simmetrico, senza pattern sistematici, e la varianza appare sostanzialmente costante. Alcune osservazioni influenti sono state identificate tramite Cook’s distance, ma nessuna di esse compromette la stabilità del modello.
Nel complesso, il modello quadratico rappresenta una soluzione robusta per la previsione del peso neonatale, catturando in modo efficace sia le relazioni lineari sia le non linearità fisiologiche tipiche della crescita fetale.
Una volta validato il modello, lo useremo per fare previsioni
pratiche. Ad esempio, potremo stimare il peso di una neonata
considerando una madre alla terza gravidanza che partorirà alla 39esima
settimana:
Si calcolano le medie di lunghezza e cranio e si crea il nuovo caso da prevedere effettuando una previsione con intervallo di confidenza. I risultati della previsione verranno rappresentati in tabella.
| Stima | CI_lower | CI_upper |
|---|---|---|
| 3260.99 | 3232.5 | 3289.47 |
Si genera un grafico di previsione per rappresentare i risultati ottenuti.
Utilizzando il modello quadratico validato, è stata effettuata una previsione del peso neonatale per una neonata alla 39ª settimana, figlia di una madre alla terza gravidanza. Impostando le misure antropometriche (lunghezza e diametro cranico) ai valori medi del campione, il modello stima un peso di circa 3260.99 grammi, con un intervallo di confidenza di circa ± 57 grammi.
La Figura mostra la previsione. Il punto rappresenta la stima puntuale, mentre la barra verticale indica l’intervallo di confidenza al 95%.
Questa previsione rappresenta un’applicazione pratica del modello e dimostra la sua capacità di fornire stime clinicamente plausibili e coerenti con la fisiologia neonatale.
Infine, utilizzeremo grafici e rappresentazioni visive per
comunicare i risultati del modello e mostrare le relazioni più
significative tra le variabili. Ad esempio, potremmo visualizzare
l’impatto del numero di settimane di gestazione e del fumo sul peso
previsto.
Si usa plotly per generare un grafico 3D, interattivo e ruotabile, che mostra l’effetto combinato di Gestazione × Fumo sul Peso previsto, utilizzando il modello quadratico.
Questo tipo di grafico è molto utile perché visualizza l’effetto principale della gestazione, mostra la differenza tra fumatrici e non fumatrici, evidenzia eventuali divergenze nelle pendenze (interazioni) e comunica in modo intuitivo l’impatto del fumo sul peso neonatale.
Si può interpretare il grafico dicendo che la curva ascendente lungo
l’asse della gestazione mostra l’aumento del peso previsto con
l’avanzare delle settimane.
Le due “nuvole” di punti (fumatrici vs
non fumatrici) sono separate verticalmente, quindi le fumatrici hanno un
peso previsto inferiore a parità di gestazione.
La distanza tra le
due superfici indica l’effetto del fumo: se il modello avesse
un’interazione forte, le due superfici avrebbero pendenze diverse; nel
tuo caso l’effetto è moderato, quindi le superfici sono quasi
parallele.
In conclusione, per visualizzare l’effetto combinato delle settimane di gestazione e del fumo materno sul peso previsto, è stato prodotto un grafico 3D interattivo. Il grafico mostra due superfici distinte: una per le madri fumatrici e una per le non fumatrici. In entrambi i gruppi il peso previsto aumenta con la gestazione, ma la superficie relativa alle fumatrici risulta sistematicamente più bassa, indicando un effetto negativo del fumo sul peso neonatale. Questa rappresentazione consente di cogliere in modo immediato sia l’effetto principale della gestazione sia la differenza tra i due gruppi.
Si genera un secondo grafico 3D, sempre usando plotly, per visualizzare la relazione tra: Gestazione, Lunghezza e Peso previsto. Tale grafico permette di visualizzare i punti simulati dal modello, la superficie di regressione stimata e l’effetto combinato di due variabili chiave sul peso previsto
La sua interpretazione consente di notare, osservando la superficie, come gestazione e lunghezza influenzano il peso previsto. La forma leggermente curva riflette i termini quadratici del modello, mentre le sue zone più alte corrispondono a neonati più maturi e più lunghi.
In conclusione, si può dire che per visualizzare l’effetto combinato delle variabili più rilevanti, è stato prodotto uno scatter plot 3D che mostra la relazione tra settimane di gestazione, lunghezza del neonato e peso previsto dal modello quadratico. La superficie risultante evidenzia un incremento non lineare del peso con l’aumentare della gestazione e della lunghezza, confermando la presenza di effetti quadratici e l’adeguatezza del modello nel catturare la fisiologia della crescita fetale.