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