Età della madre: variabile quantitativa continua
Num. Gravidanze: variabile quantitativa discreta
Fumo Materno: variabile nominale dummy. 0 = non fumatrici , 1 = fumatrici
Età Gestazionale: variabile quantitativa continua
Peso Neonato: variabile quantitativa continua espressa in grammi (g)
Lunghezza Neonato: variabile quantitativa continua espressa in millimetri (mm)
Diametro Cranio: variabile quantitativa continua espressa in millimetri (mm)
Tipo Parto: variabile nominale categoriale. Nat = naturale , Ces = cesareo
Ospedale: variabile nominale categoriale
Sesso Neonato: variabile nominale categoriale
#Sostituzione anni 0 e 1 nel dataset con la media della variabile
dati <- dati %>%
mutate(Anni.madre = ifelse(Anni.madre %in% c(0, 1), 28, Anni.madre))
#funzione per il calcolo indici
calcola_indici <- function(colonna) {
min <- min(colonna)
max <- max(colonna)
media <- mean(colonna)
mediana <- median(colonna)
varianza <- var(colonna)
dev_std <- sd(colonna)
cv <- (dev_std / media) * 100
asimmetria <- skewness(colonna)
curtosi <- kurtosis(colonna) - 3
return(c(Min = min ,Max = max ,Media = media, Mediana = mediana,Varianza = varianza, Dev_Std = dev_std, CV = cv, Asimmetria = asimmetria, Curtosi = curtosi))}
variabili <- dati[, c("Anni.madre", "Gestazione", "Peso", "Lunghezza", "Cranio")]
risultati <- t(apply(variabili, 2,calcola_indici))
risultati_df <- as.data.frame(round(risultati,2))
risultati_df <- cbind(Variabile = rownames(risultati_df), risultati_df)
rownames(risultati_df) <- NULL
kable(
risultati_df,
format = "markdown",
col.names = c("Variabile","Min","Max", "Media", "Mediana","Varianza", "Dev. Std.", "CV (%)", "Asimmetria", "Curtosi"),
caption = " Indici di posizione, variabilità e forma") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
kable_classic_2(full_width = F,
html_font = "Cambria",
font_size = 14)| Variabile | Min | Max | Media | Mediana | Varianza | Dev. Std. | CV (%) | Asimmetria | Curtosi |
|---|---|---|---|---|---|---|---|---|---|
| Anni.madre | 13 | 46 | 28.19 | 28 | 27.20 | 5.22 | 18.50 | 0.15 | -0.10 |
| Gestazione | 25 | 43 | 38.98 | 39 | 3.49 | 1.87 | 4.79 | -2.07 | 8.26 |
| Peso | 830 | 4930 | 3284.08 | 3300 | 275665.68 | 525.04 | 15.99 | -0.65 | 2.03 |
| Lunghezza | 310 | 565 | 494.69 | 500 | 692.67 | 26.32 | 5.32 | -1.51 | 6.49 |
| Cranio | 235 | 390 | 340.03 | 340 | 269.79 | 16.43 | 4.83 | -0.79 | 2.95 |
La variabile risposta peso ha un valore di curtosi di 2.03 indicando una distribuzione platicurtica, più piatta rispetto ad una distribuzione normale standard.
##
## 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
Media nel gruppo F (femmine) = 3161.132
Media nel gruppo M (maschi) = 3408.215
Le medie suggeriscono che i neonati maschi hanno un peso medio più elevato rispetto alle femmine. La differenza tra le medie è di circa 247.1 unità (3408.215 - 3161.132).
##
## Welch Two Sample t-test
##
## data: Peso by Fumatrici
## t = 1.034, df = 114.1, p-value = 0.3033
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
## -45.61354 145.22674
## sample estimates:
## mean in group 0 mean in group 1
## 3286.153 3236.346
Più alto è il valore assoluto della statistica t, più forte è l’evidenza contro l’ipotesi nulla (cioè, che le medie dei due gruppi siano uguali). Un valore t più basso, come questo, indica che la differenza tra i gruppi non è molto forte.
Media nel gruppo 0 (non fumatori) = 3286.153
Media nel gruppo 1 (fumatori) = 3236.346
Le medie suggeriscono che i neonati partoriti da madri non fumatrici hanno un peso medio leggermente maggiore rispetto ai neonati da madri fumatrici. Tuttavia, il p-value elevato indica che questa differenza non è statisticamente significativa.
Lo scatterplot mostra che all’aumentare delle settimane di gestazione aumenta il peso del neonato. Quindi maggiori sono le settimane di gestazione e tendenzialmente maggiore sarà il peso medio del neonato.
# Selezionare solo le variabili numeriche
variabili_numeriche <- dati %>%
select(Anni.madre, N.gravidanze, Gestazione, Peso, Lunghezza, Cranio)
# Trasformare i dati in formato lungo per ggplot2
dati_long <- variabili_numeriche %>%
pivot_longer(cols = everything(),
names_to = "Variabile",
values_to = "Valore")
# Creare un boxplot
ggplot(dati_long, aes(x = Variabile, y = Valore, fill = Variabile)) +
geom_boxplot(outlier.color = "red", outlier.shape = 16, outlier.size = 1) +
labs(title = "Distribuzione delle Variabili Numeriche",
x = element_blank(),
y = element_blank()) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
legend.position = "none")Peso
Il boxplot del peso presenta una distribuzione relativamente concentrata, con valori medi attorno ai 3284 g (valore medio riportato in precedenza). Sono presenti outlier significativi sopra e sotto il range dei baffi. Questo indica la presenza di neonati con peso molto alto (macrosomia) o molto basso (neonati prematuri o sottopeso). La maggior parte dei dati è ben distribuita attorno alla mediana, ma ci sono alcune nascite eccezionali.
Lunghezza
La distribuzione è concentrata, con pochi outlier visibili. La lunghezza media è di circa 494 mm, con una curtosi elevata (molti valori vicini alla media). Le lunghezze dei neonati sono abbastanza omogenee, con qualche rara eccezione.
Cranio
La distribuzione del diametro cranico è stretta, e la maggior parte dei dati si trova vicino alla mediana. Qualche outlier è presente, suggerendo misure particolarmente alte o basse. I valori sono concentrati, ma gli outlier potrebbero rappresentare errori di misurazione o neonati con caratteristiche craniche particolari.
Gestazione
La durata della gravidanza è centrata attorno alle 39 settimane, con qualche outlier al di sotto. Gli outlier probabilmente rappresentano nascite premature. La maggior parte delle gravidanze è a termine, ma ci sono casi di prematurità che si riflettono anche nei dati sul peso.
Età delle madri
La distribuzione è concentrata, senza outlier significativi.L’età media delle madri è attorno ai 28 anni. Individuate anomalie nei dati, che sono stati corretti inserendo i valori medi della variabile.
Numero di gravidanze
I boxplot mostrano una forte asimmetria (come indicato nelle statistiche descrittive), con la maggior parte delle madri che ha avuto meno di una gravidanza precedente. Gli outlier rappresentano madri con molte gravidanze precedenti. La maggioranza delle madri nel dataset sono primipare, ma esistono casi di madri con molte gravidanze.
Conclusioni Generali: Il peso e la gestazione mostrano outlier significativi, probabilmente associati a neonati prematuri o sottopeso. Variabili come lunghezza e diametro cranico sono distribuite in modo omogeneo, con pochi valori eccezionali. Il numero di gravidanze è fortemente asimmetrico, con molte madri primipare. Età delle madri non mostra variazioni significative, ed è relativamente omogenea.
tabella <- matrix(c(574, 242, 595, 254, 603, 232),
nrow = 3,
ncol = 2,
byrow = T)
colnames(tabella) <- c("Parto Naturale","Parto Cesareo")
row.names(tabella) <- c("Osp1","Osp2","Osp3")
test.indipendenza <- chisq.test(tabella)
kable(tabella,
format = "markdown",
col.names = c("Ospedale","Parto naturale","Parto cesareo"),
caption = "Distribuzioni tipologie di parto") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
kable_classic_2(full_width = F,
html_font = "Cambria",
font_size = 14)| Ospedale | Parto naturale | Parto cesareo |
|---|---|---|
| Osp1 | 574 | 242 |
| Osp2 | 595 | 254 |
| Osp3 | 603 | 232 |
Risultati:
X-squared = 1.0972 , df = 2 (gradi di libertà), p-value = 0.5778
Il p-value ottenuto è 0.5778, che è decisamente maggiore del livello di significatività standard di 0.05. Questo significa che non possiamo rifiutare l’ipotesi nulla.
Ipotesi nulla (H₀): Non c’è differenza significativa nella distribuzione dei tipi di parto tra i tre ospedali (i cesarei sono distribuiti in modo simile tra gli ospedali).
Ipotesi alternativa (H₁): C’è una differenza significativa nella distribuzione dei tipi di parto tra gli ospedali (i cesarei non sono distribuiti in modo simile tra gli ospedali).
Conclusione: Nonostante il test chi-quadrato non indichi una differenza significativa, c’è una tendenza nei dati che suggerisce che l’Ospedale 2 abbia un numero di cesarei più alto rispetto agli altri due ospedali. Poiché il p-value è maggiore di 0.05, non rifiutiamo l’ipotesi nulla. Questo significa che non c’è una differenza significativa nella distribuzione dei tipi di parto (naturale vs. cesareo) tra i tre ospedali.
media_pop_peso <- 3300
t_test_peso <- t.test(dati$Peso,
mu = media_pop_peso)
media_pop_lun <- 495
t_test_lun <- t.test(dati$Lunghezza,
mu = media_pop_lun)
risultati_test <- data.frame(Variabile = c("Peso","Lunghezza"),
t_value = c(-1.516, -0.58514),
df = c(2499,2499),
p_value = c(0.1296, 0.5585),
conf_interval_lower = c(3263.490,493.6598),
conf_interval_upper = c(3304.672,495.7242),
mean_sample = c(3284.081,494.692))
kable(risultati_test,
format = "markdown") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
kable_classic_2(full_width = F,
html_font = "Cambria",
font_size = 14) %>%
add_header_above(c(" " = 1, "Risultati dei Test T " = 6),
line = TRUE,
font_size = 30)|
Risultati dei Test T
|
||||||
|---|---|---|---|---|---|---|
| Variabile | t_value | df | p_value | conf_interval_lower | conf_interval_upper | mean_sample |
| Peso | -1.51600 | 2499 | 0.1296 | 3263.4900 | 3304.6720 | 3284.081 |
| Lunghezza | -0.58514 | 2499 | 0.5585 | 493.6598 | 495.7242 | 494.692 |
Il valore di t-peso calcolato è -1.516 ; Il valore t-lunghezza è -0.58514.
La media ipotizzata della popolazione secondo la letteratura medica è per il peso: 3300 g mentre per la lunghezza: 495mm Questi valori rappresentano quanto la media campionaria delle due variabili in esame differisce dalla media ipotizzata in termini di deviazione standard. Un valore di t negativo indica che la media del campione è inferiore alla media ipotizzata.
I risultati indicano che non c’è una differenza significativa tra la media del campione in esame e la media ipotizzata. Il p-value elevato suggerisce che la differenza osservata non è abbastanza grande da essere considerata statisticamente significativa al livello di significatività del 5%.
#df misure antropometriche
misure_antropometriche <- data.frame(Variabile = c("Lunghezza","Peso","Cranio"),
t_value = c(-9.582, -12.106,-7.4102),
df = c(2459.3,2490.7,2491.4),
p_value = c("<2.2e-16","<2.2e-16" ,"1.718e-13"),
conf_interval_lower = c(-11.929470,-287.1051,-6.089912),
conf_interval_upper = c(-7.876273,-207.0615,-3.541270),
mean_M = c(499.6672,3408.215,342.4486),
mean_F = c(489.7643 ,3161.132 ,337.6330))
kable(misure_antropometriche,
format = "markdown")%>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
kable_classic_2(full_width = F,
html_font = "Cambria",
font_size = 14)| Variabile | t_value | df | p_value | conf_interval_lower | conf_interval_upper | mean_M | mean_F |
|---|---|---|---|---|---|---|---|
| Lunghezza | -9.5820 | 2459.3 | <2.2e-16 | -11.929470 | -7.876273 | 499.6672 | 489.7643 |
| Peso | -12.1060 | 2490.7 | <2.2e-16 | -287.105100 | -207.061500 | 3408.2150 | 3161.1320 |
| Cranio | -7.4102 | 2491.4 | 1.718e-13 | -6.089912 | -3.541270 | 342.4486 | 337.6330 |
I risultati indicano che per ciascuna delle variabili antropometriche (Lunghezza, Peso e Cranio) ci sono differenze significative tra i maschi e le femmine, come evidenziato dai seguenti punti:
Lunghezza: t = -9.582, df = 2459.3, p-value < 2.2e-16 Il p-value è estremamente basso (meno di 2.2e-16), indicando che la differenza tra la lunghezza media dei maschi e delle femmine è altamente significativa. La media dei maschi è 499,67 mm ; la media delle femmine è 489,76 mm. Quindi, i maschi hanno, in media, una lunghezza superiore in confronto alle femmine.
Peso: t = -12.106, df = 2490.7, p-value < 2.2e-16 Anche in questo caso, il p-value è estremamente basso, quindi la differenza di peso tra maschi e femmine è altamente significativa. La Media dei maschi è 3408.22 g ; Media delle femmine è 3161.13 g. I maschi, quindi, pesano di più delle femmine, in media.
Cranio: t = -7.4102, df = 2491.4, p-value = 1.718e-13 Anche in questo caso, il p-value è molto basso e conferma che c’è una differenza significativa tra la circonferenza cranica dei maschi e delle femmine. La media dei maschi è 342.45 mm ; Media delle femmine è 337.63 mm. In media, i maschi hanno una circonferenza cranica più grande.
In sintesi, i maschi e le femmine presentano differenze antropometriche significative in tutte le variabili considerate (lunghezza, peso, cranio). Le basse probabilità (p-value) indicano che queste differenze sono reali e non dovute al caso.
##
## Call:
## lm(formula = Peso ~ ., data = dati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1123.3 -181.2 -14.6 160.7 2612.6
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -6735.1677 141.3977 -47.633 < 2e-16 ***
## Anni.madre 0.7983 1.1463 0.696 0.4862
## N.gravidanze 11.4118 4.6665 2.445 0.0145 *
## Fumatrici -30.1567 27.5396 -1.095 0.2736
## Gestazione 32.5265 3.8179 8.520 < 2e-16 ***
## Lunghezza 10.2951 0.3007 34.237 < 2e-16 ***
## Cranio 10.4725 0.4261 24.580 < 2e-16 ***
## Tipo.partoNat 29.5027 12.0848 2.441 0.0147 *
## Ospedaleosp2 -11.2216 13.4388 -0.835 0.4038
## Ospedaleosp3 28.0984 13.4972 2.082 0.0375 *
## SessoM 77.5473 11.1779 6.938 5.07e-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.1 on 10 and 2489 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = Peso ~ Anni.madre + N.gravidanze + Gestazione +
## Lunghezza + Cranio + Tipo.parto + Ospedale + Sesso, data = dati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1122.69 -181.85 -15.23 161.38 2615.71
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -6734.8325 141.4031 -47.629 < 2e-16 ***
## Anni.madre 0.8083 1.1463 0.705 0.4808
## N.gravidanze 11.1515 4.6606 2.393 0.0168 *
## Gestazione 32.2721 3.8109 8.468 < 2e-16 ***
## Lunghezza 10.3092 0.3004 34.314 < 2e-16 ***
## Cranio 10.4768 0.4261 24.591 < 2e-16 ***
## Tipo.partoNat 29.2488 12.0830 2.421 0.0156 *
## Ospedaleosp2 -11.1647 13.4392 -0.831 0.4062
## Ospedaleosp3 28.3685 13.4955 2.102 0.0356 *
## SessoM 77.3679 11.1772 6.922 5.65e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 273.9 on 2490 degrees of freedom
## Multiple R-squared: 0.7287, Adjusted R-squared: 0.7278
## F-statistic: 743.3 on 9 and 2490 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = Peso ~ Anni.madre + N.gravidanze + Gestazione +
## Lunghezza + Cranio + Tipo.parto + Sesso, data = dati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1139.63 -181.49 -15.06 160.22 2633.85
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -6737.0948 141.4951 -47.614 < 2e-16 ***
## Anni.madre 0.8759 1.1475 0.763 0.4454
## N.gravidanze 11.4432 4.6655 2.453 0.0142 *
## Gestazione 32.5746 3.8152 8.538 < 2e-16 ***
## Lunghezza 10.2870 0.3007 34.206 < 2e-16 ***
## Cranio 10.4890 0.4266 24.586 < 2e-16 ***
## Tipo.partoNat 29.9956 12.0980 2.479 0.0132 *
## SessoM 77.8482 11.1920 6.956 4.47e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 274.3 on 2492 degrees of freedom
## Multiple R-squared: 0.7277, Adjusted R-squared: 0.727
## F-statistic: 951.6 on 7 and 2492 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = Peso ~ N.gravidanze + Gestazione + Lunghezza + Cranio +
## Tipo.parto + Sesso, data = dati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1129.31 -181.70 -16.31 161.07 2638.85
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -6707.2971 135.9911 -49.322 < 2e-16 ***
## N.gravidanze 12.7558 4.3366 2.941 0.0033 **
## Gestazione 32.2713 3.7941 8.506 < 2e-16 ***
## Lunghezza 10.2864 0.3007 34.207 < 2e-16 ***
## Cranio 10.5057 0.4260 24.659 < 2e-16 ***
## Tipo.partoNat 30.0342 12.0969 2.483 0.0131 *
## SessoM 77.9285 11.1905 6.964 4.22e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 274.3 on 2493 degrees of freedom
## Multiple R-squared: 0.7277, Adjusted R-squared: 0.727
## F-statistic: 1110 on 6 and 2493 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = Peso ~ N.gravidanze + Gestazione + Lunghezza + Cranio +
## Sesso, data = dati)
##
## 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 ***
## N.gravidanze 12.4750 4.3396 2.875 0.00408 **
## 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 ***
## 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
##
## Call:
## lm(formula = Peso ~ Gestazione + Lunghezza + Cranio + Sesso,
## data = dati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1138.2 -184.3 -17.6 163.3 2627.3
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -6651.1188 135.5172 -49.080 < 2e-16 ***
## Gestazione 31.2737 3.7856 8.261 2.31e-16 ***
## Lunghezza 10.2054 0.3007 33.939 < 2e-16 ***
## Cranio 10.6704 0.4245 25.139 < 2e-16 ***
## SessoM 79.1049 11.2117 7.056 2.22e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 275 on 2495 degrees of freedom
## Multiple R-squared: 0.7261, Adjusted R-squared: 0.7257
## F-statistic: 1654 on 4 and 2495 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = Peso ~ Gestazione * Sesso, data = dati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1512.95 -274.30 -14.35 267.28 1953.68
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3010.130 228.509 -13.173 <2e-16 ***
## Gestazione 159.327 5.892 27.042 <2e-16 ***
## SessoM 75.811 354.946 0.214 0.831
## Gestazione:SessoM 2.349 9.086 0.259 0.796
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 415.3 on 2496 degrees of freedom
## Multiple R-squared: 0.3752, Adjusted R-squared: 0.3745
## F-statistic: 499.6 on 3 and 2496 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = Peso ~ Gestazione * Anni.madre, data = dati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1514.97 -286.72 -16.95 282.30 1902.10
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -348.4319 952.4608 -0.366 0.714528
## Gestazione 88.7661 24.4536 3.630 0.000289 ***
## Anni.madre -100.7575 32.1601 -3.133 0.001750 **
## Gestazione:Anni.madre 2.7450 0.8278 3.316 0.000926 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 421.5 on 2496 degrees of freedom
## Multiple R-squared: 0.3562, Adjusted R-squared: 0.3555
## F-statistic: 460.4 on 3 and 2496 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = Peso ~ Fumatrici * Gestazione, data = dati)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1609.03 -289.03 -11.54 280.97 1898.44
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3240.771 178.861 -18.119 <2e-16 ***
## Fumatrici 1343.426 1164.746 1.153 0.249
## Gestazione 167.495 4.585 36.534 <2e-16 ***
## Fumatrici:Gestazione -36.764 29.646 -1.240 0.215
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 422.9 on 2496 degrees of freedom
## Multiple R-squared: 0.352, Adjusted R-squared: 0.3513
## F-statistic: 452 on 3 and 2496 DF, p-value: < 2.2e-16
BIC_df <- as.data.frame(BIC(mod1,mod2,mod3,mod4,mod5,mod6,mod7,mod8,mod9))
kable(BIC_df,
caption = "BIC modelli lineari") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
kable_classic_2(full_width = F,
html_font = "Cambria",
font_size = 14)| df | BIC | |
|---|---|---|
| mod1 | 12 | 35241.97 |
| mod2 | 11 | 35235.35 |
| mod3 | 9 | 35228.99 |
| mod4 | 8 | 35221.75 |
| mod5 | 7 | 35220.10 |
| mod6 | 6 | 35220.54 |
| mod7 | 5 | 37274.36 |
| mod8 | 5 | 37349.14 |
| mod9 | 5 | 37365.38 |
Procedura di selezione stepwise backward
Si parte con un modello completo che include tutte le variabili disponibili per spiegare la variabile dipendente, in questo caso Peso.
Rimozione delle variabili meno significative; le variabili
Ospedale, Anni madre, Tipo di
parto, Fumatrici e Num di
gravidanze sono state rimosse perché non contribuiscono in modo
significativo alla spiegazione del Peso.
Queste variabili sono state identificate come non
significative attraverso test statistici come il test t o il
test F, che hanno mostrato p-value al di sopra di una
soglia predefinita (alfa = 0.05).
Test di interazioni
Dopo aver rimosso le variabili meno significative, si è deciso di esplorare le interazioni tra alcune variabili per vedere se potessero migliorare il modello. Le interazioni testate sono state:
Tuttavia, i modelli con le interazioni risultano troppo complessi e poco esplicativi, il che significa che le interazioni non aggiungono un miglioramento significativo alla comprensione del modello o alla previsione del peso. Le interazioni possono complicare eccessivamente l’interpretazione del modello, rendendolo meno intuitivo.
Selezione del modello finale (BIC = 35220.10)
Il modello di regressione lineare ha identificato i seguenti effetti delle variabili indipendenti sul peso medio alla nascita, mantenendo costanti tutte le altre variabili incluse:
Num.gravidanze: Ogni gravidanza aggiuntiva aumenta il peso medio di circa 12.48 unità, mantenendo costanti le altre variabili.
Gestazione: Ogni settimana aggiuntiva di gestazione aumenta il peso medio di circa 32.33 unità.
Lunghezza: Ogni centimetro in più di lunghezza alla nascita aumenta il peso medio di 10.25 unità.
Cranio: Ogni unità di circonferenza cranica aumenta il peso medio di 10.54 unità.
SessoM: I maschi pesano in media 77.99 unità in più rispetto alle femmine.
## N.gravidanze Gestazione Lunghezza Cranio Sesso
## 1.023475 1.669189 2.074689 1.624465 1.040054
Calcolato il VIF per la verifica di multicollinearità tra variabili, anche con modello stepwise.
I valori per ciascuna variabile è inferiore a 5, quindi non è presente multicollinearità.
Conclusioni: Se il test suggerisce non normalità ma l’istogramma e il Q-Q plot sembrano accettabili. Si può considerare che la non normalità non sia grave e proseguire con il modello, specialmente se il campione è grande (la stima dei parametri sarà comunque robusta per il Teorema del Limite Centrale).
#leverage
lev <- hatvalues(mod5)
plot(lev)
p <- sum(lev)
soglia = 2*p/n
abline(h = soglia, col= "red")La maggior parte delle osservazioni non è influente e ha leverage basso. L’osservazione con leverage più alto è di 0.0049
## rstudent unadjusted p-value Bonferroni p
## 1551 10.051908 2.4906e-23 6.2265e-20
## 155 5.027798 5.3138e-07 1.3285e-03
## 1306 4.827238 1.4681e-06 3.6702e-03
Valore basso (tipicamente < 1): La singola osservazione non ha un’influenza significativa sul modello. Il valore massimo della distanza di cook è 0.83
##
## studentized Breusch-Pagan test
##
## data: mod5
## BP = 90.253, df = 5, p-value < 2.2e-16
##
## Durbin-Watson test
##
## data: mod5
## DW = 1.9535, p-value = 0.1224
## alternative hypothesis: true autocorrelation is greater than 0
plot(density(residuals(mod5)))
par(mfrow=c(1,2))
plot(density(residuals(mod5)))
hist(residuals(mod5))Per verificare graficamente la normalità dei residui, si può rappresentare l’istogramma dei residui standardizzati
Se l’assunzione di normalità è verificata, al crescere di 𝒏 i residui standardizzati dovrebbero distribuirsi secondo una normale standardizzata.
I residui graficamente non sembrano assumere una distribuzione normale.
Il test Shapiro - Wilk: La statistica test (W) può assumere valori compresi tra 0 e 1. Valori piccoli portano al rifiuto dell’ipotesi nulla. Quanto più il valore della statistica test si avvicina ad uno, tanto più la distribuzione dei residui approssima ad una normale. Nel caso specifico con 𝒏=2500 , si presume sia ancora troppo piccolo per vedere la distribuzione convergere in una normale standard.
Il test di Durbin-Watson viene utilizzato per verificare la presenza di autocorrelazione nei residui di un modello di regressione. Non c’è evidenza statistica sufficiente per rifiutare l’ipotesi nulla.Questo implica che non ci sono prove di autocorrelazione positiva nei residui del modello.
nuovo_dato <- data.frame(
N.gravidanze = 3,
Fumatrici = 0,
Gestazione = 39,
Lunghezza = 494.7,
Cranio = 340,
Sesso = "F"
)
peso_previsto <- predict(mod5, newdata = nuovo_dato)
peso_previsto## 1
## 3270.864
Il modello scelto (mod5) verrà utilizzato per fare previsioni.
Nel caso studio stimeremo il peso di una neonata considerando una madre alla terza gravidanza che partorità alla 39esima settimana. Il peso previsto sarà di 3270,86 grammi
ggplot(dati, aes(x = Gestazione, y = Peso, color = Sesso)) +
geom_smooth(aes(x = Gestazione, y = Peso, color = Sesso), se = F, method = "lm") +
geom_smooth(aes(x = Gestazione, y = Peso),color = "black",se = F, method = "lm")+
labs(title = "Interazione tra sesso e settimane di gestazione",
x = "Settimane di gestazione",
y = "Peso del neonato (grammi)")ggplot(dati, aes(x = Gestazione, y = Peso, color = factor(Fumatrici), shape = factor(Fumatrici))) +
geom_point(alpha = 0.5, size = 2) + # Punti con trasparenza
geom_smooth(method = "lm", se = FALSE, aes(linetype = factor(Fumatrici))) +
scale_color_manual(values = c("blue", "red1"), labels = c("Non Fumatrice", "Fumatrice")) +
scale_shape_manual(values = c(16, 17), labels = c("Non Fumatrice", "Fumatrice")) +
scale_linetype_manual(values = c("solid", "dashed"), labels = c("Non Fumatrice", "Fumatrice")) +
labs(title = "Gestazione vs Peso del neonato (Fumatrice: Sì/No)",
x = "Settimane di Gestazione",
y = "Peso del Neonato (grammi)",
color = "Fumatrici",
shape = "Fumatrici",
linetype = "Fumatrici") +
theme_minimal()La relazione tra le settimane di gestazione e il peso del neonato è chiaramente positiva: All’aumentare delle settimane di gestazione, il peso del neonato aumenta. Questo andamento è evidente sia per le madri fumatrici che per le non fumatrici.
La linea di regressione tratteggiata rossa (fumatrici) si trova leggermente più in basso rispetto alla linea continua blu (non fumatrici). Ciò suggerisce che, a parità di settimane di gestazione, i neonati di madri fumatrici tendono ad avere un peso inferiore rispetto ai neonati di madri non fumatrici. Questa differenza non è visivamente enorme, ma è comunque consistente.
Le osservazioni sono più dense per gestazioni tra le 39 e 41 settimane, indicando che la maggior parte delle nascite avviene in questo intervallo.
Nei valori estremi (gestazioni brevi, es. 30 settimane), il peso è basso per entrambi i gruppi, ma l’effetto del fumo sembra meno evidente (poche osservazioni disponibili).