La estadística descriptiva es una rama de la estadística que se encarga de recopilar, organizar, presentar y analizar un conjunto de datos, con el fin de describir sus características principales mediante medidas numéricas y representaciones gráficas.
En esta práctica se simularán datos demográficos básicos y se aplicarán herramientas de estadística descriptiva en R. Posteriormente, la base generada se exportará para repetir el análisis en SPSS.
# Borra todos los objetos del entorno
rm(list = ls())
# Libera memoria
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 544131 29.1 1211430 64.7 686460 36.7
## Vcells 994375 7.6 8388608 64.0 1876160 14.4
# Muestra en qué carpeta estás trabajando
getwd()
## [1] "C:/Users/brand/Desktop/iCloudDrive/DESK2025SAID/CLASES 20262/LABORATORIO 4/practica8 auto"
#Ubicar carpeta en la pestaña de Session > Set working > Choose
install.packages(c("openxlsx"))
library(openxlsx)
Simularemos datos de 1000 personas con edades, estaturas y géneros aleatorios bajo una distribución normal.
set.seed(123)
n <- 1000
ID <- paste0("ID_", seq_len(n))
Edad <- round(rnorm(n, mean = 30, sd = 10))
Estatura <- round(rnorm(n, mean = 168, sd = 9), 1)
Genero <- sample(c("Hombre", "Mujer"),
n,
replace = TRUE,
prob = c(0.48, 0.52))
datos <- data.frame(
ID = ID,
Edad = Edad,
Estatura = Estatura,
Genero = Genero
)
head(datos)
## ID Edad Estatura Genero
## 1 ID_1 24 159.0 Mujer
## 2 ID_2 28 158.6 Hombre
## 3 ID_3 46 167.8 Hombre
## 4 ID_4 31 166.8 Hombre
## 5 ID_5 31 145.1 Mujer
## 6 ID_6 47 177.4 Mujer
summary(datos[, c("Edad", "Estatura")])
## Edad Estatura
## Min. : 2.00 Min. :140.6
## 1st Qu.:24.00 1st Qu.:162.1
## Median :30.00 Median :168.5
## Mean :30.16 Mean :168.4
## 3rd Qu.:37.00 3rd Qu.:174.8
## Max. :62.00 Max. :198.5
table(datos$Genero)
##
## Hombre Mujer
## 468 532
prop.table(table(datos$Genero))
##
## Hombre Mujer
## 0.468 0.532
resumen_edad_estatura <- data.frame(
Estadistica = names(summary(datos$Edad)),
Edad = as.numeric(summary(datos$Edad)),
Estatura = as.numeric(summary(datos$Estatura))
)
frecuencia_genero <- as.data.frame(table(datos$Genero))
colnames(frecuencia_genero) <- c("Genero", "Frecuencia")
wb <- createWorkbook()
addWorksheet(wb, "Resumen")
addWorksheet(wb, "Genero")
writeData(wb, "Resumen", resumen_edad_estatura)
writeData(wb, "Genero", frecuencia_genero)
saveWorkbook(wb, "resumen_datos_practica8.xlsx", overwrite = TRUE)
resumen_edad_estatura <- data.frame(
Estadistica = names(summary(datos$Edad)),
Edad = as.numeric(summary(datos$Edad)),
Estatura = as.numeric(summary(datos$Estatura))
)
frecuencia_genero <- as.data.frame(table(datos$Genero))
colnames(frecuencia_genero) <- c("Genero", "Frecuencia")
wb <- createWorkbook()
addWorksheet(wb, "Resumen")
addWorksheet(wb, "Genero")
writeData(wb, "Resumen", resumen_edad_estatura)
writeData(wb, "Genero", frecuencia_genero)
saveWorkbook(wb, "resumen_datos_practica8.xlsx", overwrite = TRUE)
hist(datos$Edad,
probability = TRUE,
main = "Histograma de Edad con Curva Normal",
xlab = "edad",
col = "skyblue",
border = "white")
curve(dnorm(x, mean = mean(datos$Edad), sd = sd(datos$Edad)),
col = "red", lwd = 2, add = TRUE)
hist(datos$Estatura,
probability = TRUE,
main = "Histograma de Estatura con Curva Normal",
xlab = "Estatura",
col = "lightgreen",
border = "white")
curve(dnorm(x, mean = mean(datos$Estatura), sd = sd(datos$Estatura)),
col = "red",
lwd = 2,
add = TRUE)
boxplot(datos$Edad, datos$Estatura,
names = c("Edad", "Estatura"),
main = "Diagrama de Caja de Edad y Estatura",
col = c("orange", "darkolivegreen3"),
horizontal = TRUE)
plot(datos$Edad, datos$Estatura,
main = "Dispersión entre Edad y Estatura",
xlab = "Edad",
ylab = "Estatura",
pch = 19,
col = rgb(0.1, 0.2, 0.5, 0.5))
abline(lm(Estatura ~ Edad, data = datos), col = "red", lwd = 2)
frecuencias <- table(datos$Genero)
porcentajes <- round(prop.table(frecuencias) * 100, 1)
pie(frecuencias,
labels = paste(names(frecuencias), porcentajes, "%"),
main = "Distribución porcentual por género",
col = c("lightblue", "pink"))
write.csv(datos, "datos_practica8.csv", row.names = FALSE)