L’obiettivo di questo progetto consiste nello studio e nell’analisi dei dati racconti dalle tre infrastrutture ospedaliere al fine di creare un modello predittivo per il peso di un neonato. Questo studio ha particolare rilevanza nel contesto della prevenzione di gravidanze a rischio e della pianificazione clinica in vista di possibili problemi del neonato.
Di seguito, i principali benefici che questo progetto porterà all’azienda e al settore sanitario:
Miglioramento delle previsioni cliniche: il peso del neonato è un indicatore chiave della sua salute. Avere un modello predittivo accurato consente al personale medico di intervenire tempestivamente in caso di anomalie, riducendo le complicazioni perinatali come le difficoltà respiratorie o l’ipoglicemia.
Ottimizzazione delle risorse ospedaliere: sapere in anticipo quali neonati potrebbero avere bisogno di cure intensive aiuta a organizzare le risorse umane e tecnologiche degli ospedali in modo efficiente. Questo si traduce in una riduzione dei costi operativi e una migliore pianificazione dell’utilizzo delle unità di terapia intensiva neonatale (TIN). Prevenzione e identificazione dei fattori di rischio:
Il modello potrà evidenziare i fattori che maggiormente influenzano negativamente il peso del neonato (come il fumo materno, gravidanze multiple o età avanzata della madre). Queste informazioni sono preziose per la prevenzione e la gestione personalizzata delle gravidanze, permettendo interventi proattivi in caso di rischio elevato.
Valutazione delle pratiche ospedaliere: attraverso un’analisi comparativa tra i tre ospedali coinvolti, l’azienda potrà identificare eventuali differenze nei risultati clinici, come una maggiore incidenza di parti cesarei in una determinata struttura. Ciò consente di monitorare la qualità delle pratiche e armonizzare i protocolli tra i diversi centri ospedalieri, migliorando la coerenza delle cure.
Supporto alla pianificazione strategica: l’analisi dei dati e le previsioni possono essere utilizzate per prendere decisioni informate non solo a livello clinico ma anche strategico. L’azienda potrà sfruttare queste informazioni per implementare nuove politiche di salute pubblica, garantendo un impatto positivo sui tassi di mortalità e morbilità neonatale.
Mostriamo qui un sottoinsieme del dataset utilizzato per condurre la nostra analisi e costruire i modelli di cui in seguito.
| 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 |
In particolare 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).
Anzitutto iniziamo dando una panoramica sulle statistiche di sintesi dei dati quantitativi continui:
| Statistiche | Anni_madre | Gestazione | Lunghezza | Cranio | Peso |
|---|---|---|---|---|---|
| Min. | 0.00 | 25.00 | 310.00 | 235.00 | 830.00 |
| 1st Qu. | 25.00 | 38.00 | 480.00 | 330.00 | 2990.00 |
| Median | 28.00 | 39.00 | 500.00 | 340.00 | 3300.00 |
| Mean | 28.16 | 38.98 | 494.69 | 340.03 | 3284.08 |
| 3rd Qu. | 32.00 | 40.00 | 510.00 | 350.00 | 3620.00 |
| Max. | 46.00 | 43.00 | 565.00 | 390.00 | 4930.00 |
A colpo d’occhio noto che il minimo della variabile Anni.madre è 0, il che mi porta ad investigare possibili dati errati presenti nel database. Lo riordino per la variabile Anni.madre e controllo le prime entrate
| Anni.madre | N.gravidanze | Fumatrici | Gestazione | Peso | Lunghezza | Cranio | Tipo.parto | Ospedale | Sesso | |
|---|---|---|---|---|---|---|---|---|---|---|
| 1380 | 0 | 0 | 0 | 39 | 3060 | 490 | 330 | Nat | osp3 | M |
| 1152 | 1 | 1 | 0 | 41 | 3250 | 490 | 350 | Nat | osp2 | F |
| 138 | 13 | 0 | 0 | 38 | 2760 | 470 | 325 | Nat | osp2 | F |
| 1075 | 14 | 1 | 0 | 39 | 3510 | 490 | 365 | Nat | osp2 | M |
| 1532 | 14 | 0 | 0 | 39 | 3550 | 500 | 355 | Ces | osp1 | M |
| 66 | 15 | 0 | 0 | 37 | 2810 | 490 | 325 | Ces | osp3 | F |
Effettivamente i primi due valori del database sono sballati e perciò li escludo dallo studio e rianalizziamo il dataset così acquisito.
| Statistiche | Anni_madre | Gestazione | Lunghezza | Cranio | Peso |
|---|---|---|---|---|---|
| Min. | 13.00 | 25.00 | 310.0 | 235.00 | 830.00 |
| 1st Qu. | 25.00 | 38.00 | 480.0 | 330.00 | 2990.00 |
| Median | 28.00 | 39.00 | 500.0 | 340.00 | 3300.00 |
| Mean | 28.19 | 38.98 | 494.7 | 340.03 | 3284.18 |
| 3rd Qu. | 32.00 | 40.00 | 510.0 | 350.00 | 3620.00 |
| Max. | 46.00 | 43.00 | 565.0 | 390.00 | 4930.00 |
Ora visualizziamo rapidamente il boxplot associato a ciascuna di queste variabili per identificare simmetrie e outliers:
Questa visualizzazione con i boxplot ci permette di notare degli outliers “allineati” verso il basso delle variabili Peso, Cranio, Gestazione e Lunghezza, che corrispondono presumibilmente a dei parti molto prematuri. La variabile Anni.madre segue un’andatura più simmetrica invece. Dopodiché diamo un’occhiata anche alle frequenze delle variabili qualitative e quantitative discrete:
##
## Frequenze per Sesso:
##
##
## |Categoria | Frequenza| Percentuale|
## |:---------|---------:|-----------:|
## |F | 1255| 50.24|
## |M | 1243| 49.76|
##
## Frequenze per Ospedale:
##
##
## |Categoria | Frequenza| Percentuale|
## |:---------|---------:|-----------:|
## |osp1 | 816| 32.67|
## |osp2 | 848| 33.95|
## |osp3 | 834| 33.39|
##
## Frequenze per Tipo parto:
##
##
## |Categoria | Frequenza| Percentuale|
## |:---------|---------:|-----------:|
## |Ces | 728| 29.14|
## |Nat | 1770| 70.86|
##
## Frequenze per Fumatrici:
##
##
## |Categoria | Frequenza| Percentuale|
## |:---------|---------:|-----------:|
## |0 | 2394| 95.84|
## |1 | 104| 4.16|
##
## Frequenze per Numero gravidanze:
##
##
## |Categoria | Frequenza| Percentuale|
## |:---------|---------:|-----------:|
## |0 | 1095| 43.84|
## |1 | 817| 32.71|
## |2 | 340| 13.61|
## |3 | 150| 6.00|
## |4 | 48| 1.92|
## |5 | 21| 0.84|
## |6 | 11| 0.44|
## |7 | 1| 0.04|
## |8 | 8| 0.32|
## |9 | 2| 0.08|
## |10 | 3| 0.12|
## |11 | 1| 0.04|
## |12 | 1| 0.04|
Riguardo a queste variabili notiamo che il Sesso e l’Ospedale campioni molto omogenei ed equidistribuiti. Il Tipo di parto e la variabili Fumatrici invece riporta dei valori più sbilanciati con un numero maggiore di parti naturali e di non fumatrici. Per quanto riguarda il numero di gravidanze invece notiamo come il 96.16% del campione riporti un numero di gravidanze inferiore o uguale a 3, mentre la restante porzione del campione risulta un outlier verso l’altro fino ad un massimo di 12 gravidanze.
Ora che abbiamo una panoramica statistica dei dati vediamo di verificare le seguenti ipotesi:
1- In alcuni ospedali si fanno più parti cesarei:
Verifichiamo anzitutto le frequenze assolute e relative dei parti naturali e cesarei in ciascun ospedale.
| Ces | Nat | |
|---|---|---|
| osp1 | 242 | 574 |
| osp2 | 254 | 594 |
| osp3 | 232 | 602 |
| Ces | Nat | |
|---|---|---|
| osp1 | 0.2965686 | 0.7034314 |
| osp2 | 0.2995283 | 0.7004717 |
| osp3 | 0.2781775 | 0.7218225 |
Ad occhio non sembrano esserci differenze significative nei campioni ma per avere conferma di ciò saggiamo questa ipotesi con il test del Chi quadro di Pearson:
chisq.test(table_parto_ospedale)
##
## Pearson's Chi-squared test
##
## data: table_parto_ospedale
## X-squared = 1.083, df = 2, p-value = 0.5819
Dato che il test ha un p-value ampiamente sopra la soglia di accettazione concludiamo che non c’è una correlazione tra ospedale e tipo di parto.
2- La media del peso e della lunghezza di questo campione di neonati sono significativamente uguali a quelle della popolazione:
Per verficare questa ipotesi eseguiamo un t-test rispetto alla media mondiale del peso e della lunghezza dei neonati che si attestano intorno ai 3300 grammi e 495 mm (fonte: World Health Organization: https://www.who.int/tools/child-growth-standards).
##
## One Sample t-test
##
## data: Peso
## t = -1.505, df = 2497, p-value = 0.1324
## alternative hypothesis: true mean is not equal to 3300
## 95 percent confidence interval:
## 3263.577 3304.791
## sample estimates:
## mean of x
## 3284.184
##
## One Sample t-test
##
## data: Lunghezza
## t = -0.57754, df = 2497, p-value = 0.5636
## alternative hypothesis: true mean is not equal to 495
## 95 percent confidence interval:
## 493.6628 495.7287
## sample estimates:
## mean of x
## 494.6958
Questi valori ci portano a concludere che per quanto riguarda la variabile Peso e Lunghezza, il valore rilevato nel nostro campione è in linea con gli standard della popolazione.
3- Le misure antropometriche sono significativamente diverse tra i due sessi:
Per verificare o rifiutare qeust’ultima ipotesi studiamo le variabili Lunghezza, Peso e Cranio divise per la variabile Sesso, e andiamo a studiare come questa le influenza
Visivamente vediamo che in tutte e tre le variabili i dati relativi ai neonati di sesso maschile hanno un boxplot spostato verso l’alto. Andiamo a verificare numericamente questa ipotesi tramite dei test con la t di Student
##
## Welch Two Sample t-test
##
## data: Peso by Sesso
## t = -12.115, df = 2488.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.4841 -207.3844
## sample estimates:
## mean in group F mean in group M
## 3161.061 3408.496
##
## Welch Two Sample t-test
##
## data: Lunghezza by Sesso
## t = -9.5823, df = 2457.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.939001 -7.882672
## sample estimates:
## mean in group F mean in group M
## 489.7641 499.6750
##
## Welch Two Sample t-test
##
## data: Cranio by Sesso
## t = -7.4366, df = 2489.4, p-value = 1.414e-13
## alternative hypothesis: true difference in means between group F and group M is not equal to 0
## 95 percent confidence interval:
## -6.110504 -3.560417
## sample estimates:
## mean in group F mean in group M
## 337.6231 342.4586
Visti i valori molto piccoli del p-value per tutte le variabili altropometriche possiamo concludere che esse differiscano in modo statisticamente rilevante a seconda del sesso del nascituro.
Anzitutto creiamo un modello di regressione lineare multipla semplice che includa tutte le variabili raccolte nel database, in modo da visualizzare quelle che influenzano in modo significativo la variabile Peso.
##
## Call:
## lm(formula = Peso ~ ., data = dati_filtrati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1123.26 -181.53 -14.45 161.05 2611.89
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -6735.7960 141.4790 -47.610 < 2e-16 ***
## Anni.madre 0.8018 1.1467 0.699 0.4845
## N.gravidanze 11.3812 4.6686 2.438 0.0148 *
## Fumatrici -30.2741 27.5492 -1.099 0.2719
## Gestazione 32.5773 3.8208 8.526 < 2e-16 ***
## Lunghezza 10.2922 0.3009 34.207 < 2e-16 ***
## Cranio 10.4722 0.4263 24.567 < 2e-16 ***
## Tipo.partoNat 29.6335 12.0905 2.451 0.0143 *
## Ospedaleosp2 -11.0912 13.4471 -0.825 0.4096
## Ospedaleosp3 28.2495 13.5054 2.092 0.0366 *
## SessoM 77.5723 11.1865 6.934 5.18e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 274 on 2487 degrees of freedom
## Multiple R-squared: 0.7289, Adjusted R-squared: 0.7278
## F-statistic: 668.7 on 10 and 2487 DF, p-value: < 2.2e-16
Cominciamo a commentare i risultati di questo semplice modello: risulta chiaro dall’osservazione dei p-value che diverse variabili non sono significative sull’andamento del Peso, in particolare le variabili Anni.madre e Fumatrici. La variabile Ospedale risulta al limite la manteniamo come variabile di controllo.
Inoltre creiamo una visualizzazione ver vedere a occhio queste correlazioni, in particolare rimuovendo le variabili Anni.madre e Fumatrici oltre che le altre qualitative poiché con questo grafico poco significative.
Costruiamo dunque un secondo modello da cui togliamo queste variabili e quelle non utili a fini predittivi come Ospedale e Tipo.parto, e vediamo se la differenza tra i due è significativa usando anova e BIC. Inoltre vedremo tramite il calcolo del VIF se queste variabili rimaste presentano un’eccessiva collinearità:
##
## Call:
## lm(formula = Peso ~ N.gravidanze + Gestazione + Lunghezza + Cranio +
## Sesso, data = dati_filtrati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1149.37 -180.98 -15.57 163.69 2639.09
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -6681.7251 135.8036 -49.201 < 2e-16 ***
## N.gravidanze 12.4554 4.3416 2.869 0.00415 **
## Gestazione 32.3827 3.8008 8.520 < 2e-16 ***
## Lunghezza 10.2455 0.3008 34.059 < 2e-16 ***
## Cranio 10.5410 0.4265 24.717 < 2e-16 ***
## SessoM 77.9807 11.2111 6.956 4.47e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 274.7 on 2492 degrees of freedom
## Multiple R-squared: 0.727, Adjusted R-squared: 0.7265
## F-statistic: 1327 on 5 and 2492 DF, p-value: < 2.2e-16
Vediamo che l’R quadro aggiustato è rimasto bene o male invariato e perciò il modello rimane affidabile. Vediamo tramite il test sulla varianza se il passaggio dal modello 1 al modello 2 ci porta ad una perdita significativa di informazioni. Contemporaneamente eseguiamo un test di Bayes per verificare quale dei due sia migliore:
## Analysis of Variance Table
##
## Model 1: Peso ~ N.gravidanze + Gestazione + Lunghezza + Cranio + Sesso
## Model 2: Peso ~ Anni.madre + N.gravidanze + Fumatrici + Gestazione + Lunghezza +
## Cranio + Tipo.parto + Ospedale + Sesso
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 2492 188042054
## 2 2487 186743194 5 1298860 3.4596 0.004052 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## df BIC
## mod2 7 35193.65
## mod1 12 35215.45
Visto l’elevato p-value possiamo dunque ritenere migliore il modello 2. Controlliamo ora che i parametri mantenuti soddifano anche la non eccessiva collinearità, ovvero se il VIF è minore di 5 per ciascuna variabile.
## N.gravidanze Gestazione Lunghezza Cranio Sesso
## 1.023462 1.669779 2.075747 1.624568 1.040184
Per ora questo sembra un modello lineare affidabile. Proviamo a costruire altri due modelli che invece siano non lineari e verifichiamo se sono migliori o peggiori di quello precedentemente ottenuto.
Per cominciare proponiamo delle relazioni quadratiche e le interazioni tra ciascuna variabile che dalle visualizzazioni grafiche viste sopra sembrano sottostare ad una relazione di questo tipo, dopodiché rimuovendo le variabile meno significative cerchiamo di perfezionare ulteriormente il modello. Vediamo se queste qualcuno di questi sembra particolarmente efficace e non eccessivamente complicato.
##
## Call:
## lm(formula = Peso ~ N.gravidanze + Gestazione * Lunghezza + Cranio +
## Sesso, data = dati_filtrati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1133.41 -179.98 -11.52 168.93 2652.65
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.991e+03 9.206e+02 -2.163 0.030631 *
## N.gravidanze 1.303e+01 4.321e+00 3.015 0.002594 **
## Gestazione -9.391e+01 2.481e+01 -3.785 0.000157 ***
## Lunghezza -8.476e-02 2.028e+00 -0.042 0.966661
## Cranio 1.076e+01 4.264e-01 25.234 < 2e-16 ***
## SessoM 7.225e+01 1.121e+01 6.445 1.38e-10 ***
## Gestazione:Lunghezza 2.729e-01 5.298e-02 5.151 2.79e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 273.3 on 2491 degrees of freedom
## Multiple R-squared: 0.7299, Adjusted R-squared: 0.7292
## F-statistic: 1122 on 6 and 2491 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = Peso ~ N.gravidanze + Gestazione + I(Gestazione^2) +
## Lunghezza + I(Lunghezza^2) + Cranio + Sesso, data = dati_filtrati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1190.98 -182.32 -13.58 163.60 1403.84
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.359e+03 9.058e+02 -2.605 0.009245 **
## N.gravidanze 1.447e+01 4.249e+00 3.405 0.000673 ***
## Gestazione 3.362e+02 6.274e+01 5.358 9.17e-08 ***
## I(Gestazione^2) -3.868e+00 8.250e-01 -4.689 2.89e-06 ***
## Lunghezza -3.212e+01 4.039e+00 -7.953 2.73e-15 ***
## I(Lunghezza^2) 4.368e-02 4.142e-03 10.545 < 2e-16 ***
## Cranio 1.045e+01 4.194e-01 24.909 < 2e-16 ***
## SessoM 7.260e+01 1.101e+01 6.596 5.15e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 268.6 on 2490 degrees of freedom
## Multiple R-squared: 0.7392, Adjusted R-squared: 0.7385
## F-statistic: 1008 on 7 and 2490 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = Peso ~ N.gravidanze + poly(Gestazione, 2) * poly(Lunghezza,
## 2) + Cranio + Sesso, data = dati_filtrati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1220.98 -180.76 -9.49 164.71 1345.08
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.813e+02 1.433e+02 -1.963 0.049710
## N.gravidanze 1.429e+01 4.238e+00 3.371 0.000759
## poly(Gestazione, 2)1 4.706e+03 8.160e+02 5.768 9.04e-09
## poly(Gestazione, 2)2 -1.751e+03 8.440e+02 -2.075 0.038063
## poly(Lunghezza, 2)1 1.132e+04 5.575e+02 20.309 < 2e-16
## poly(Lunghezza, 2)2 4.893e+03 5.941e+02 8.237 2.83e-16
## Cranio 1.037e+01 4.211e-01 24.623 < 2e-16
## SessoM 7.509e+01 1.100e+01 6.824 1.10e-11
## poly(Gestazione, 2)1:poly(Lunghezza, 2)1 -5.060e+04 2.398e+04 -2.110 0.034933
## poly(Gestazione, 2)2:poly(Lunghezza, 2)1 -4.037e+04 1.790e+04 -2.256 0.024188
## poly(Gestazione, 2)1:poly(Lunghezza, 2)2 2.229e+04 1.654e+04 1.348 0.177894
## poly(Gestazione, 2)2:poly(Lunghezza, 2)2 2.475e+03 7.426e+03 0.333 0.738903
##
## (Intercept) *
## N.gravidanze ***
## poly(Gestazione, 2)1 ***
## poly(Gestazione, 2)2 *
## poly(Lunghezza, 2)1 ***
## poly(Lunghezza, 2)2 ***
## Cranio ***
## SessoM ***
## poly(Gestazione, 2)1:poly(Lunghezza, 2)1 *
## poly(Gestazione, 2)2:poly(Lunghezza, 2)1 *
## poly(Gestazione, 2)1:poly(Lunghezza, 2)2
## poly(Gestazione, 2)2:poly(Lunghezza, 2)2
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 267.8 on 2486 degrees of freedom
## Multiple R-squared: 0.7412, Adjusted R-squared: 0.74
## F-statistic: 647.2 on 11 and 2486 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = Peso ~ N.gravidanze + I(N.gravidanze^2) + Gestazione +
## I(Gestazione^2) + Lunghezza + Cranio + Sesso, data = dati_filtrati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1152.94 -181.06 -13.09 167.20 2658.69
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4524.2767 899.9541 -5.027 5.33e-07 ***
## N.gravidanze 26.7356 8.0754 3.311 0.000944 ***
## I(N.gravidanze^2) -2.7171 1.3049 -2.082 0.037421 *
## Gestazione -87.9322 49.8110 -1.765 0.077633 .
## I(Gestazione^2) 1.6149 0.6633 2.434 0.014985 *
## Lunghezza 10.3434 0.3038 34.043 < 2e-16 ***
## Cranio 10.5961 0.4284 24.736 < 2e-16 ***
## SessoM 75.8277 11.2361 6.749 1.85e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 274.3 on 2490 degrees of freedom
## Multiple R-squared: 0.7281, Adjusted R-squared: 0.7273
## F-statistic: 952.4 on 7 and 2490 DF, p-value: < 2.2e-16
## df BIC
## mod2 7 35193.65
## mod3 8 35175.01
## mod4 9 35094.91
## mod5 13 35107.50
## mod6 9 35199.69
## df AIC
## mod2 7 35152.89
## mod3 8 35128.42
## mod4 9 35042.50
## mod5 13 35031.80
## mod6 9 35147.28
Con questi semplici test vediamo che a tutti gli effetti il modello 4 sembrerebbe apportare il miglioramento più significativo. Saggiamo ora la possibilità di considerarlo al posto del modello 2 con un testo anova.
anova(mod2, mod4)
## Analysis of Variance Table
##
## Model 1: Peso ~ N.gravidanze + Gestazione + Lunghezza + Cranio + Sesso
## Model 2: Peso ~ N.gravidanze + Gestazione + I(Gestazione^2) + Lunghezza +
## I(Lunghezza^2) + Cranio + Sesso
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 2492 188042054
## 2 2490 179625530 2 8416523 58.336 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Notiamo che per quanto riguarda la variabile Ospedale, la differenza tra il primo e il secondo ospedale non è statisticamente significativa, ma lo è per l’ospedale 3.
Per verificare la qualità del nostro modello partiamo da un’analisi attenta dei residui, che in particolare comincia dalla visione dei seguenti grafici.
Come prima inferenza possiamo vedere come i residui, a meno di un singolo valore (1551), si dispongono in maniera abbastanza simmetrica. Per quanto riguarda la normalità dei residui, vediamo che aderiscono molto nella fascia centrale e si discostano lievemente agli estremi. Anche qui il vaore 1551 è quello che più si allontana. Per verificare computazionalmente la normalità dei residui effettuiamo un test di Shapiro-Wilk, per verificare l’omoschedaticità usiamo il test di Breusch-Pagan e infine con Durbin-Watson verifichiamo un eventuale autocorrelazione.
##
## Shapiro-Wilk normality test
##
## data: residuals(mod4)
## W = 0.98912, p-value = 7.492e-13
##
## studentized Breusch-Pagan test
##
## data: mod4
## BP = 97.461, df = 7, p-value < 2.2e-16
##
## Durbin-Watson test
##
## data: mod4
## DW = 1.9491, p-value = 0.1018
## alternative hypothesis: true autocorrelation is greater than 0
Come ci riporta il test di Shapiro-Wilk, i residui non risultano seguire strettamente una distribuzione normale. I valori troppo disallineati nelle code ne grafico relativo ai residui ci mette dunque in allerta che questo modello può funzionare in modo eccellente per valori non critici ma potrebbe richiedere più attenzione per valori limite. Successivamente, il test di Breusch-Pagan ci dice che dobbiamo rifiutare anche l’ipotesi di omoschedasticità, come potevamo aspettarci. Infatti i valori della varianza differiscono maggiormente nei pressi dei valori più estremi, il che ci porta di nuovo a porre attenzione a quei casi limite. Infine il test di Durbin-Watson ci dice che possiamo rifiutare l’ipotesi di autocorrelazione.
Vediamo ora brevemente come sono distribuiti i casi più influenti (distanza di Cook più elevata) per notare eventuali pattern o distribuzioni legate a qualche variabile.
Dai Boxplot emerge una variabilità molto alta rispetto ai dati più fedeli al modello, portandoci di nuovo a dover porre attenzione ai casi agli estremi.
Dal’analisi con la gestazione vediamo che appunto questi valori influenti ricoprono i casi con gestazioni molto abbreviate o troppo prolungate rispetto alla media.
Possiamo dunque concludere che il nostro modello, che riporta un R quadro aggiustato di 0.7385 e un valore del RSME che ora calcoliamo:
## [1] 268.1562
Ora che abbiamo scelto il nostro modello ed esaminato punti i suoi di forza e i suoi limiti, utilizziamo per fare qualche previsione di possibili pazienti. In particolare studiamo anche il caso (Paziente 4) di stima del peso di una neonata considerando una madre alla terza gravidanza che partorirà alla 39esima settimana. Dato che valor importanti nel modello come Lunghezza e Cranio non sono forniti assumeremo che siano uguali alla media.
| ID_paziente | N.gravidanze | Gestazione | Lunghezza | Cranio | Sesso | Predizione_Peso |
|---|---|---|---|---|---|---|
| Paziente1 | 1 | 39 | 500.0 | 340.00 | M | 3364.63 |
| Paziente2 | 0 | 37 | 480.0 | 330.00 | F | 2875.11 |
| Paziente3 | 3 | 40 | 510.0 | 350.00 | M | 3648.52 |
| Paziente4 | 3 | 39 | 494.7 | 340.03 | F | 3261.20 |