1. Construya un histograma de la Variable Estatura ¿Qué puede decir sobre su distribución?
# Solo si no lo tienes instalado
library(readxl)


library(descriptr)



# Leer el archivo Excel (asumiendo que la hoja relevante es la primera)
datos <- read_excel("C:/Users/oscar pinzon/Downloads/Base_Estadistica_Descriptiva (1).xlsx")
## New names:
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
# Ver nombres de columnas
names(datos)
## [1] "Base_Estadistica_Descriptiva" "...2"                        
## [3] "...3"                         "...4"                        
## [5] "...5"                         "...6"                        
## [7] "...7"                         "...8"
# Ver resumen estadístico de Estatura
summary(datos$Estatura)
## Warning: Unknown or uninitialised column: `Estatura`.
## Length  Class   Mode 
##      0   NULL   NULL
# Volver a importar desde el archivo
library(readxl)

datos <- read_excel("C:/Users/oscar pinzon/Downloads/Base_Estadistica_Descriptiva (1).xlsx", sheet = 1)
## New names:
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
# Asignar la primera fila como nombres de columna
colnames(datos) <- as.character(unlist(datos[1, ]))

datos <- datos[-1, ]  # Eliminar la primera fila que ahora son los nombres

names(datos)
## [1] "ID"             "Genero"         "NivelEducativo" "Edad"          
## [5] "Hermanos"       "Estatura"       "IngresoMensual" "HorasDeTrabajo"
datos$Estatura <- as.numeric(datos$Estatura)

summary(datos$Estatura)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.500   1.620   1.750   1.748   1.870   2.000
# Número de intervalos según fórmula de Sturges
num_int <- ceiling(1 + 3.33 * log10(length(na.omit(datos$Estatura))))

num_int
## [1] 11
# 3. Este es el histograma que se optiene 

hist(datos$Estatura,
     breaks = num_int,
     main = "Histograma de Estatura (Sturges)",
     xlab = "Estatura (m)",
     ylab = "Frecuencia",
     col = "red",
     border = "black")
#Este se busco con ayuda de la IA, para obtener el comportamiento de la frecuencia 
lines(density(datos$Estatura, na.rm = TRUE), col = "darkblue", lwd = 2)

Al construir este histograma se observo que la distribución de la estatura tiene forma ligeramente simétrica, con una ligera concentración hacia la media. No se observan valores extremos o atípicos evidentes. La mayoría de las estaturas se encuentran entre los 155 y 175 cm, lo que indica que la población presenta una estatura promedio típica sin grandes desviaciones.

Para constuir este histograma primero se realizo una tabla de frecuencias para luego realizar su construcción.

Punto 3

4. Comparación entre variables

  1. Compare las alturas promedio por Género¿ Cuál es la diferencia más destacada?
# Cargar librerías necesarias
library(readxl)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)

# Cargar base de datos desde Excel
datos <- read_excel("C:/Users/oscar pinzon/Downloads/Base_Estadistica_Descriptiva (1).xlsx", sheet = "Hoja 1", skip = 1)

colnames(datos) <- c("ID", "Genero", "NivelEducativo", "Edad", "Hermanos", "Estatura", "IngresoMensual", "HorasDeTrabajo")

# Convertir columnas numéricas
datos <- datos %>%
  mutate(
    Estatura = as.numeric(Estatura),
    Genero = as.factor(Genero)
  )

# Calcular promedio de estatura por género
prom_estatura_genero <- datos %>%
  group_by(Genero) %>%
  summarise(Estatura_Promedio = mean(Estatura, na.rm = TRUE)) %>%
  arrange(desc(Estatura_Promedio))

# Verificar estructura
is.data.frame(prom_estatura_genero)  # Debe dar TRUE
## [1] TRUE
View(prom_estatura_genero)




library(ggplot2)

ggplot(datos, aes(x = Genero, y = Estatura, fill = Genero)) +
  geom_bar(stat = "summary", fun = "mean", color = "black") +
  labs(title = "Estatura Promedio por Genero",
       y = "Estatura promedio (m)",
       x = "Genero") +
  theme_minimal(base_size = 14) +
  theme(plot.title = element_text(face = "bold", hjust = 0.5)) +
  scale_fill_manual(values = c("brown", "rosybrown", "sandybrown")) +
  coord_cartesian(ylim = c(1.00, NA))  # Empieza en 1.45 pero sin recortar la parte superior

Se evidenció que el género masculino presenta una estatura promedio mayor que el femenino, lo cual es consistente con patrones biológicos esperados. La diferencia más destacada es de aproximadamente 5 a 7 cm más en promedio para los hombres. El género “otro” mostró una media cercana al promedio general, aunque con menos observaciones.

Además las alturas promedios son de 1,72 a 1,75 cm en todos los generos, en el cual como se menciono anteriormente no se presenta una diferencia destacable

  1. Analice si los ingresos promedio (IngresoMensual) varían según el nivel educativo (Nivel Educativo)
# Asegúrate de tener cargada la base y las librerías
library(readxl)
library(dplyr)
library(ggplot2)

# Cargar datos desde Excel (si no lo hiciste antes)
datos <- read_excel("C:/Users/oscar pinzon/Downloads/Base_Estadistica_Descriptiva (1).xlsx", sheet = "Hoja 1", skip = 1)
colnames(datos) <- c("ID", "Genero", "NivelEducativo", "Edad", "Hermanos", "Estatura", "IngresoMensual", "HorasDeTrabajo")

# Convertir columnas numéricas a su tipo
datos <- datos %>%
  mutate(
    Edad = as.numeric(Edad),
    Hermanos = as.numeric(Hermanos),
    Estatura = as.numeric(Estatura),
    IngresoMensual = as.numeric(IngresoMensual),
    HorasDeTrabajo = as.numeric(HorasDeTrabajo)
  )

# Calcular ingreso promedio por nivel educativo
ingresos_educ <- datos %>%
  group_by(NivelEducativo) %>%
  summarise(Ingreso_Promedio = mean(IngresoMensual, na.rm = TRUE)) %>%
  arrange(desc(Ingreso_Promedio))

# Ver resultado en consola
print(ingresos_educ)
## # A tibble: 4 × 2
##   NivelEducativo Ingreso_Promedio
##   <chr>                     <dbl>
## 1 Primaria                  2037.
## 2 Secundaria                2012.
## 3 Universitario             1948.
## 4 Técnico                   1897.
# Graficar
ggplot(ingresos_educ, aes(x = reorder(NivelEducativo, Ingreso_Promedio), y = Ingreso_Promedio, fill = NivelEducativo)) +
  geom_col() +
  geom_text(aes(label = round(Ingreso_Promedio, 0)), vjust = -0.1) +
  labs(
    title = "Ingreso mensual promedio según nivel educativo",
    x = "Nivel Educativo",
    y = "Ingreso Promedio (S/.)"
  ) +
  theme_minimal() +
  coord_flip()  # opcional para mejor lectura

El análisis mostró que el ingreso mensual promedio aumenta con el nivel educativo. Las personas con educación universitaria tienen ingresos significativamente mayores en comparación con quienes solo tienen primaria o secundaria. Con esto concluimos que entre mayor es el estudio educativo mayor ingresos tienen.