1 Introducción

1.1 Descripción

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.


2 Preparar el ambiente de trabajo

2.1 Limpiar el entorno

# Borra todos los objetos del entorno
rm(list = ls())
# Libera memoria
gc()
##          used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 544073 29.1    1211264 64.7   686460 36.7
## Vcells 994249  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

3 Instalar y cargar paqueterías

3.1 Instalar paqueterías

install.packages(c("openxlsx"))

3.2 Cargar paqueterías

library(openxlsx)
## Warning: package 'openxlsx' was built under R version 4.4.3

4 Simulación de datos

4.1 Código para simular datos

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

5 Resumen de datos

5.1 Estadística Descriptiva

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

5.2 Exportar a excel

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)

6 Visualización de datos

6.1 Edad - Histograma

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)

6.2 Estatura - Histograma

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)

6.3 Diagramas de Caja Comparativos

boxplot(datos$Edad, datos$Estatura,
        names = c("Edad", "Estatura"),
        main = "Diagrama de Caja de Edad y Estatura",
        col = c("orange", "darkolivegreen3"),
        horizontal = TRUE)

6.4 Dispersión Edad vs Ingreso

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)

6.5 Gráficos de pastel

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"))


7 Exportar datos a excel

write.csv(datos, "datos_practica8.csv", row.names = FALSE)