knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE, results = 'asis')
library(tidyverse) library(caret) library(ggplot2) library(car) library(lmtest) library(knitr)
dataset <- read.csv("C:/Users/carbaren/Desktop/R/neonati.csv")
head(dataset)
summary(dataset)
sapply(dataset, function(x) sum(is.na(x)))
ggplot(dataset, aes(x = peso)) + geomhistogram(binwidth = 50, fill = "blue", color = "black") + thememinimal() + labs(title = "Distribuzione del peso del neonato")
ggplot(dataset, aes(x = duratagravidanza)) + geomhistogram(binwidth = 1, fill = "green", color = "black") + theme_minimal() + labs(title = "Distribuzione della durata della gravidanza")
hospitalpartocesareo <- table(dataset$ospedale, dataset$tipoparto) hospitalparto_cesareo
chisq.test(hospitalpartocesareo)
t.test(dataset$peso, mu = 3200) # Test sulla media del peso, con una media ipotizzata di 3200g t.test(dataset$lunghezza, mu = 50) # Test sulla lunghezza, con una media ipotizzata di 50 cm
boxplot(dataset$peso ~ dataset$sesso, main = "Distribuzione del peso per sesso") t.test(dataset$peso ~ as.factor(dataset$sesso)) # Test t per il peso tra i sessi
modello <- lm(peso ~ etamadre + numerogravidanze + fumomaterno + duratagravidanza + lunghezza + diametrocranio + tipoparto + ospedale + sesso, data = dataset)
summary(modello)
modello_selezionato <- step(modello, direction = "both")
summary(modello_selezionato)
AIC(modelloselezionato) BIC(modelloselezionato)
rsq <- summary(modello_selezionato)$r.squared cat("R²:", rsq)
pred <- predict(modello_selezionato) residui <- dataset$peso - pred rmse <- sqrt(mean(residui^2)) cat("RMSE:", rmse)
plot(residui, main = "Residui del modello", xlab = "Indice dei dati", ylab = "Residui") abline(h = 0, col = "red") hist(residui, main = "Distribuzione dei residui", xlab = "Residui", col = "gray", border = "black")
nuovodato <- data.frame( etamadre = 28, numerogravidanze = 3, fumomaterno = 0, duratagravidanza = 39, lunghezza = 50, diametrocranio = 34, tipoparto = "naturale", ospedale = "ospedale1", sesso = "M" )
nuovodato$tipoparto <- factor(nuovodato$tipoparto, levels = levels(dataset$tipoparto)) nuovodato$ospedale <- factor(nuovodato$ospedale, levels = levels(dataset$ospedale)) nuovodato$sesso <- factor(nuovo_dato$sesso, levels = levels(dataset$sesso))
previsione <- predict(modelloselezionato, nuovodato) cat("Il peso previsto del neonato è:", previsione, "grammi")
ggplot(dataset, aes(x = duratagravidanza, y = peso)) + geompoint() + geom_smooth(method = "lm", color = "blue") + labs(title = "Impatto della durata della gravidanza sul peso del neonato", x = "Durata della gravidanza (settimane)", y = "Peso del neonato (grammi)")
ggplot(dataset, aes(x = fumomaterno, y = peso, fill = factor(fumomaterno))) + geom_boxplot() + labs(title = "Differenze nel peso tra fumatrice e non fumatrice")