#3. Analisis Exploratorio (EDA)
#Cargamos las librerias que utilizaremos para procesar la informacion
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(openxlsx)
## Warning: package 'openxlsx' was built under R version 4.4.3
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.4.3
## corrplot 0.95 loaded
library(Amelia)
## Warning: package 'Amelia' was built under R version 4.4.3
## Cargando paquete requerido: Rcpp
## ##
## ## Amelia II: Multiple Imputation
## ## (Version 1.8.3, built: 2024-11-07)
## ## Copyright (C) 2005-2025 James Honaker, Gary King and Matthew Blackwell
## ## Refer to http://gking.harvard.edu/amelia/ for more information
## ##
#URL de la base de datos
url <- "https://github.com/ralomonpez75-web/Estadistica_Inferencial/raw/main/Base_Economia_Negocios.xlsx"
#Descargar el archivo en github y abrirlo
temp_file <- tempfile(fileext=".xlsx")
download.file(url,temp_file,mode="wb")
base_datos<-read_excel(temp_file)
unlink(temp_file)
#Calculamos el tamaño de la base de datos (Filas x Columnas)
dim(base_datos)
## [1] 100 11
#Verificamos si las 11 columnas tienen 100 filas cada una o si a alguna de esas columnas le faltan filas.
data_df<-as.data.frame(base_datos)
data_df <- data_df %>% mutate(across(where(is.character),as.factor))
if(sum(is.na(data_df))==0){
cat("La base de datos esta completa y no existen valores faltantes\n")
}else{
variables_categoricas <- c('sexo','nivel_educativo','tiene_emprendimiento','sector_economico','maneja_presupuesto','realiza_inversiones')
amelia_result <- amelia(data_df,m=1,noms=variables_categoricas)
missmap(amelia_result)
}
## La base de datos esta completa y no existen valores faltantes
#3.1 Analisis exploratorio de la base de datos
summary(data_df)
## edad sexo nivel_educativo tiene_emprendimiento
## Min. :23.00 Femenino :46 Postgrado :20 No:49
## 1st Qu.:33.00 Masculino:45 Técnico :28 Sí:51
## Median :45.00 Otro : 9 Universitario:52
## Mean :45.00
## 3rd Qu.:56.25
## Max. :65.00
## sector_economico maneja_presupuesto realiza_inversiones ingreso_mensual
## Comercio :25 No:25 No:60 Min. : 897963
## Manufactura:25 Sí:75 Sí:40 1st Qu.:1935934
## Servicios :25 Median :2446856
## Tecnología :25 Mean :2446225
## 3rd Qu.:2983666
## Max. :4368968
## gasto_mensual nivel_endeudamiento satisfaccion_economica
## Min. : 417621 Min. : 1.00 Min. : 1.00
## 1st Qu.:1414284 1st Qu.: 3.00 1st Qu.: 3.00
## Median :1715756 Median : 6.00 Median : 6.00
## Mean :1738812 Mean : 5.54 Mean : 5.58
## 3rd Qu.:2098176 3rd Qu.: 9.00 3rd Qu.: 8.00
## Max. :3210431 Max. :10.00 Max. :10.00
#3.2 Graficos Descriptivos
#Grafico circular que muestra la distribucion del genero
#primero se calculan frecuencias relativas
frecuencia_relativa <- data_df %>%
count(sexo) %>%
mutate(frecuencia_relativa=n/sum(n)*100,
etiquetas=paste0(sexo,"\n",round(frecuencia_relativa,1),"%"))
#Luego graficamos en base a los resultados obtenidos
ggplot(frecuencia_relativa,aes(x="",y=frecuencia_relativa,fill=sexo)) +
geom_col(color="black") +
geom_text(aes(label=etiquetas),
position = position_stack(vjust=0.5),
size=4, color = "white") +
coord_polar(theta = "y") +
labs(title = "Distribucion por sexo",
fill = "sexo") +
theme_void() +
scale_fill_manual(values=c("lightblue","pink","lightgreen"))
#Caja de bigotes (BOX_PLOT) para analizar variables edad y sexo
ggplot(data_df,aes(x=sexo,y=edad,fill=sexo)) +
geom_boxplot() +
labs(title="Distribucion de edades por sexo",
x="Sexo",
y="Edad",
fill="Sexo") +
scale_fill_manual(values=c("lightblue","pink","lightgreen")) +
theme_minimal()
#Grafico de barras agrupado por sector economico y empresas que manejan presupuesto
ggplot(data_df,aes(x=sector_economico,fill=maneja_presupuesto)) +
geom_bar(position="dodge") +
labs(title="¿Maneja Presupuesto?",
x="Sector Economico",
y="Cantidad de personas",
fill="Maneja Presupuesto") +
theme_minimal() +
theme(axis.text.x=element_text(angle=45,hjust=1))
#Grafico de barras agrupado por sector economco y empresas que realizan inversiones
ggplot(data_df,aes(x=sector_economico,fill=realiza_inversiones)) +
geom_bar(position="dodge") +
labs(title="¿Realiza Inversiones?",
x="Sector Economico",
y="Cantidad de personas",
fill="Realiza Inversiones") +
theme_minimal() +
theme(axis.text.x=element_text(angle=45,hjust=1))