# Librerías a usar.
library(readxl)
library(tidyverse)
library(knitr)
El marco muestral es la base de datos de los indicadores financieros con corte en el año 2020, donde se presentan el año, expediente, nombres de las empresas rama a la que pertenece cada una, la descripción de cada rama, su respectiva subrama y los diferentes indicadores financieros.
# Importamos los datos.
indicadores = read_excel("indicadores2020_cia.xlsx")
Se van a seleccionar variables en función del objetivo de la investigación y posteriormente se procederá a su depuración.
indicadores = indicadores %>%
select(RAMA,
`DESCRIPCIÓN RAMA`,
`SUBRAMA 2 DÍGITOS`,
`LIQUIDEZ CORRIENTE`)
Podemos observar entonces un resumen de los datos:
indicadores %>% summary()
## RAMA DESCRIPCIÓN RAMA SUBRAMA 2 DÍGITOS LIQUIDEZ CORRIENTE
## Length:84470 Length:84470 Length:84470 Min. : 0
## Class :character Class :character Class :character 1st Qu.: 1
## Mode :character Mode :character Mode :character Median : 2
## Mean : 626
## 3rd Qu.: 4
## Max. :23834698
## NA's :24693
Se puede observar que en la variable hay datos faltantes, procedemos a filtrarlos, ademas que a las variables de tipo categóricas transformarlas en un factor.
indicadores = indicadores %>%
filter(!is.na(`LIQUIDEZ CORRIENTE`)) %>%
mutate(RAMA = factor(RAMA)) %>%
mutate(`DESCRIPCIÓN RAMA` = factor(`DESCRIPCIÓN RAMA`)) %>%
mutate(`SUBRAMA 2 DÍGITOS` = factor(`SUBRAMA 2 DÍGITOS`))
Uno de los objetivos específicos es estimar la proporción de empresas que lograron obtener una liquidez corriente superior a 1.5 en las diferentes subramas a la que pertenecen, por lo tanto se creara una variable denominada la cual sera de tipo categórica y tendrá en caso de que la empresa tenga una liquidez corriente menor a 1.5 tendrá la categoría “Menor a 1.5”, caso contrario tendrá la categoría “Mayor a 1.5”.
indicadores$`LIQUIDEZ CORRIENTE >1.5` = rep("", nrow(indicadores))
indicadores = indicadores %>%
mutate(`LIQUIDEZ CORRIENTE >1.5` = ifelse(`LIQUIDEZ CORRIENTE` < 1.5,
"Menor a 1.5",
"Mayor a 1.5")) %>%
mutate(`LIQUIDEZ CORRIENTE >1.5` = factor(`LIQUIDEZ CORRIENTE >1.5`))
Podemos proceder entonces con el calculo de nuestra muestra por conglomerados.
Como nuestro objetivo es estimar la proporción de empresas que lograron obtener una liquidez corriente superior a 1.5 en las diferentes subramas a la que pertenecen, el tamaño de muestra determinado con una significancia \(\alpha = 0.05\) y un error absoluto del \(e = 0.05\), tenemos entonces un tamaño muestral \(n = 8.687 \approx 9\). Entonces generamos 9 números aleatorios uniformemente distribuidos y obtenemos nuestra muestra de la variable
set.seed(42)
muestra = sample(1:9)
conglomerados = unique(indicadores$`SUBRAMA 2 DÍGITOS`)[muestra]
print(conglomerados %>% as.character())
## [1] "A02" "B06" "C13" "H50" "M69" "N79" "N82" "J59"
Una vez con nuestra muestra se calculan los estadísticos deseados:
| Subrama | Número de empresas | Empresas con liquidez corriente mayor a 1,50 | (wi-pmi)^2 |
|---|---|---|---|
| N82 | 938 | 248 | 385,4081561 |
| M69 | 2830 | 847 | 1563,364713 |
| C13 | 227 | 126 | 3749,352865 |
| N79 | 2152 | 460 | 23719,83067 |
| J59 | 212 | 55 | 30,12049321 |
| A02 | 236 | 121 | 2879,831725 |
| B06 | 69 | 40 | 412,6097733 |
| H50 | 251 | 76 | 19,22153552 |
| 6915 | 1973 | 32759,73993 |
Ahora filtramos los datos de interés según la muestra.
muestra_final = indicadores %>%
filter(`SUBRAMA 2 DÍGITOS` == "N82" |
`SUBRAMA 2 DÍGITOS` == "M69" |
`SUBRAMA 2 DÍGITOS` == "C13" |
`SUBRAMA 2 DÍGITOS` == "N79" |
`SUBRAMA 2 DÍGITOS` == "J59" |
`SUBRAMA 2 DÍGITOS` == "A02" |
`SUBRAMA 2 DÍGITOS` == "B06" |
`SUBRAMA 2 DÍGITOS` == "H50" )
Ya con la muestra y las variables de interés, se pueden hacer análisis exploratorios. Como por ejemplo un gráfico de proporción por subrama de la empresa y si su liquidez corriente es mayor o menos a 1.5.
muestra_final %>%
mutate(`SUBRAMA 2 DÍGITOS` = `SUBRAMA 2 DÍGITOS` %>% fct_infreq() %>% fct_rev()) %>%
ggplot() +
geom_bar(mapping = aes(x = `SUBRAMA 2 DÍGITOS`,
y = (..count..)/sum(..count..),
fill = `LIQUIDEZ CORRIENTE >1.5`),
color = "white",
position = "dodge") +
coord_flip() +
labs(title = "Proporción de empresas con liquidez corriente superior a 1.5",
subtitle = "Clasificacion: Subrama",
caption = "Nota: Basado en una muestra aleatoria por conglomerados.") +
ylab("") + xlab("") +
scale_fill_manual(values = c("#002A7C", "#4E97D1")) +
guides(fill = guide_legend(title = "Liquidez Corriente:")) +
theme_minimal()
Ahora, ya con nuestra muestra estimamos \(p\).
muestra_final$`LIQUIDEZ CORRIENTE >1.5` = muestra_final$`LIQUIDEZ CORRIENTE >1.5` %>% as.character()
p = sum(muestra_final$`LIQUIDEZ CORRIENTE >1.5` == "Mayor a 1.5")/length(muestra_final$`LIQUIDEZ CORRIENTE >1.5` == "Mayor a 1.5")
print(p)
## [1] 0.29
Calculando un intervalo de confianza del \(95\%\)
alpha = 0.05
n = 9
IC.95 = rbind(
p - qnorm(p = alpha/2)*sqrt(p*(1-p)/n),
p + qnorm(p = alpha/2)*sqrt(p*(1-p)/n)
)
print(IC.95)
## [,1]
## [1,] 0.586452427
## [2,] -0.006452427