title: "Analisi dei neonati" author: "Tuo Nome" output: html_document ---
In questo documento eseguiamo un'analisi dei dati relativi ai neonati, includendo statistiche descrittive, analisi di distribuzione, test statistici e costruzione di modelli predittivi.
```{r setup, include=FALSE}
library(tidyverse) # ggplot2 è incluso in tidyverse, quindi può essere sufficiente caricare tidyverse library(caret) # Per machine learning e analisi statistica library(ggplot2) # Per la creazione di grafici library(car) # Per l'analisi di regressione library(lmtest) # Per il test di ipotesi nei modelli library(knitr) # Per l'integrazione di risultati nel documento Caricamento e esplorazione dei dati {r Copia
dataset <- read.csv("C:/Users/carbaren/Desktop/R/neonati.csv")
colnames(dataset)
head(dataset)
summary(dataset)
sapply(dataset, function(x) sum(is.na(x))) Distribuzioni e grafici {r Copia
ggplot(dataset, aes(x = Peso)) + geomhistogram(binwidth = 50, fill = "blue", color = "black") + thememinimal() + labs(title = "Distribuzione del peso del neonato") {r Copia
ggplot(dataset, aes(x = Gestazione)) + geomhistogram(binwidth = 1, fill = "green", color = "black") + thememinimal() + labs(title = "Distribuzione della durata della gravidanza") Analisi Statistiche {r Copia
hospitalpartocesareo <- table(dataset$Ospedale, dataset$Tipo.parto) hospitalpartocesareo {r Copia
chisq.test(hospitalpartocesareo) {r Copia
t.test(dataset$Peso, mu = 3200) {r Copia
t.test(dataset$Lunghezza, mu = 50) Analisi di regressione {r Copia
modello <- lm(Peso ~ Anni.madre + N.gravidanze + Fumatrici + Gestazione + Lunghezza + Cranio + Tipo.parto + Ospedale + Sesso, data = dataset)
summary(modello) {r Copia
modello_selezionato <- step(modello, direction = "both")
summary(modello_selezionato) Valutazione del modello {r Copia
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) {r Copia
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") Previsioni {r Copia
nuovo_dato <- data.frame( Anni.madre = 28, N.gravidanze = 3, Fumatrici = 0, Gestazione = 39, Lunghezza = 50, Cranio = 34, Tipo.parto = "Nat", # Esempio: "Nat" per parto naturale Ospedale = "osp1", # Esempio: "osp1" per ospedale 1 Sesso = "M" # Sesso: "M" per maschio )
nuovodato$Tipo.parto <- factor(nuovodato$Tipo.parto, levels = levels(dataset$Tipo.parto)) nuovodato$Ospedale <- factor(nuovodato$Ospedale, levels = levels(dataset$Ospedale)) nuovodato$Sesso <- factor(nuovodato$Sesso, levels = levels(dataset$Sesso))
previsione <- predict(modelloselezionato, nuovodato)
cat("Il peso previsto del neonato è:", previsione, "grammi") Grafici e analisi finali {r Copia
ggplot(dataset, aes(x = Gestazione, y = Peso)) + geompoint() + geomsmooth(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)") {r Copia
ggplot(dataset, aes(x = Fumatrici, y = Peso, fill = factor(Fumatrici))) + geom_boxplot() + labs(title = "Differenze nel peso tra fumatrice e non fumatrice")