Ejercicio - MICE

La siguiente base de datos perteneciente al paquete mice nhanes contine 25 observaciones y 4 variables: age group (3 categor铆as) , body mass index, hypertension (1:Si, 2: No) y cholesterol (mg/dL).

#Carga la base de datos
library(mice)
data<-nhanes

Realiza los siguientes pasos:

  1. Inspecciona si las variables est谩n bien declaradas

str(data)
data$age<-as.factor(data$age)
data$hyp<-as.factor(data$hyp)
summary(data)
  1. Inspecciona si las variables num茅ricas tienen datos at铆picos

boxplot(data$bmi)
boxplot(data$chl)
boxplot(data$chl~data$age)
boxplot(data$chl~data$hyp)
  1. Visualiza y cuantifica los datos missing. 驴Qu茅 observas?

library(naniar)
vis_miss(data)
##Variables cualitativas
gg_miss_var(data, show_pct = TRUE,facet = age)
gg_miss_var(data, show_pct = TRUE,facet = hyp)

library(VIM)
##Variables cuantitativas
marginplot(data[,c(2,4)])

#Vamos a asumir que los datos son MCAR aunque chl y hype tienen 
#alg煤n intr铆nseco que podr铆a indicar MNAR
  1. Inspecciona el patr贸n de datos missing. 驴Qu茅 observas? 驴Cu谩ntas observaciones hay con todos las variables missing? 驴Y con 3 de las 4 variables?

library(mice)
md.pattern(data)
  1. Haz una imputaci贸n m煤ltiple para rellenar los datos missing, despu茅s:

    1. 驴Qu茅 m茅todos has usado para cada variable?

    2. Guarda los datos completos de alguna de las bases de datos imputadas

    3. Visualiza las imputaciones. 驴C贸mo visualizar铆as la variable cualitativa?

impData <- mice(data,m=5,maxit=50,seed=500)
##M茅todos
summary(impData)


##Complete Data
completeData <- complete(impData, 1)  

##Visualzacion para las variables cuantitativas
densityplot(impData)
stripplot(impData)

# Cuantificar la distribuci贸n de la variable categ贸rica antes y despu茅s de la imputaci贸n
table(data$hyp, useNA = "ifany")
table(completeData$hyp)

# Graficar la distribuci贸n de la variable categ贸rica antes y despu茅s de la imputaci贸n
par(mfrow = c(1, 2))  # Organizar las gr谩ficas en una fila de 2 columnas
barplot(table(data$hyp, useNA = "ifany"), main = "Antes de la imputaci贸n")
barplot(table(completeData$hyp), main = "Despu茅s de la imputaci贸n")
modelFit1 <- with(impData,lm(chl~age+bmi+hyp))
modelFit1
summary(modelFit1)
summary(pool(modelFit1))

# Calcular el pseudo R cuadrado
pool.r.squared(pool(modelFit1), adjusted = FALSE)

Last updated