ANALISIS DE INDICADORES EMPRESAS 2014
ProyectoR_Grupo 2
INTRODUCCIÓN A LA PROGRAMACIÓN EN R
La programación en R es un campo apasionante dentro del ámbito de la ciencia de datos y la estadística. R es un lenguaje de programación especialmente diseñado para el análisis estadístico y la visualización de datos. Creado por Ross Ihaka y Robert Gentleman en los años 90, R se ha convertido en una herramienta esencial para investigadores, analistas y profesionales que buscan extraer conocimiento valioso de conjuntos de datos complejos.
Con su sintaxis flexible y su amplia gama de bibliotecas y paquetes, R ofrece una plataforma versátil para realizar tareas como manipulación de datos, modelado estadístico, generación de gráficos y visualización interactiva. Los usuarios pueden escribir scripts y funciones personalizadas para automatizar procesos y analizar datos de manera eficiente.
La comunidad activa de usuarios y desarrolladores ha impulsado la creación y el mantenimiento de una amplia variedad de paquetes que abordan diversas necesidades en campos como la bioinformática, la econometría, la genómica y más. La programación en R no solo implica escribir código, sino también comprender los principios estadísticos subyacentes y aplicar técnicas analíticas avanzadas. Es por ello que este proyecto se enfoca en la programación y análisis en R.
Load packages
Para el análisis de datos es de suma importancia la carga de librerias que cuentan con diferentes funciones que facilitan el manejo y análisis de la base. A continuación se cargan los siguientes paquetes:
library(openxlsx)
library(magrittr)
library(tidyverse)
library(tibble)
library(tidyr)
library(ggplot2)Load Data
Introducción
En el presente estudio, analizaremos los principales indicadores o ratios financieros de diversas empresas de nuestro país, con la finalidad de determinar su situación, esto es de vital importancia ya que permite proyectarnos a una mejora en la toma de decisiones.
El análisis financiero presentado fue realizado con una valiosa herramienta de análisis de datos, R, esta herramienta nos ofrece un entorno de desarrollo interactivo donde facilita la exploración y manipulación de los datos, gracias a la misma a más de realizar el análisis cuantitativo podemos visualizar y presentar nuestros resultados.
Al estar evaluando empresas con diferentes actividades económicas, los objetivos pueden varias de acuerdo a su naturaleza, sin embargo, nuestro análisis se enfoca principalmente en liquidez y solvencia, por lo que nos hemos propuesto los siguientes objetivos.
Objetivo General
Evaluar la liquidez y solvencia de las empresas para cumplir sus obligaciones financieras en el corto y largo plazo, con la finalidad de generar de manera sostenible una posición dentro del mercado ecuatoriano.
Objetivos específicos
- Determinar el nivel de endeudamiento del activo de las microempresas, pequeñas empresas y grandes empresas.
- Comparar la liquidez de las empresas en base al número de trabajadores.
- Describir el top 10 de las empresas con mayor apalancamiento.
Metodología
La Base a trabajar es balance_2014.xlsx, que consiste en
347 variables y 47033 observaciones. A demás de contar con 2 bases
adicionales cias y ciiu en donde tenemos el
significado de las variables de la base principal. Así se cargan las
bases con la libreria openxlsx y se procede a transformar
de un dataframe a un tibble ya que es un dataframe mejorado.
Análisis preliminar y preparación de los datos
En esta sección se creará la base, y luego se la depurará para poder identificar aquellos datos que se encuentran incompletos, incorrectos, inexactos,etc. De tal manera que podamos substituir, modificar o eliminar estos datos con el fin de obtener una base de datos de calidad y hacer un análisis correcto.
La base con la que se trabajará está compuesta por variables tales como: expediente, ruc, nombre_cia, situación, tipo, fecha_const, país, provincia, cantón, ciudad, ciiu4_nivel1, ciiu4_nivel6, trab_direc, trab_admin, trab_produc, trab_otros, tamaño, año, entre otras cientos de variables.
La base se compone de variables numéricas y categóricas.
balance<-
balance_2014 %>%
inner_join(ciiu, by=c("ciiu4_nivel1"="CODIGO")) %>%
inner_join(ciiu, by=c("ciiu4_nivel6"="CODIGO"))%>%
mutate(liquidez_corriente=v345/v539,endeu_activo=v599/v499,
ende_patrimo=v599/v698,ende_activo_fijo=v698/v498,
apalancamiento=v499/v698) %>%
rename(actividad=DESCRIPCION.x,
subactividad=DESCRIPCION.y) %>%
select(nombre_cia, situacion, tipo, pais, provincia, canton, ciudad,fecha_const,
tamanio, actividad ,subactividad,trab_direc,trab_admin,
liquidez_corriente,endeu_activo,ende_patrimo,
ende_activo_fijo,apalancamiento) %>%
mutate(actividad=as.factor(actividad),
subactividad=as.factor(subactividad),
situacion=as.factor(situacion),
tipo=as.factor(tipo))
df<-read.xlsx("Data/Variables.xlsx")
kable( df , caption = ""
, align = c('l','c', 'l')
, col.names = c("Variable","Descripción","Tipo")
, row.names = TRUE
, digits = 1
, format.args = list( decimal.mark = ",")
)| Variable | Descripción | Tipo | |
|---|---|---|---|
| 1 | nombre_cia | NOMBRE DE LA COMPAÑÍA | categótica |
| 2 | situacion | SITUACIÓN LEGAL | categótica |
| 3 | tipo | TIPO | categótica |
| 4 | pais | PAÍS | categótica |
| 5 | provincia | PROVINCIA | categótica |
| 6 | canton | CANTÓN | categótica |
| 7 | ciudad | CIUDAD | categótica |
| 8 | fecha_const | FECHA DE CONSTITUCIÓN | fecha |
| 9 | tamanio | TAMAÑO | categótica |
| 10 | actividad | ACTIVIDAD | categótica |
| 11 | subactividad | SUBACTIVIDAD | categótica |
| 12 | trab_direc | NÚMERO DE TRABAJADORES DIRECTIVOS | numérica |
| 13 | trab_admin | NÚMERO DE TRABAJADORES ADMINISTRATIVOS | numérica |
| 14 | liquidez_corriente | ACTIVO CORRIENTE/PASIVO CORRIENTE | numérica |
| 15 | endeu_activo | PASIVO/ACTIVO | numérica |
| 16 | ende_patrimo | PASIVO/PATRIMONIO | numérica |
| 17 | ende_activo_fijo | PATRIMONIO/ACTIVO | numérica |
| 18 | apalancamiento | ACTIVO/PATRIMONIO | numérica |
Con la base de datos obtenida, creamos una tabla para conocer el número total de empresas por actividad económica y por actividad económica por cada cantón:
empresas_por_canton <- balance %>% group_by(actividad,canton) %>% summarise(total_empresas=n()) %>%
arrange(desc(total_empresas))
empresas_por_canton# A tibble: 1,300 × 3
# Groups: actividad [21]
actividad canton total_empresas
<fct> <chr> <int>
1 COMERCIO AL POR MAYOR Y AL POR MENOR; REPARACIÓN DE VE… GUAYA… 5124
2 ACTIVIDADES INMOBILIARIAS. GUAYA… 3956
3 COMERCIO AL POR MAYOR Y AL POR MENOR; REPARACIÓN DE VE… QUITO 3860
4 ACTIVIDADES PROFESIONALES, CIENTÍFICAS Y TÉCNICAS. QUITO 2397
5 ACTIVIDADES PROFESIONALES, CIENTÍFICAS Y TÉCNICAS. GUAYA… 1987
6 AGRICULTURA, GANADERÍA, SILVICULTURA Y PESCA. GUAYA… 1519
7 CONSTRUCCIÓN. GUAYA… 1511
8 INDUSTRIAS MANUFACTURERAS. GUAYA… 1396
9 INDUSTRIAS MANUFACTURERAS. QUITO 1249
10 ACTIVIDADES DE SERVICIOS ADMINISTRATIVOS Y DE APOYO. QUITO 1152
# ℹ 1,290 more rows
Así, podemos notar que las empresas están concentradas en las ciuades más grandes y representativas del Ecuador como son Guayaquil y Quito.
Selección y Limpieza de datos
En esta parte del proyecto se realizó la depuración de la base, ya
que al crear los indicadores financieron se pudo observar divisiones
para 0 lo que nos arrojaba valors inf los que fueron
convertidos a NA para luego omitirlos para el análisis.
Adicional a esto se creó una función sencilla para esta
transformación
[1] 14933
finitos <- function(data, columna) {
data_filtrado <- data[is.finite(data[[columna]]), ]
return(data_filtrado)
}balance<-finitos(balance,"liquidez_corriente")
balance<-finitos(balance,"apalancamiento")
balance<-finitos(balance,"endeu_activo")
balance<-finitos(balance,"ende_patrimo")
balance<-finitos(balance,"ende_activo_fijo")
colSums(is.na(balance)) nombre_cia situacion tipo pais
0 0 0 0
provincia canton ciudad fecha_const
0 0 0 0
tamanio actividad subactividad trab_direc
0 0 0 385
trab_admin liquidez_corriente endeu_activo ende_patrimo
4074 0 0 0
ende_activo_fijo apalancamiento
0 0
Indicadores Financieros
En esta sección se muestra gráficamente el comparativo de los
indicadores financieros de liquidez y solvencia por situación
ACTIVA y provincia. Por lo que se procedió a crear la base
activas, en donde, encontramos valores atípicos y se usó
una función (tomada de la web) para poder imputarlos,
activas<-balance %>% filter(situacion=="ACTIVA")
impute_outliers <- function(x, removeNA = TRUE){
quantiles <- quantile(x, c(0.05, 0.95), na.rm = removeNA)
x[x<quantiles[1]] <- mean(x, na.rm = removeNA)
x[x>quantiles[2]] <- median(x, na.rm = removeNA)
x
}
activas$liquidez_corriente<-impute_outliers(activas$liquidez_corriente)Ahora con el paquete ggplot2 podemos agrupar por
provincia y mostrar que por fecha de constitución de cada empresa se
puede observar la liquidez_corriente, es decir que, se evalúa la
capacidad de una empresa para cumplir con sus obligaciones a corto plazo
utilizando sus activos corrientes, que son aquellos que se espera que se
conviertan en efectivo en un plazo de un año o menos. Esta métrica
proporciona una idea de la solvencia y la salud financiera de una
empresa en el corto plazo.
ggplot(activas, aes(x=fecha_const, y=liquidez_corriente, color = provincia, group=provincia)) +
geom_line() +
geom_hline(data = activas %>% group_by(provincia) %>% summarise(ymin = quantile(liquidez_corriente, 0.25), ymed = median(liquidez_corriente), ymax = quantile(liquidez_corriente, 0.75)),
aes(yintercept = ymin), linetype = "dashed", color = "red") +
geom_hline(data = activas %>% group_by(provincia) %>% summarise(ymin = quantile(liquidez_corriente, 0.25), ymed = median(liquidez_corriente), ymax = quantile(liquidez_corriente, 0.75)),
aes(yintercept = ymed), linetype = "dashed", color = "purple") +
geom_hline(data = activas %>% group_by(provincia) %>% summarise(ymin = quantile(liquidez_corriente, 0.25), ymed = median(liquidez_corriente), ymax = quantile(liquidez_corriente, 0.75)),
aes(yintercept = ymax), linetype = "dashed", color = "black") +
labs(title = "Comparativo de Indicadores de Liquidez por situación ACTIVA y provincia",
x = "Fecha constitución",
y = "Liquidez corriente") +
facet_wrap(~provincia)+
theme_minimal()+
theme(legend.position = "none")Podemos observar que en provincias como Guayas, Pichincha y Azuay existen más empresas que a su vez tienen mayor liquidez y la concentración de cada una de ellas en cuanto a sus quantiles.
Del mismo modo podemos comparar en cada provincia el apalancamiento ya que esta medidase refiere al uso de deuda o financiamiento externo para amplificar el rendimiento financiero de una empresa o inversión. En otras palabras, implica tomar prestado dinero para invertirlo en actividades que se espera generen un rendimiento mayor que el costo de la deuda, a largo plazo.
activas$apalancamiento<-impute_outliers(activas$apalancamiento)
ggplot(activas, aes(x=fecha_const, y=apalancamiento, color = provincia, group=provincia)) +
geom_line() +
geom_hline(data = activas %>% group_by(provincia) %>% summarise(ymin = quantile(apalancamiento, 0.25), ymed = median(apalancamiento), ymax = quantile(apalancamiento, 0.75)),
aes(yintercept = ymin), linetype = "dashed", color = "red") +
geom_hline(data = activas %>% group_by(provincia) %>% summarise(ymin = quantile(apalancamiento, 0.25), ymed = median(apalancamiento), ymax = quantile(apalancamiento, 0.75)),
aes(yintercept = ymed), linetype = "dashed", color = "purple") +
geom_hline(data = activas %>% group_by(provincia) %>% summarise(ymin = quantile(apalancamiento, 0.25), ymed = median(apalancamiento), ymax = quantile(apalancamiento, 0.75)),
aes(yintercept = ymax), linetype = "dashed", color = "black") +
labs(title = "Comparativo de Indicadores de Apalancamiento por situacion ACTIVA y provincia",
x = "Fecha constitución",
y = "Apalancamiento") +
facet_wrap(~provincia)+
theme_minimal()+
theme(legend.position = "none")Similar a el indicador de la liquidez las empresas pueden conseguir estas inversiones cuando son constituidas, pero por ejemplo en provincias como Bolivar podemos notar que algunas empresas no pueden coseguir estos préstamos debido tal vez a que pueden afrontar sus obligaciones a corto plazo pero no lo suficiente a largo plazo.
Así mismo, se podrá mostrar gráficamente el comparativo de los indicadores financieros de liquidez y solvencia por tipo de empresa.
ggplot(activas, aes(x=fecha_const, y=liquidez_corriente, color = tipo, group=tipo)) +
geom_line() +
geom_hline(data = activas %>% group_by(tipo) %>% summarise(ymin = quantile(liquidez_corriente, 0.25), ymed = median(liquidez_corriente), ymax = quantile(liquidez_corriente, 0.75)),
aes(yintercept = ymin), linetype = "dashed", color = "red") +
geom_hline(data = activas %>% group_by(tipo) %>% summarise(ymin = quantile(liquidez_corriente, 0.25), ymed = median(liquidez_corriente), ymax = quantile(liquidez_corriente, 0.75)),
aes(yintercept = ymed), linetype = "dashed", color = "purple") +
geom_hline(data = activas %>% group_by(tipo) %>% summarise(ymin = quantile(liquidez_corriente, 0.25), ymed = median(liquidez_corriente), ymax = quantile(liquidez_corriente, 0.75)),
aes(yintercept = ymax), linetype = "dashed", color = "black") +
labs(title = "Comparativo de Indicadores de Liquidez por situacion ACTIVA y tipo",
x = "Fecha constitución",
y = "Liquidez") +
facet_wrap(~tipo)+
theme_minimal()+
theme(legend.position = "none")Gráficamente podemos notar que la mayoría de empresas son parte de responsabilidad limitada y anónimas, si es de responsabilidad limitada, es decir que, es una forma de entidad comercial que combina características de una sociedad y una corporación, brindando a sus propietarios (llamados miembros) una protección limitada de responsabilidad similar a la de una corporación, mientras mantiene una estructura y flexibilidad operativa similar a una sociedad, y por otra son anónimas también conocida como sociedad anónima (SA), es una forma de entidad comercial que se caracteriza por tener el capital dividido en acciones que pueden ser propiedad de múltiples accionistas. La principal característica de una empresa anónima es la separación entre la propiedad y la gestión, lo que significa que los accionistas poseen las acciones y eligen a la junta directiva para que administre y tome decisiones en nombre de la empresa. Entonces estas empresas pueden hacer frente a su liquidez y apalancamiento.
ggplot(activas, aes(x=fecha_const, y=apalancamiento, color = tipo, group=tipo)) +
geom_line() +
geom_hline(data = activas %>% group_by(tipo) %>% summarise(ymin = quantile(apalancamiento, 0.25), ymed = median(apalancamiento), ymax = quantile(apalancamiento, 0.75)),
aes(yintercept = ymin), linetype = "dashed", color = "red") +
geom_hline(data = activas %>% group_by(tipo) %>% summarise(ymin = quantile(apalancamiento, 0.25), ymed = median(apalancamiento), ymax = quantile(apalancamiento, 0.75)),
aes(yintercept = ymed), linetype = "dashed", color = "purple") +
geom_hline(data = activas %>% group_by(tipo) %>% summarise(ymin = quantile(apalancamiento, 0.25), ymed = median(apalancamiento), ymax = quantile(apalancamiento, 0.75)),
aes(yintercept = ymax), linetype = "dashed", color = "black") +
labs(title = "Comparativo de Indicadores de Apalancamiento por situacion ACTIVA y tipo",
x = "Fecha constitución",
y = "Liquidez") +
facet_wrap(~tipo)+
theme_minimal()+
theme(legend.position = "none")Análisis de Resultados
¿El endeudamiento del activo fue mayor en empresas micro + pequeñas vs. grandes?
El nivel de endeudamiento del activo es mayor en las empresas micro y pequeñas a comparación de las empresas grandes, esto puede ser por diversas razones, es importante resaltar que el nivel de endeudamiento depende de factores como su industria, estructura de costos, flujos de efectivo, nivel de riesgo, objetivos, entre otros.
Pero de forma general se debe a que las empresas pequeñas tienen un limitado acceso de capital, por lo que tiene que depender de mayor número de préstamos y créditos bancarios con la finalidad de continuar sus operaciones y proyectos.
Estas empresas son percibidas en su mayoría como riesgosas por el hecho del tamaño, menor tiempo en el mercado y menor número de recursos, todas estas limitaciones hacen que las condiciones para préstamos sean muy restringidas y con intereses muy altos, lo que sigue incrementando el nivel de endeudamiento.
Otro aspecto importante que justifica el mayor nivel de endeudamiento es que su ciclo de efectivo es más extenso, ya que se tardan más días en convertir sus activos en efectivo.
micro_pequeña <- balance %>%
filter(tamanio%in% c("MICRO", "PEQUEÑA")) %>%
summarise(Promedio1 = mean(endeu_activo))
micro_pequeña# A tibble: 1 × 1
Promedio1
<dbl>
1 0.810
grande <- balance %>%
filter(tamanio%in% c("GRANDE")) %>%
summarise(Promedio2 = mean(endeu_activo))
grande# A tibble: 1 × 1
Promedio2
<dbl>
1 0.645
comparativo<- tibble(Tamaño=c("Micro+Pequeña","Grande"),
Media=c(micro_pequeña$Promedio1,grande$Promedio2))
comparativo# A tibble: 2 × 2
Tamaño Media
<chr> <dbl>
1 Micro+Pequeña 0.810
2 Grande 0.645
ggplot(comparativo, aes(x = Tamaño, y = Media, fill = Tamaño)) +
geom_bar(stat = "identity") +
labs(title = "Comparación de Endeudamiento del Activo entre Micro + Pequeña y Grande",
x = "Tamaño de Empresa", y = "Valor de Endeudamiento del Activo") +
theme_minimal()¿La liquidez por tipo de compañía es diferente entre aquellas empresas que tienen más de 60 trabajadores directos y que cuenta con 100 a 800 trabajadores administrativos?
La liquidez varía según el tipo de empresa. Y como se puede observar en los datos de liquidez corriente, no se encuentran diferencias significativas, por ende no se puede afirmar que existan diferencias en la liquidez entre los grupos analizados.
liquidez_compania<- balance %>% select(tipo,trab_direc,trab_admin,liquidez_corriente) %>%
filter(trab_direc>60,trab_admin>=100,trab_admin<=800)
liquidez_compania# A tibble: 8 × 4
tipo trab_direc trab_admin liquidez_corriente
<fct> <dbl> <dbl> <dbl>
1 ANÓNIMA 66 209 2.36
2 ANÓNIMA 64 130 1.71
3 ANÓNIMA 137 203 1.83
4 ANÓNIMA 120 167 1.82
5 SUCURSAL EXTRANJERA 69 322 1.82
6 ANÓNIMA 82 135 2.15
7 ANÓNIMA 70 277 1.85
8 SUCURSAL EXTRANJERA 78 119 3.37
# A tibble: 2 × 2
tipo Promedio3
<fct> <dbl>
1 ANÓNIMA 1.95
2 SUCURSAL EXTRANJERA 2.60
ggplot(liquidez_compania, aes(x = tipo, y = liquidez_corriente, fill = tipo)) +
geom_jitter(alpha=1,color="gray")+
geom_boxplot(alpha=0.1) +
labs(title = "Comparación de Liquidez por Tipo de Compañía",
x = "Tipo de Compañía", y = "Liquidez") +
theme_minimal()+
theme(legend.position = "none")Describe el top 10 de empresas con mayor apalancamiento.
El nivel de apalancamiento hace referencia a la deuda externa que genero la empresa para incrementar su rendimiento y maximizar ganancias.
El apalancamiento es positivo cuando la empresa esta en la capacidad de generar ingresos suficientes para cubrir el pago de la deuda y los intereses correspondientes, pero por otro lado tenemos el apalancamiento negativo, este se da cuando los ingresos no son suficientes para cubrir la deuda, esto conlleva a un riesgo de quiebra,
Por lo tanto es importante que las empresas analicen cuidadosamente su capacidad de pago y el nivel de riesgo antes de utilizar el apalancamiento, para que no se vea afectada su estabilidad financiera.
# A tibble: 10 × 2
nombre_cia apalancamiento
<chr> <dbl>
1 ADELCA DEL LITORAL S.A. 84393.
2 HIROAKY S.A. 26048.
3 MEGATROPIC S.A. 23803.
4 MOCANATI CIA.LTDA. 18946.
5 MINERA EL PARAISO S.A. MINELPARSA 17063.
6 VOITH HYDRO LTDA. 14566.
7 HOLDING IN FERLE HOLFERLE S.A. 11043.
8 TERRARIUM S.A. 10273.
9 ECUADESK S.A. 9602.
10 FERNATCON S.A. 9186.
Conclusión
Según los datos proporcionados, se concluye que las empresas micro y pequeñas tienen un mayor nivel de endeudamiento del activo en comparación con las empresas grandes. El promedio de endeudamiento del activo para las empresas micro y pequeñas es de 0.810, mientras que para las empresas grandes es de 0.645.
En cuanto a la liquidez por tipo de compañía, se analizaron dos grupos: aquellos con más de 60 trabajadores directos y que cuentan con 100 a 800 trabajadores administrativos. No se encontraron diferencias significativas en la liquidez corriente entre estos dos grupos de empresas.
El top 10 de empresas con mayor apalancamiento se presenta a continuación:
ADELCA DEL LITORAL S.A. - Apalancamiento: 84393.
HIROAKY S.A. - Apalancamiento: 26048.
MEGATROPIC S.A. - Apalancamiento: 23803.
MOCANATI CIA.LTDA. - Apalancamiento: 18946.
MINERA EL PARAISO S.A. MINELPARSA - Apalancamiento: 17063.
VOITH HYDRO LTDA. - Apalancamiento: 14566.
HOLDING IN FERLE HOLFERLE S.A. - Apalancamiento: 11043.
TERRARIUM S.A. - Apalancamiento: 10273.
ECUADESK S.A. - Apalancamiento: 9602.
FERNATCON S.A. - Apalancamiento: 9186.
Es importante destacar que un alto nivel de apalancamiento puede ser una estrategia arriesgada para las empresas, ya que si no pueden generar suficientes ingresos para cubrir sus deudas, pueden enfrentar problemas financieros significativos. Por lo tanto, las empresas deben ser cautelosas al utilizar el apalancamiento y evaluar adecuadamente su capacidad de pago y riesgo asociado.