Presentación

La asignatura “Economía Aplicada a los Negocios” forma parte de la Unidad de Formación Disciplinar Avanzada y tiene como objetivo proporcionar a los estudiantes los conocimientos y habilidades necesarios para analizar y evaluar el entorno económico de las empresas en lo que tiene que ver con los que se producen en su contexto sectorial, nacional y global. Al finalizar el curso, los estudiantes tendrán una perspectiva más clara y una comprensión más profunda de los acontecimientos económicos actuales que le permitirán vislumbrar mejores estrategias en la gestión de los negocios o empresas, basados en valores y principios éticos.

imagen 1

La guía ha sido diseñada como una ruta a seguir por el maestrante además de la tutoría docente de acuerdo con las horas establecidas en la modalidad semipresencial. Se presenta la metodología de enseñanza y aprendizaje, las fechas en las cuales se abordarán las temáticas, así como las actividades que se desarrollan en cada componente de aprendizaje de las dos unidades que se deberán cumplir para la consecución de los resultados de aprendizaje.

La Unidad de Posgrados, la Universidad Nacional de Loja y sus autoridades, extiende un saludo y le dan la bienvenida a este nuevo reto que se presenta en este ciclo de estudios, augurándole éxitos en el desarrollo de sus actividades académicas, que estamos seguros las cumplirá con la mayor responsabilidad y profesionalismo que caracterizan a los estudiantes que han pasado por estas aulas universitarias.

Metodología

La presente guía de Economía Aplicada a los Negocios se estructura en dos unidades clave, cada una diseñada para promover un aprendizaje integral y efectivo. La metodología adoptada en esta guía se basa en la configuración de tres elementos fundamentales en cada unidad, los cuales aseguran un enfoque pedagógico equilibrado y enfocado en el desarrollo de competencias teóricas y prácticas.

imagen 1
  1. Aprendizaje en contacto con el docente: Este componente abarca las sesiones dirigidas por el docente, donde se presentan y explican los conceptos teóricos esenciales de cada unidad. A través de clases magistrales, discusiones y análisis de casos, se busca proporcionar una base sólida de conocimientos que los estudiantes podrán aplicar en contextos empresariales reales.

  2. Aprendizaje práctico experimental: En este segmento, se promueve la aplicación activa de los conocimientos adquiridos mediante ejercicios prácticos, estudios de caso, y simulaciones de situaciones económicas y empresariales. Estas actividades están diseñadas para que los estudiantes experimenten y comprendan de manera directa cómo se manifiestan y resuelven los problemas económicos en el ámbito de los negocios.

  3. Aprendizaje autónomo: Este elemento fomenta la capacidad de los estudiantes para aprender de manera independiente, desarrollando habilidades de investigación, análisis crítico y resolución de problemas. Se incluyen tareas, lecturas complementarias y actividades de autoevaluación, que permitirán a los estudiantes profundizar en los temas abordados y reforzar su aprendizaje de manera autónoma.

La guía ofrece un conjunto detallado de actividades que se implementarán a lo largo de la asignatura, acompañadas de ejemplos claros que facilitan su comprensión y resolución. Este enfoque metodológico garantiza que los estudiantes no solo adquieran conocimientos teóricos, sino que también desarrollen competencias prácticas esenciales para su desempeño en el mundo de los negocios.

Flourish

Definición

Ejemplo

▸ Los objetivos de esta actividad son:

  1. Descubrir cómo la estructura de los datos determina las posibilidades de visualización.
  2. Iniciarse en el pensamiento de estructuración de datos para su visualización.
  3. Trabajar con la herramienta Flourish para realizar 2 visualizaciones y una historia que transmitan información correcta de los datos.

▸ Utilizando la herramienta Flourish, realice 2 visualizaciones que permitan conocer información interesante sobre los datos. Es posible, que para determinadas visualizaciones tengan que modificar los datos utilizando alguna herramienta como Microsoft Excel. Debe contener al menos dos visualizaciones e indicar con una historia, qué información descubrió a partir de los datos, reflejando así la utilidad de las visualizaciones.

▸ El conjunto de datos proporcionado (adjunto) contiene información de 30479 alojamientos de Airbnb en la ciudad de New York. En concreto, entre diferentes datos, se han registrado el barrio en el que se encuentra, el tipo de propiedad y de habitación que se alquila, número de camas, precio, número de reviews y la puntuación promedio entre 0 y 100 obtenidas en las reviews.

▸ Al final de la actividad usted será capaz de: 1. Importar datos a Flourish. 2. Crear una visualización partiendo de los datos. 3. Descubrir la información que contienen los datos. 4. Redactar una Historia basada en las visualizaciones realizadas.

Desarrollo:

  1. Primero, nos dirijimos al enlace: https://flourish.studio/

  2. Segundo, debemos seleccionar el tipo de gráfico que desea mostrar y de ese modo, deberá arreglar su base de datos.

Emepecemos, selecciona “New visualization”

imagen 1

Ahora debemos elegir el tipo de gráfico y así arreglar la base de datos

imagen 1

La base de datos debe estar organizada así:

imagen 1

Entonces, el gráfico quedaría así:

imagen 1

Elegimos un nuevo tipo de gráfico

imagen 1

La base de datos debe estar organizada así:

imagen 1

Con nuestros datos, hemos organizado la base así:

imagen 1

La información reportada queda así:

imagen 1

Elegimos un nuevo gráfico

imagen 1

La base de datos debe estar organizada así:

imagen 1

Con nuestros datos, hemos organizado la base así:

imagen 1

La información reportada queda así:

imagen 1

Procedemos a seleccionar un nuevo gráfico

imagen 1

La base de datos debe estar organizada así:

imagen 1

Nuestra base queda así:

imagen 1

Gráficamente:

imagen 1

Bien, ya que tenemos la información en gráficos, procedemos a realizar un informe en Canva (https://www.canva.com/)

Seleccionamos la plantilla acorde a nuestros gustos:

imagen 1

Una vez seleccionada la plantilla, en la sección Apps buscamos “Flourish” y elegimos los gráficos que hemos realizado previamente en Flourisch, por tanto, puedes ir organizando la información y analizando. A continuación, presentamos como quedó el informe en Canva.

imagen 1
imagen 1
imagen 1
imagen 1
imagen 1
imagen 1
imagen 1

Power BI

Definición

Ejemplo 1

Objetivos: • Desarrollar un Dashboard interactivo que facilite y sintetice la comprensión de un conjunto de datos. • Extraer conclusiones relevantes de los datos mediante la creación de visualizaciones efectivas.

Actividades requeridas: 1. Recopilación de datos: o Obtener una base de datos de Kaggle (https://www.kaggle.com/datasets) o utilizar datos de su proyecto de investigación.

Se extrajo datos del índice de Precios al Consumidor (IPC), mismo que es un indicador mensual, nacional y para nueve ciudades, que mide los cambios en el tiempo del nivel general de los precios, correspondientes al consumo final de bienes y servicios de los hogares de estratos de ingreso: alto, medio y bajo, residentes en el área urbana del país.

imagen 1
imagen 1

La Canasta Familiar Básica (CFB) es un conjunto de bienes y servicios que son imprescindibles para satisfacer las necesidades básicas del hogar tipo compuesto por 4 miembros con 1,6 perceptores de ingresos, que ganan la remuneración básica unificada. Calcular el costo de esta canasta es necesario para el análisis de la relación entre remuneraciones e inflación. Los datos son obtenidos de Kaggle (2024) en base a la información proporcionada por el Instituto Nacional de Estadísticas y Cesos (INEC), donde recopila 384 observaciones.

  1. Proceso ETL (Extracción, Transformación y Carga): Prepararamos los datos para su análisis mediante limpieza, transformación y carga en Power BI.
imagen 1

Una vez realizado el proceso ETL, en la Figura 1 se puede observar el ingreso familiar mensual por año, durante este periodo el promedio es de $73,52, sin duda esto se ocasiona por la falta de empleos estables que no les permiten acceder a las personas a salarios básicos, en cambio el ingreso familiar mensual promedio máximo es de $79333.

Cabe importante mencionar que el SBU (salario básico unificado) en el 2000 fue de $56,65, en el 2005 de $150,00, desde el 2010 hasta el 2016 el alza del SBU ha sido en promedio de $20 dólares por año, en el año 2020 y 2021 el valor se congeló en $400,00 a causa de la emergencia sanitaria por el COVID, en el 2022 y 2023 se realizó el alza de $25,00 dólares y para el 2024 el alza de este rubro ha decrecido con respecto al año anterior en apenas $10.00. Sin embargo, hay personas que perciben salarios sumamente elevados a los ingresos promedio del país, siendo recibido por el quintil más alto, aumentando la desigualdad.

Figura 1. Ingreso familiar mensual por año imagen 1

En la Figura 2 se analiza el promedio de las fluctuaciones de los costos de la canasta básica mensual por año, el costo mínimo de la canasta básica en este periodo es de $128,26 y el costo máximo es de $753,62, desde el mes de julio de 2000 se calcula el ingreso familiar con un hogar tipo de cuatro miembros, no obstante, la línea de color de blanco muestra el ingreso, hasta el 2015 el ingreso que percibían era mayor al costo de la canasta básica, de ahí en adelante el ingreso no avanza a cubrir la canasta básica.

Figura 2. Costo de la canasta básica mensual por año imagen 1

La Figura 3 muestra el promedio de la canasta básica por año de acuerdo al gobierno de turno, podemos considerar que en el gobierno de León Febres Cordero el promedio de canasta básica fue de $183,00 dólares y en el de Guillermo Lasso el costo fue de $724,00, existen varios factores que inciden en el incremento del precio de la canasta básica, siendo uno de los principales la alta dependencia a las materias primas, bienes intermedios, además problemas económicos, políticos y sociales.

Figura 3. Promedio de la canasta básica por año de acuerdo al gobierno de turno imagen 1

En la Figura 4 se evidencia el ingreso promedio por cada mes en función del porcentaje general, donde febrero, marzo y abril tienen los porcentajes más alto con 8,69; 8,66; y 8,52%, se puede justificar con el pago de utilidades que las empresas deben cancelar en ese mes, y porque se registra en la Costa el pago de la bonificación del décimo cuarto sueldo.

Figura 4. Ingreso promedio mensual imagen 1

En la Figura 5 se presenta la restricción de consumo, es decir, cuanto pueden comprar con el ingreso que consumen, esto se ha realizado por meses, donde se observa que en todos los meses tenemos restricción de consumo, las familias ecuatorianas deben limitar sus gastos y satisfacer únicamente las necesidades prioritarias; en este caso se presenta la mayor restricción en septiembre, esto es debido a las temporadas escolares en la Sierra que les permite destinar sus ingresos a la compra de útiles escolares; y luego le sigue agosto, que se justifica por la razón antes detallada. Por tanto, se recomienda que las familias de nuestro país busquen nuevas fuentes de ingreso para no depender únicamente de un SBU.

Figura 5. Restricción de consumo promedio por mes imagen 1

En la Figura 6 mostramos la relación del precio promedio de la canasta básico con el ingreso mensual familiar de acuerdo a cada mes, donde gráficamente se observa que de forma general, el precio promedio de la canasta básica supera al ingreso promedio de las familias ecuatorianas, donde marzo el único mes donde hay un superávit del ingreso, y esto se explica por el pago de utilidades a empleados del sector privado, y para enero ocurre lo mismo por el pago de décimos en el mes de diciembre.

Figura 6. Comparación del precio promedio de la canasta básica con el ingreso mensual imagen 1

Finalmente, se presenta la Figura 7 se muestra como el precio promedio de la canasta básica se explica por el nivel de ingresos, gobierno de turno y de acuerdo al mes. En este sentido, el gobierno de Lenin Moreno explica en mayor medida el aumento de la canasta básica específicamente en un aumento de $314,10; seguido tenemos el gobierno de Rafael Correa que explica en un incremento de $169,50, y finalmente el ingreso en $152,80.

Figura 7. Ingreso familiar influyente por gobierno imagen 1

Evidencia del proceso antes detallado:

imagen 1
imagen 1
imagen 1
imagen 1
imagen 1
imagen 1

Ejemplo 2

  1. Abre el archivo de Excel titulado “VENTAS GENERALES_TAREA”.
  2. Importe todas las hojas (Ventas, Sucursal, Vendedor, Tipo, Producto y Categoría).
  3. Limpia las bases originales.
imagen 1

Se procede a limpiar la base para continuar con el respectivo análisis

imagen 1
imagen 1
  1. Crea una nueva consulta denominada “VENTAS GENERALES” con las siguientes columnas: Factura, Fecha, Sucursal, Nombre de la ciudad, Vendedor, Tipo de producto, Descripción del tipo, Producto, Categoría y Venta.
imagen 1
  1. Crea un Parámetro llamado “Porcentaje” con un valor del 2% (0,02).
imagen 1
  1. Establece una columna personalizada llamada “Comisión a cobrar” donde se calcule la Venta multiplicada por el Porcentaje.
imagen 1
  1. Genera una nueva tabla que agrupe por vendedor y que se resuma por la suma de las Ventas_tot1 llamada “Agrupar_1”
imagen 1
imagen 1
imagen 1
  1. Genera una nueva tabla que agrupe por vendedor y producto y además que se resuma por la suma de las Ventas_tot2; llamada “Agrupar_2”
imagen 1
imagen 1
  1. Cierra y aplica los cambios para guardarlos y salir del editor de Power Query.

  2. Revisa las relaciones con la tabla VENTAS GENERALES. Si falta alguna, agrégala. Si el programa estableció alguna relación directa, revísala y corrígela si es necesario.

imagen 1
  1. Crea una “Nueva Columna” llamada “Descuento” donde se calcule el 1% de las Ventas (ventas * 0,01).
imagen 1
imagen 1
imagen 1
  1. Crea una tabla calendario utilizando funciones basadas en la columna “Fecha” de la tabla VENTAS GENERALES. Nota: La tabla calendario debe contener año, mes, mes en texto, y día en texto.
imagen 1
imagen 1
imagen 1
imagen 1
imagen 1
imagen 1
  1. Debes crear medidas para calcular: a) Ventas totales en dólares, b) Conteo de ventas.
imagen 1
imagen 1
imagen 1
  1. Desarrolla un informe que conste de 5 páginas:

14.1. Tres hojas de detalle: Ventas por sucursal (Mapa: quitar título al mapa y leyenda centrada a la izquierda), Ventas por vendedor (Columnas agrupadas: grafique la línea de promedio), Ventas por producto (Barras: grafique la línea promedio); Ventas por fecha (proyecta las ventas); Haz un análisis de componentes principales (Ventas en función de ciudad, producto, vendedor). Utiliza herramientas que permitan visualizar adecuadamente la información, con visualizaciones diferentes y agregando métricas pertinentes.

14.2. Una hoja dashboard que aplique tarjetas, filtros y otros visualizadores que proyecten la información más relevante.

14.3. Una hoja índice para establecer la relación entre las diferentes hojas.

14.4. Analiza la información.

imagen 1

En la Figura 1 podemos observar el promedio de ventas por vendedor, José lidera las ventas con un promedio de $735 mil, en segundo lugar, está Joel con $701 mil, posterior se ubica Saúl con $691; en contraste los vendedores con ventas menores del promedio de ventas son Andrea, Mariana y Mauricio con menos de $662 mil.

Figura 1. Ventas por vendedor

imagen 1

En la Figura 2 se analiza el promedio de ventas por producto, claramente se puede percibir que el grupo de vinos son los productos con más ventas ocupando los primeros lugares de la lista de productos, el vino 5 tiene ventas promedias de $7.580 mil, y contrariamente el producto con menos ventas son los tacos arrachera con ventas de $790 mil muy por debajo del promedio de ventas.

Figura 2. Promedio de venta por producto imagen 1

En la Figura 3 se observa el promedio de ventas por mes, verificando que en el mes de julio las ventas son superiores lo que podría darse por varias razones como que muchos trabajadores reciben una bonificación a finales del mes de junio teniendo más dinero disponible para gastar en el mes de julio, adicional en el mes de julio se celebra la Feria de las Flores en Medellín siendo un evento muy concurrido por turistas. El mes de abril es el segundo en la lista que refleja ventas más altas lo cual podría ser por la Semana Santa, puesto que, esta fecha es una de las festividades mas importantes en Colombia, adicional en el mes de abril inicia el cambio de temporada de primavera/verano lo que puede llevar a un incremento en la compra de ropa y artículos relacionados con la nueva estación.

En cambio, se observa que el mes de enero tiene las ventas más bajas lo cual podría ser por los gastos de las festividades de Navidad y Año Nuevo muchas de las personas tienen menos disponibilidad de dinero, adicional en el mes de enero los estudiantes están de vacaciones lo que podría reflejar una reducción en el consumo regular.

Figura 3. Promedio de ventas por mes imagen 1

En la Figura 4 se analizará la variable promedio de venta desde categoría y producto, en el cual se reflejará que la categoría mas vendida es Vinos, indicando que esta categoría se vende 5.45 millones más en comparación del resto de los valores de Categorías. Con lo cual se puede indicar que la Categoría Vinos si es un elemento clave en el promedio de ventas, esto se puede dar puesto que los colombianos han desarrollado un gusto creciente por el vino, el vino se ha integrado mas en la vida cotidiana y en celebraciones, con lo que ha aumentado la opción de ser una bebida exclusiva; además en Colombia se celebran cada vez mas eventos relacionados con el vino como ferias, festivales y catas.

Figura 5. Elementos influyentes clave en el aumento de ventas imagen 1
Portada principal del dashboard imagen 1

Plataforma R studio

Definición

Ejemplo 1

▸ Los objetivos de esta actividad son:

Descubrir cómo funciona R studio.

Importar datos.

Realizar análisis estadístico a nivel descriptivo.

Para el desarrollo del presente caso práctico se utilizó la base de datos de la Superintendencia de Compañías, Valores y Seguros (2024), tomando en cuenta la información de los Estados Financieros presentados bajo el estado de compañías activas correspondientes al 2019 (https://appscvsmovil.supercias.gob.ec/ranking/reporte.html)

Primer paso, importar la base con la que vamos a trabajar este caso práctico.

library(readxl)
ranking_2019 <- read_excel("ranking_2019.xlsx")
## New names:
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
## • `` -> `...9`
## • `` -> `...10`
## • `` -> `...11`
## • `` -> `...12`
## • `` -> `...13`
## • `` -> `...14`
## • `` -> `...15`
## • `` -> `...16`
## • `` -> `...17`
## • `` -> `...18`
## • `` -> `...19`
## • `` -> `...20`
## • `` -> `...21`
## • `` -> `...22`
View(ranking_2019)

Es importante limpiar la base para poder trabajar correctamente, en este caso debemos eliminar la primera fila.

Para esto es necesario instalar el siguiente paquete:

Por consiguiente, procedemos a eliminar la primera fila, tener en cuenta que en la ruta de la base de datos, se debe cambiar las barras invertidas () por barras inclinadas (/).

datos <- read_excel("C:/Users/jose.ordonez/Desktop/UNL_2025/Guia/ranking_2019.xlsx", skip = 1)
## New names:
## • `Posición` -> `Posición...1`
## • `Año` -> `Año...2`
## • `Posición` -> `Posición...3`
## • `Año` -> `Año...4`

▪ Determine el número de filas, columnas y dimensión.

ncol(ranking_2019)
## [1] 22
nrow(ranking_2019)
## [1] 79782
dim(ranking_2019)
## [1] 79782    22

▪ Obtén un resumen descriptivo básico de las variables numéricas con la función summary ().

summary(ranking_2019)
##  Fecha de corte - Tue Jun 18 00:04:10 ECT 2024     ...2          
##  Length:79782                                  Length:79782      
##  Class :character                              Class :character  
##  Mode  :character                              Mode  :character  
##      ...3               ...4               ...5               ...6          
##  Length:79782       Length:79782       Length:79782       Length:79782      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##      ...7               ...8               ...9              ...10          
##  Length:79782       Length:79782       Length:79782       Length:79782      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##     ...11              ...12              ...13              ...14          
##  Length:79782       Length:79782       Length:79782       Length:79782      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##     ...15              ...16              ...17              ...18          
##  Length:79782       Length:79782       Length:79782       Length:79782      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##     ...19              ...20              ...21              ...22          
##  Length:79782       Length:79782       Length:79782       Length:79782      
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character

Análisis descriptivo básico:

▪ Genera tablas de frecuencias absolutas y relativas de las variables categóricas que consideres más importantes.

En este caso se realiza una tabla de frecuencia del sector al que pertenecen las empresas.

tabla_sector<- table(datos$Sector)
print(tabla_sector)
## 
## MERCADO DE VALORES         SOCIETARIO 
##                400              79381
prop_sector<- prop.table(tabla_sector)
print(prop_sector)
## 
## MERCADO DE VALORES         SOCIETARIO 
##        0.005013725        0.994986275

Asimismo, se realiza tablas respecto al número de empresas de cada provincia.

tabla_prov<- table(datos$Provincia)
print(tabla_prov)
## 
##                          AZUAY                        BOLIVAR 
##                           3819                            188 
##                          CAÑAR                         CARCHI 
##                            534                            295 
##                     CHIMBORAZO                       COTOPAXI 
##                            796                            916 
##                         EL ORO                     ESMERALDAS 
##                           2597                            600 
##                      GALAPAGOS                         GUAYAS 
##                            479                          32365 
##                       IMBABURA                           LOJA 
##                            898                           1076 
##                       LOS RIOS                         MANABI 
##                           1183                           3554 
##                MORONA SANTIAGO                           NAPO 
##                            395                            247 
##                       ORELLANA                        PASTAZA 
##                            521                            186 
##                      PICHINCHA                    SANTA ELENA 
##                          24855                            783 
## SANTO DOMINGO DE LOS TSACHILAS                      SUCUMBIOS 
##                            953                            645 
##                     TUNGURAHUA               ZAMORA CHINCHIPE 
##                           1393                            503
prorp_prov<- prop.table(tabla_prov)
print(prorp_prov)
## 
##                          AZUAY                        BOLIVAR 
##                    0.047868540                    0.002356451 
##                          CAÑAR                         CARCHI 
##                    0.006693323                    0.003697622 
##                     CHIMBORAZO                       COTOPAXI 
##                    0.009977313                    0.011481430 
##                         EL ORO                     ESMERALDAS 
##                    0.032551610                    0.007520588 
##                      GALAPAGOS                         GUAYAS 
##                    0.006003936                    0.405673030 
##                       IMBABURA                           LOJA 
##                    0.011255813                    0.013486920 
##                       LOS RIOS                         MANABI 
##                    0.014828092                    0.044546947 
##                MORONA SANTIAGO                           NAPO 
##                    0.004951054                    0.003095975 
##                       ORELLANA                        PASTAZA 
##                    0.006530377                    0.002331382 
##                      PICHINCHA                    SANTA ELENA 
##                    0.311540342                    0.009814367 
## SANTO DOMINGO DE LOS TSACHILAS                      SUCUMBIOS 
##                    0.011945200                    0.008084632 
##                     TUNGURAHUA               ZAMORA CHINCHIPE 
##                    0.017460298                    0.006304759

▪ Calcula las medidas de tendencia central (media, mediana) para por lo menos dos variables numéricas.

mean(datos$`Ingreso por ventas
2019`)
## [1] 1320540
mean(datos$`Utilidad neta
2019`)
## [1] 84148.67
median(datos$`Ingreso por ventas
2019`)
## [1] 16920
median(datos$`Utilidad neta
2019`)
## [1] 46

▪ Calcula las medidas de dispersión (rango, varianza, desviación estándar) para cada variable numérica.

range(datos$`Ingreso por ventas
2019`)
## [1]          0 2103828360
var(datos$`Ingreso por ventas
2019`)
## [1] 2.649326e+14
sd(datos$`Ingreso por ventas
2019`)
## [1] 16276749
range(datos$`Patrimonio
2019`)
## [1]  -43590647 1389319180
var(datos$`Patrimonio
2019`)
## [1] 9.287544e+13
sd(datos$`Patrimonio
2019`)
## [1] 9637190

▪ Crea histogramas y diagramas de cajas para visualizar la distribución de las variables numéricas.

hist(datos$`Activio
2019`)

Para mejorar la apreciación del histograma

hist(datos$`Activio
2019`, 
     main = "Histograma Activo 2019", 
     xlab = "Valor de Activo 2019", 
     ylab = "Frecuencia", 
     col = "lightblue")

boxplot(datos$`Activio
2019`)

hist(datos$`Utilidad antes del impuesto
2019`)

boxplot(datos$`Utilidad antes del impuesto
2019`)

Análisis de correlación:

▪ Calcula el coeficiente de correlación lineal entre pares de variables numéricas utilizando la función cor().

En este sentido, se analiza el grado de correlación que presenta la utilidad neta en base al ingreso por ventas, donde se obtiene el 44,77%, es decir, el ingreso por ventas explica en esa proporción los cambios que presente la utilidad neta.

cor(datos$`Utilidad neta
2019`, datos$`Ingreso por ventas
2019`)
## [1] 0.4476654

Asimismo, se analiza como el patrimonio de las empresas explica los cambios en la utilidad neta, donde este se obtiene del 54,98%, siendo más alto que el caso anterior, por tanto, el patrimonio explica en mayor media las variaciones de la utilidad neta.

cor(datos$`Utilidad neta
2019`, datos$`Patrimonio
2019`)
## [1] 0.5498424

Modelos de regresión:

▪ Ajusta un modelo de regresión lineal simple entre una variable dependiente y una variable independiente utilizando la función lm().

En efecto, se estimó una regresión lineal simple, donde la variable dependiente es la utilidad neta y la variable independiente es el ingreso por ventas, por tanto, el efecto que presenta es estadísticamente significativo, por ende, a medida que el ingreso por ventas aumenta en una unidad (miles de dólares), la utilidad neta aumenta en 0.059 (miles de dólares).

reg1<- lm(datos$`Utilidad neta
2019` ~ datos$`Ingreso por ventas
2019`)
summary(reg1)
## 
## Call:
## lm(formula = datos$`Utilidad neta\n2019` ~ datos$`Ingreso por ventas\n2019`)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -51800428    -11294     -6605     -6605 430573714 
## 
## Coefficients:
##                                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                       6.605e+03  6.781e+03   0.974     0.33    
## datos$`Ingreso por ventas\\n2019` 5.872e-02  4.153e-04 141.404   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1909000 on 79779 degrees of freedom
## Multiple R-squared:  0.2004, Adjusted R-squared:  0.2004 
## F-statistic: 2e+04 on 1 and 79779 DF,  p-value: < 2.2e-16

Finalmente, se estimó una regresión lineal múltiple, donde la variable dependiente es la utilidad neta y la variable independiente es el ingreso por ventas, y las variables de control: cantidad de empleados e Impuesto a la Renta causado, donde todas las variables incluidas en el modelo son estadísticamente significativas a excepción de la cantidad de empleados. En este sentido, cuando el ingreso por ventas aumenta en una unidad (mil dólares) la utilidad neta aumenta en 0.02 (miles de dólares). Asimismo, cuando el IR causado aumenta en una unidad (miles de dólares) la utilidad neta incrementa en 1.39 (miles de dólares), dado que, una empresa cuando vende más, debe pagar impuestos, y por ende significa que, debido al alto volumen de ventas, obtendrá mayor ganancia. La cantidad de empleados también expresa un aumento en la utilidad neta, lo cual tiene sentido, si la empresa contrato mayor número de trabajadores significa que le va bien y por ende, obtendrá mayor lucro, sin embargo, no es significativo estadísticamente.

reg2<- lm(datos$`Utilidad neta
2019` ~ datos$`Ingreso por ventas
2019`+ datos$`Cant. Empleados`+ datos$`IR causado
2019`)
summary(reg2)
## 
## Call:
## lm(formula = datos$`Utilidad neta\n2019` ~ datos$`Ingreso por ventas\n2019` + 
##     datos$`Cant. Empleados` + datos$`IR causado\n2019`)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -122151182     -20724     -18949     -18936  430561377 
## 
## Coefficients:
##                                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                       1.893e+04  6.506e+03   2.910  0.00361 ** 
## datos$`Ingreso por ventas\\n2019` 2.476e-02  5.702e-04  43.427  < 2e-16 ***
## datos$`Cant. Empleados`           2.396e+00  8.699e+00   0.275  0.78298    
## datos$`IR causado\\n2019`         1.391e+00  1.664e-02  83.589  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1831000 on 79777 degrees of freedom
## Multiple R-squared:  0.2648, Adjusted R-squared:  0.2648 
## F-statistic:  9578 on 3 and 79777 DF,  p-value: < 2.2e-16

Ejemplo 2

  • R for Data Science: Este libro online gratuito ofrece una introducción completa a ggplot2 y dplyr, con tutoriales paso a paso, ejemplos y ejercicios. https://bookdown.org/asmundhreinn/r4ds-master/

  • plotly: Plotly ofrece una guía completa para crear gráficos con ggplot2, incluyendo ejemplos de gráficos comunes y consejos para mejorar tus visualizaciones. https://plotly.com/ggplot2/getting-started/

  • tidyverse: El sitio web de tidyverse, la suite de paquetes que incluye ggplot2 y dplyr, ofrece una gran cantidad de recursos para aprender a usar estas herramientas, incluyendo documentación, tutoriales y ejemplos. https://www.tidyverse.org/

  • R-bloggers: R-bloggers es un sitio web que publica artículos sobre una variedad de temas relacionados con R, incluyendo ggplot2 y dplyr. Puedes encontrar muchos tutoriales y ejemplos útiles en este sitio. https://www.r-bloggers.com/2015/12/how-to-learn-r-2/

Consejos:

  • Comienza con lo básico: No trates de aprender todo sobre ggplot2 y dplyr a la vez. Comienza con lo básico y ve avanzando gradualmente a medida que te sientas más cómodo.

  • Practica lo que aprendes: La mejor manera de aprender ggplot2 y dplyr es practicando. Busca conjuntos de datos y crea gráficos para visualizarlos.

  • No tengas miedo de pedir ayuda: Si te encuentras con un problema, no dudes en pedir ayuda. Hay muchos recursos disponibles

Primero debemos instalar los siguientes paquetes:

install.packages(“ggplot2”) install.packages(“readxl”) install.packages(“tidyr”) install.packages(“dplyr”)

Una vez instalada debemos indicar a R que deseamos usarla, para ello basta con la instrucción.

library(ggplot2) library(readxl) library(tidyr) library(dplyr)

#Una vez instalada debemos indicar a R que deseamos usarla, para ello basta con la instrucción.
library(ggplot2)
library(readxl)
library(tidyr)
library(dplyr)
## 
## 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
ggplot(datos)+
  geom_point(mapping = aes(x = datos$`Ingreso Total
2019`, y = datos$`Tipo Compañia`))

Podemos mejorar la aparencia, de la siguiente manera:

ggplot(datos) +
  geom_point(mapping = aes(x = datos$`Ingreso Total
2019`, 
                           y = datos$`Tipo Compañia`), 
             color = "#22577a") +  # Cambia "blue" por el color que desees
  labs(title = "Gráfico de Dispersión", 
       x = "Ingreso Total", 
       y = "Tipo Compañia")

Podemos quitar el fondo:

ggplot(datos) +
  geom_point(mapping = aes(x = datos$`Ingreso Total
2019`, 
                           y = datos$`Tipo Compañia`), 
             color = "#22577a") + 
  labs(title = "Gráfico de Dispersión", 
       x = "Ingreso Total", 
       y = "Tipo Compañia") +
  theme(panel.background = element_blank(),   # Quita el fondo del panel
        panel.grid = element_blank(),         # Quita las líneas de la cuadrícula
        plot.background = element_blank())    # Quita el fondo del gráfico 

La Figura muestra que el tipo de empresa con mayores ingresos totales es la “Anónima”, seguido de la “Sucursal extranjera”, la “sociedad por acciones simplificada” y la “responsabilidad limitada”. Los tipos de empresa con menores ingresos totales son la “asociación o consorcio”, la “anónima en predios rústicos” y la “comandita por acciones”.

Los datos del gráfico pueden ser interpretados de diversas maneras. Una posible interpretación es que las empresas anónimas son las más rentables, seguidas de las sucursales extranjeras, las sociedades por acciones simplificadas y las sociedades de responsabilidad limitada. Es decir, las empresas anónimas son las que tienen mayor presencia en el mercado. Esta información puede ser útil para inversores, empresarios y otros interesados en el sector empresarial.

ggplot(datos) +
  geom_point(mapping = aes(x =datos$`Ingreso Total
2019`, y =datos$`Tipo Compañia`, color=datos$Tamaño
  ))

Para quitar las observaciones NA

# Quitar las observaciones NA
datos_limpios <- na.omit(datos)

Ahora, volvemos a graficar y mejoramos la apariencia:

ggplot(datos_limpios) +
  geom_point(mapping = aes(x = datos_limpios$`Ingreso Total
2019`, 
                           y = datos_limpios$`Tipo Compañia`, 
                           color = datos_limpios$Tamaño)) +  # Usar directamente las columnas
  labs(title = "Gráfico de Dispersión",
       x = "Ingreso Total 2019 (en miles)",  # Cambia este texto al que desees
       y = "Tipo de Compañía",                # Cambia este texto al que desees
       color = "Tamaño de Compañía") +        # Cambia el nombre de la leyenda
  theme(panel.background = element_blank())

ggplot(datos_limpios)+
  stat_summary(
    mapping = aes(x=datos_limpios$Sector, y=datos_limpios$`Ingreso Total
2019`),
    fun.min=min,
    fun.max=max,
    fun=median
  )

Mejoramos la imagen

ggplot(datos_limpios) +
  stat_summary(
    mapping = aes(x = datos_limpios$Sector, y = datos_limpios$`Ingreso Total
2019`),  # Especifica la variable en y
    fun.min = min,
    fun.max = max,
    fun = median
  ) +
  labs(title = "Ingreso total por sector",              # Cambia este texto al que desees
       x = "Sector",           # Cambia este texto al que desees
       y = "Ingreso Total") +       # Cambia este texto al que desees
  theme(panel.background = element_blank())

Centramos el título

ggplot(datos_limpios) +
  stat_summary(
    mapping = aes(x = datos_limpios$Sector, y = datos_limpios$`Ingreso Total
2019`),  # Especifica la variable en y
    fun.min = min,
    fun.max = max,
    fun = median
  ) +
  labs(title = "Ingreso total por sector",              # Cambia este texto al que desees
       x = "Sector",                                   # Cambia este texto al que desees
       y = "Ingreso Total") +                           # Cambia este texto al que desees
  theme(
    panel.background = element_blank(),
    plot.title = element_text(hjust = 0.5)            # Centra el título
  )

 ggplot(datos_limpios)+
  geom_bar(mapping = aes(x=datos_limpios$Sector, fill=datos_limpios$Sector))

Mejoramos la imagen

ggplot(datos_limpios) +
  geom_bar(mapping = aes(x = Sector, fill = Sector), color = "black") +  # Bordes de las barras
  scale_fill_manual(values = c("#64a6bd", "#cfbaf0")) +  # Especificar los colores manualmente
  labs(title = "Distribución de Sectores",           # Título del gráfico
       x = "Sector",                                 # Etiqueta del eje X
       y = "Número de Observaciones") +              # Etiqueta del eje Y
  theme_minimal() +                                # Tema minimalista
  theme(
    panel.background = element_blank(),             # Quitar fondo del panel
    plot.title = element_text(hjust = 0.5),        # Centrar el título
    axis.text.x = element_text(angle = 45, hjust = 1)  # Rotar etiquetas del eje X
  )

Se percibe las observaciones correspondientes a las empresas que integran el sector societario y mercado de valores, donde claramente se observa que en su gran mayoría las empresas se dedican al sector societario y en mínima parte al mercado de valores.

 ggplot(datos_limpios)+
  geom_bar(mapping = aes(x=datos_limpios$Sector, fill=datos_limpios$Región))

Mejoramos la apariencia:

ggplot(datos_limpios) +
  geom_bar(mapping = aes(x = Sector, fill = Región), color = NA) +  # Sin bordes
  labs(title = "Distribución de Sectores por Región",      # Título del gráfico
       x = "Sector",                                      # Etiqueta del eje X
       y = "Número de Observaciones") +                   # Etiqueta del eje Y
  scale_fill_manual(values = c("#f1c0e8", "#e7c6ff", "#77bfa3", "#95b8d1")) +  # Colores personalizados
  theme_minimal() +                                      # Tema minimalista
  theme(
    panel.background = element_blank(),                   # Quitar fondo del panel
    plot.title = element_text(hjust = 0.5, size = 16),  # Centrar y aumentar tamaño del título
    axis.text.x = element_text(angle = 360, hjust = 1),   # Rotar etiquetas del eje X
    legend.title = element_blank()                         # Quitar título de la leyenda
  )

datos_resumen <- datos_limpios %>%
  count(Región) %>%  # Contar el número de observaciones por región
  mutate(porcentaje = n / sum(n) * 100)  # Calcular porcentaje

ggplot(datos_resumen, aes(x = "", y = porcentaje, fill = Región)) +
  geom_bar(stat = "identity", color = "white") +  # Bordes blancos para el pastel
  coord_polar("y", start = 0) +  # Convertir a gráfico de pastel
  labs(title = "Distribución de Regiones",      # Título del gráfico
       x = NULL,                                  # Sin etiqueta en el eje X
       y = NULL) +                               # Sin etiqueta en el eje Y
  scale_fill_manual(values = c("#f1c0e8", "#e7c6ff", "#77bfa3", "#bde0fe")) +  # Colores personalizados
  theme_void() +                               # Tema sin ejes
  theme(
    plot.title = element_text(hjust = 0.5, size = 16)  # Centrar y aumentar tamaño del título
  )

Podemos añdir el porcentaje de la distribución.

datos_resumen <- datos_limpios %>%
  count(Región) %>%  # Contar el número de observaciones por región
  mutate(porcentaje = n / sum(n) * 100)  # Calcular porcentaje

# Gráfico de pastel
ggplot(datos_resumen, aes(x = "", y = porcentaje, fill = Región)) +
  geom_bar(stat = "identity", color = "white") +  # Bordes blancos para el pastel
  coord_polar("y", start = 0) +  # Convertir a gráfico de pastel
  labs(title = "Distribución de empresas por Regiones",      # Título del gráfico
       x = NULL,                                  # Sin etiqueta en el eje X
       y = NULL) +                               # Sin etiqueta en el eje Y
  scale_fill_manual(values = c("#f1c0e8", "#e7c6ff", "#77bfa3", "#bde0fe")) +  # Colores personalizados
  theme_void() +                               # Tema sin ejes
  theme(
    plot.title = element_text(hjust = 0.5, size = 16)  # Centrar y aumentar tamaño del título
  ) +
  geom_text(aes(label = paste0(round(porcentaje, 1), "%")),  # Etiquetas con porcentajes
            position = position_stack(vjust = 0.5),  # Centrar las etiquetas en el pastel
            color = "white")  # Color del texto de las etiquetas

Podemos poner color a los bordes de la distribución y el color del porcentaje en negro:

datos_resumen <- datos_limpios %>%
  count(Región) %>%  # Contar el número de observaciones por región
  mutate(porcentaje = n / sum(n) * 100)  # Calcular porcentaje

# Gráfico de pastel
ggplot(datos_resumen, aes(x = "", y = porcentaje, fill = Región)) +
  geom_bar(stat = "identity", color = "black") +  # Bordes de color gris claro
  coord_polar("y", start = 0) +  # Convertir a gráfico de pastel
  labs(title = "Distribución de empresas por Regiones",      # Título del gráfico
       x = NULL,                                  # Sin etiqueta en el eje X
       y = NULL) +                               # Sin etiqueta en el eje Y
  scale_fill_manual(values = c("#f1c0e8", "#e7c6ff", "#77bfa3", "#bde0fe")) +  # Colores personalizados
  theme_void() +                               # Tema sin ejes
  theme(
    plot.title = element_text(hjust = 0.5, size = 16)  # Centrar y aumentar tamaño del título
  ) +
  geom_text(aes(label = paste0(round(porcentaje, 1), "%")),  # Etiquetas con porcentajes
            position = position_stack(vjust = 0.5),  # Centrar las etiquetas en el pastel
            color = "black")  # Color del texto de las etiquetas en negro

ggplot(datos_limpios, aes(x = datos_limpios$`Ingreso Total
2019`, y = datos_limpios$`Patrimonio
2019`, color = datos_limpios$Sector)) +
  geom_point() +
  facet_wrap(~Sector) +  # Dividir el gráfico por sector
  labs(
    title = "Ingreso total por sector",
    x = "Ingreso total",
    y = "Patrimonio"
  ) +
  theme_minimal()

Mejoramos la apariencia:

Mejoras realizadas:

  • Tamaño y forma de los puntos: Aumenté el tamaño de los puntos y ajusté la forma y el borde para hacerlos más visibles.

  • Transparencia: Añadimos un poco de transparencia (alpha) para mejorar la visibilidad en áreas con muchos puntos.

  • Títulos y etiquetas: Ajustamos el título para que sea más claro y lo centré. También se añadieron unidades en los ejes.

  • Tema: Usamos theme_minimal(base_size = 14) para un tamaño de texto más legible y mejoré la cuadrícula.

  • Paleta de colores: Utilizamos scale_color_brewer(palette = “Set1”) para aplicar una paleta de colores atractiva y diferenciada.

colores_personalizados <- c("#9f86c0", "#184e77")

ggplot(datos_limpios, aes(x = `Ingreso Total\n2019`, y = `Patrimonio\n2019`, color = Sector)) +
  geom_point(size = 3, alpha = 0.7, shape = 21, stroke = 1.5) +  # Aumentar tamaño y transparencia de los puntos
  facet_wrap(~Sector) +  # Dividir el gráfico por sector
  labs(
    title = "Ingreso Total vs. Patrimonio por Sector",
    x = "Ingreso Total (2019)",
    y = "Patrimonio (2019)"
  ) +
  theme_minimal(base_size = 14) +  # Tema minimalista con tamaño base ajustado
  theme(
    plot.title = element_text(hjust = 0.5, size = 18, face = "bold"),  # Centrar y resaltar el título
    legend.position = "bottom",  # Colocar la leyenda en la parte inferior
    legend.title = element_blank(),  # Quitar título de la leyenda
    panel.grid.major = element_line(color = "gray85"),  # Colores de las líneas de la cuadrícula
    panel.grid.minor = element_blank()  # Quitar líneas de cuadrícula menores
  ) +
  scale_color_manual(values = colores_personalizados)  # Usar colores personalizados

##Ejemplo 3 Los datos obtenidos para el desarrollo del presente caso práctico se han extraído del World Development Indicators (WDI) del Banco Mundial (2024) con la temporalidad de 1970 – 2022, para las variables de exportaciones, importaciones, formación bruta de capital fijo y renta de recursos naturales de Ecuador, mismos datos se encuentran expresados en porcentaje del PIB.

Primero, importamos la base de datos, llamada “ecuador”

library(readxl)
ecuador <- read_excel("ecuador.xlsx")
View(ecuador)

A continuación, se grafica la evolución de cada una de las variables en la Figura 1. se evidencia el patrón que siguen las exportaciones ecuatorianas, donde se observa una tendencia ascendente con unas pequeñas caídas en los últimos años debido a la crisis sanitaria.

library(readxl)
ecuador <- read_excel("ecuador.xlsx")
View(ecuador)

Extraemos el promedio de las exportaciones

exportaciones <- ecuador$X
plot(exportaciones)

R no sabe que las exportaciones son una serie temporal, si quisiéramos que lo dibujase como serie temporal, le agregamos ts

mean_exportaciones=mean(ecuador$X)
plot.ts(mean_exportaciones)

Le damos formato de serie temporal

exportaciones_st <- ts(exportaciones, start=c(1970,1), frequency = 1)
plot(exportaciones_st)

Con la finalidad de obtener la predicción de las variables, se debe instalar:

install.packages(“forecast”) library(forecast)

Con este paquete, puedo hacer una predicción, gracias al comando auto.arima

  • La predicción con autoarima requiere básicamente, dos pasos:

  • 1 paso: creamos el modelo ARIMA para las exportaciones

  • 2 paso: ahora ya podemos hacer una predicción de las exportaciones

library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
modeloARIMA_export <- auto.arima(exportaciones_st)
prediccion_export <- forecast(modeloARIMA_export,12)

Dibujamos la predicciÓn

plot(prediccion_export)

Se pueden extraer los datos de la línea azul (que son los de la predicción)

valores_prediccion_export <- prediccion_export$mean
View(valores_prediccion_export)
print(valores_prediccion_export)
## Time Series:
## Start = 2024 
## End = 2035 
## Frequency = 1 
##  [1] 29.06537 29.06537 29.06537 29.06537 29.06537 29.06537 29.06537 29.06537
##  [9] 29.06537 29.06537 29.06537 29.06537
plot(valores_prediccion_export)

Podemos ver la predicción total

pred_export_fit <- prediccion_export$fitted
View(pred_export_fit)
pred_export_low <- prediccion_export$lower
View(pred_export_low)

Podemos obtener la correlación entre variables:

cor(datos_limpios$`Activio
2019`, datos_limpios$`Ingreso Total
2019`)
## [1] 0.748219

Ejemplo con minería de texto

Vamos a procesar un archivo de texto

Lo primero que tenemos que hacer, es importar el archivo de texto a R

El comando para importar texto en r, es readLines

readLines("deuda.txt")
## [1] "Sin duda alguna, la relación entre la deuda pública y la renta de recursos naturales es un tema de creciente relevancia en la economía global. En muchos países, la explotación de recursos naturales no solo constituye una importante fuente de ingresos, sino que también puede influir de manera significativa en la dinámica de la deuda pública. Por lo tanto, esta investigación tiene como objetivo examinar la relación entre la renta de recursos naturales y la deuda pública a nivel global y en diferentes grupos de países, clasificados por nivel de ingresos, durante el periodo 1995 – 2022. En efecto, se utilizó técnicas econométricas de segunda generación que controlan la dependencia transversal entre los países examinados, donde se encontró que existe dependencia y cointegración a largo plazo en las variables del modelo. Asimismo, mediante regresiones cuantílicas, se encontró que, la renta de recursos naturales y el crecimiento económico disminuyen la deuda pública; mientras que, la tecnología y el desempleo incrementan la deuda pública, y únicamente la desigualdad presenta efectos heterogéneos en los grupos de países, en los países desarrollados reduce la deuda pública, y en los países en desarrollo aumenta la deuda pública. Finalmente, este estudio permite formular varias implicaciones de política para lograr una deuda pública equilibrada, subrayando la importancia de una administración eficiente de los ingresos provenientes de los recursos naturales y una inversión estratégica en sectores que promuevan el crecimiento económico sostenible. "

Vamos a guardar el texto que está en txt en R y lo llamamos “Estrategia”

Deuda <- readLines("deuda.txt")

Recordemos, que lo único que hemos hecho es guardar el txt en R, dado que, R no sabe que discurso es un archivo de texto, simplemente lo ha incorporado, tenemos que decirle a R, que “Estrategia” es un archivo de texto para el tratamiento de texto, podemos usar la librería “tm” (textmining).

Por consiguiente, debemos instalar:

install.packages(“tm”) library(tm)

Primer paso, vamos a darle formato de texto(que entienda R) a “Estrategia” al archivo nuevo lo vamos a llamar “documento”

library(tm)
## Cargando paquete requerido: NLP
## 
## Adjuntando el paquete: 'NLP'
## The following object is masked from 'package:ggplot2':
## 
##     annotate
documento  <- Corpus(VectorSource(Deuda))

Podemos ver, que el nuevo archivo “documento” está en Data (ya r sabe que son datos, de texto, pero datos).

inspect(documento)
## <<SimpleCorpus>>
## Metadata:  corpus specific: 1, document level (indexed): 0
## Content:  documents: 1
## 
## [1] Sin duda alguna, la relación entre la deuda pública y la renta de recursos naturales es un tema de creciente relevancia en la economía global. En muchos países, la explotación de recursos naturales no solo constituye una importante fuente de ingresos, sino que también puede influir de manera significativa en la dinámica de la deuda pública. Por lo tanto, esta investigación tiene como objetivo examinar la relación entre la renta de recursos naturales y la deuda pública a nivel global y en diferentes grupos de países, clasificados por nivel de ingresos, durante el periodo 1995 – 2022. En efecto, se utilizó técnicas econométricas de segunda generación que controlan la dependencia transversal entre los países examinados, donde se encontró que existe dependencia y cointegración a largo plazo en las variables del modelo. Asimismo, mediante regresiones cuantílicas, se encontró que, la renta de recursos naturales y el crecimiento económico disminuyen la deuda pública; mientras que, la tecnología y el desempleo incrementan la deuda pública, y únicamente la desigualdad presenta efectos heterogéneos en los grupos de países, en los países desarrollados reduce la deuda pública, y en los países en desarrollo aumenta la deuda pública. Finalmente, este estudio permite formular varias implicaciones de política para lograr una deuda pública equilibrada, subrayando la importancia de una administración eficiente de los ingresos provenientes de los recursos naturales y una inversión estratégica en sectores que promuevan el crecimiento económico sostenible.

Ahora ya podemos empezar a trabajar con el documento, y en primer lugar, tenemos que limpiarlo, para limpiar el texto, tenemos que quitar mayúsculas, acrónimos, puntuaciones, comas, puntos, exclamaciones, etc. Podemos empezar, quitando las mayúsculas, por tanto, como vamos a limpiar el documento, creamos un nuevo documento llamado documentolimpio.

documentolimpio <- tm_map(documento, content_transformer(tolower))
inspect(documentolimpio)
## <<SimpleCorpus>>
## Metadata:  corpus specific: 1, document level (indexed): 0
## Content:  documents: 1
## 
## [1] sin duda alguna, la relación entre la deuda pública y la renta de recursos naturales es un tema de creciente relevancia en la economía global. en muchos países, la explotación de recursos naturales no solo constituye una importante fuente de ingresos, sino que también puede influir de manera significativa en la dinámica de la deuda pública. por lo tanto, esta investigación tiene como objetivo examinar la relación entre la renta de recursos naturales y la deuda pública a nivel global y en diferentes grupos de países, clasificados por nivel de ingresos, durante el periodo 1995 – 2022. en efecto, se utilizó técnicas econométricas de segunda generación que controlan la dependencia transversal entre los países examinados, donde se encontró que existe dependencia y cointegración a largo plazo en las variables del modelo. asimismo, mediante regresiones cuantílicas, se encontró que, la renta de recursos naturales y el crecimiento económico disminuyen la deuda pública; mientras que, la tecnología y el desempleo incrementan la deuda pública, y únicamente la desigualdad presenta efectos heterogéneos en los grupos de países, en los países desarrollados reduce la deuda pública, y en los países en desarrollo aumenta la deuda pública. finalmente, este estudio permite formular varias implicaciones de política para lograr una deuda pública equilibrada, subrayando la importancia de una administración eficiente de los ingresos provenientes de los recursos naturales y una inversión estratégica en sectores que promuevan el crecimiento económico sostenible.

Como podemos observar, hemos quitado las mayúsculas, el siguiente paso, puede ser eliminar, las comas, puntos, exclamaciones, etc.

documentolimpio <- tm_map(documentolimpio, removePunctuation)
inspect(documentolimpio)
## <<SimpleCorpus>>
## Metadata:  corpus specific: 1, document level (indexed): 0
## Content:  documents: 1
## 
## [1] sin duda alguna la relación entre la deuda pública y la renta de recursos naturales es un tema de creciente relevancia en la economía global en muchos países la explotación de recursos naturales no solo constituye una importante fuente de ingresos sino que también puede influir de manera significativa en la dinámica de la deuda pública por lo tanto esta investigación tiene como objetivo examinar la relación entre la renta de recursos naturales y la deuda pública a nivel global y en diferentes grupos de países clasificados por nivel de ingresos durante el periodo 1995 – 2022 en efecto se utilizó técnicas econométricas de segunda generación que controlan la dependencia transversal entre los países examinados donde se encontró que existe dependencia y cointegración a largo plazo en las variables del modelo asimismo mediante regresiones cuantílicas se encontró que la renta de recursos naturales y el crecimiento económico disminuyen la deuda pública mientras que la tecnología y el desempleo incrementan la deuda pública y únicamente la desigualdad presenta efectos heterogéneos en los grupos de países en los países desarrollados reduce la deuda pública y en los países en desarrollo aumenta la deuda pública finalmente este estudio permite formular varias implicaciones de política para lograr una deuda pública equilibrada subrayando la importancia de una administración eficiente de los ingresos provenientes de los recursos naturales y una inversión estratégica en sectores que promuevan el crecimiento económico sostenible

Recordemos, que el objetivo inicial, es extraer información del texto, hay muchas palabras que no aportan información, tipo preposiciones, adverbios, determinantes, etc

stopwords("spanish")
##   [1] "de"           "la"           "que"          "el"           "en"          
##   [6] "y"            "a"            "los"          "del"          "se"          
##  [11] "las"          "por"          "un"           "para"         "con"         
##  [16] "no"           "una"          "su"           "al"           "lo"          
##  [21] "como"         "más"          "pero"         "sus"          "le"          
##  [26] "ya"           "o"            "este"         "sí"           "porque"      
##  [31] "esta"         "entre"        "cuando"       "muy"          "sin"         
##  [36] "sobre"        "también"      "me"           "hasta"        "hay"         
##  [41] "donde"        "quien"        "desde"        "todo"         "nos"         
##  [46] "durante"      "todos"        "uno"          "les"          "ni"          
##  [51] "contra"       "otros"        "ese"          "eso"          "ante"        
##  [56] "ellos"        "e"            "esto"         "mí"           "antes"       
##  [61] "algunos"      "qué"          "unos"         "yo"           "otro"        
##  [66] "otras"        "otra"         "él"           "tanto"        "esa"         
##  [71] "estos"        "mucho"        "quienes"      "nada"         "muchos"      
##  [76] "cual"         "poco"         "ella"         "estar"        "estas"       
##  [81] "algunas"      "algo"         "nosotros"     "mi"           "mis"         
##  [86] "tú"           "te"           "ti"           "tu"           "tus"         
##  [91] "ellas"        "nosotras"     "vosotros"     "vosotras"     "os"          
##  [96] "mío"          "mía"          "míos"         "mías"         "tuyo"        
## [101] "tuya"         "tuyos"        "tuyas"        "suyo"         "suya"        
## [106] "suyos"        "suyas"        "nuestro"      "nuestra"      "nuestros"    
## [111] "nuestras"     "vuestro"      "vuestra"      "vuestros"     "vuestras"    
## [116] "esos"         "esas"         "estoy"        "estás"        "está"        
## [121] "estamos"      "estáis"       "están"        "esté"         "estés"       
## [126] "estemos"      "estéis"       "estén"        "estaré"       "estarás"     
## [131] "estará"       "estaremos"    "estaréis"     "estarán"      "estaría"     
## [136] "estarías"     "estaríamos"   "estaríais"    "estarían"     "estaba"      
## [141] "estabas"      "estábamos"    "estabais"     "estaban"      "estuve"      
## [146] "estuviste"    "estuvo"       "estuvimos"    "estuvisteis"  "estuvieron"  
## [151] "estuviera"    "estuvieras"   "estuviéramos" "estuvierais"  "estuvieran"  
## [156] "estuviese"    "estuvieses"   "estuviésemos" "estuvieseis"  "estuviesen"  
## [161] "estando"      "estado"       "estada"       "estados"      "estadas"     
## [166] "estad"        "he"           "has"          "ha"           "hemos"       
## [171] "habéis"       "han"          "haya"         "hayas"        "hayamos"     
## [176] "hayáis"       "hayan"        "habré"        "habrás"       "habrá"       
## [181] "habremos"     "habréis"      "habrán"       "habría"       "habrías"     
## [186] "habríamos"    "habríais"     "habrían"      "había"        "habías"      
## [191] "habíamos"     "habíais"      "habían"       "hube"         "hubiste"     
## [196] "hubo"         "hubimos"      "hubisteis"    "hubieron"     "hubiera"     
## [201] "hubieras"     "hubiéramos"   "hubierais"    "hubieran"     "hubiese"     
## [206] "hubieses"     "hubiésemos"   "hubieseis"    "hubiesen"     "habiendo"    
## [211] "habido"       "habida"       "habidos"      "habidas"      "soy"         
## [216] "eres"         "es"           "somos"        "sois"         "son"         
## [221] "sea"          "seas"         "seamos"       "seáis"        "sean"        
## [226] "seré"         "serás"        "será"         "seremos"      "seréis"      
## [231] "serán"        "sería"        "serías"       "seríamos"     "seríais"     
## [236] "serían"       "era"          "eras"         "éramos"       "erais"       
## [241] "eran"         "fui"          "fuiste"       "fue"          "fuimos"      
## [246] "fuisteis"     "fueron"       "fuera"        "fueras"       "fuéramos"    
## [251] "fuerais"      "fueran"       "fuese"        "fueses"       "fuésemos"    
## [256] "fueseis"      "fuesen"       "siendo"       "sido"         "tengo"       
## [261] "tienes"       "tiene"        "tenemos"      "tenéis"       "tienen"      
## [266] "tenga"        "tengas"       "tengamos"     "tengáis"      "tengan"      
## [271] "tendré"       "tendrás"      "tendrá"       "tendremos"    "tendréis"    
## [276] "tendrán"      "tendría"      "tendrías"     "tendríamos"   "tendríais"   
## [281] "tendrían"     "tenía"        "tenías"       "teníamos"     "teníais"     
## [286] "tenían"       "tuve"         "tuviste"      "tuvo"         "tuvimos"     
## [291] "tuvisteis"    "tuvieron"     "tuviera"      "tuvieras"     "tuviéramos"  
## [296] "tuvierais"    "tuvieran"     "tuviese"      "tuvieses"     "tuviésemos"  
## [301] "tuvieseis"    "tuviesen"     "teniendo"     "tenido"       "tenida"      
## [306] "tenidos"      "tenidas"      "tened"
documentolimpio <- tm_map(documentolimpio, removeWords, stopwords("spanish"))
inspect(documentolimpio)
## <<SimpleCorpus>>
## Metadata:  corpus specific: 1, document level (indexed): 0
## Content:  documents: 1
## 
## [1]  duda alguna  relación   deuda pública   renta  recursos naturales   tema  creciente relevancia   economía global   países  explotación  recursos naturales  solo constituye  importante fuente  ingresos sino   puede influir  manera significativa   dinámica   deuda pública     investigación   objetivo examinar  relación   renta  recursos naturales   deuda pública  nivel global   diferentes grupos  países clasificados  nivel  ingresos   periodo 1995 – 2022  efecto  utilizó técnicas econométricas  segunda generación  controlan  dependencia transversal   países examinados   encontró  existe dependencia  cointegración  largo plazo   variables  modelo asimismo mediante regresiones cuantílicas  encontró   renta  recursos naturales   crecimiento económico disminuyen  deuda pública mientras   tecnología   desempleo incrementan  deuda pública  únicamente  desigualdad presenta efectos heterogéneos   grupos  países   países desarrollados reduce  deuda pública    países  desarrollo aumenta  deuda pública finalmente  estudio permite formular varias implicaciones  política  lograr  deuda pública equilibrada subrayando  importancia   administración eficiente   ingresos provenientes   recursos naturales   inversión estratégica  sectores  promuevan  crecimiento económico sostenible

Como se puede observar, existen huecos entre palabras, son las palabras que hemos quitado (stopwords). El problema, es que, los huecos son distintos entre las palabras, r “no lo entiende muy bien”, podemos ayudarle a r, dejando el mismo hueco entre palabras.

documentolimpio <- tm_map(documentolimpio, stripWhitespace)
inspect(documentolimpio)
## <<SimpleCorpus>>
## Metadata:  corpus specific: 1, document level (indexed): 0
## Content:  documents: 1
## 
## [1]  duda alguna relación deuda pública renta recursos naturales tema creciente relevancia economía global países explotación recursos naturales solo constituye importante fuente ingresos sino puede influir manera significativa dinámica deuda pública investigación objetivo examinar relación renta recursos naturales deuda pública nivel global diferentes grupos países clasificados nivel ingresos periodo 1995 – 2022 efecto utilizó técnicas econométricas segunda generación controlan dependencia transversal países examinados encontró existe dependencia cointegración largo plazo variables modelo asimismo mediante regresiones cuantílicas encontró renta recursos naturales crecimiento económico disminuyen deuda pública mientras tecnología desempleo incrementan deuda pública únicamente desigualdad presenta efectos heterogéneos grupos países países desarrollados reduce deuda pública países desarrollo aumenta deuda pública finalmente estudio permite formular varias implicaciones política lograr deuda pública equilibrada subrayando importancia administración eficiente ingresos provenientes recursos naturales inversión estratégica sectores promuevan crecimiento económico sostenible

Como podemos observar, ya existe solo un hueco entre palabras, una vez que tenemos el texto limpio, ya podemos hacernos preguntas.

Una pregunta, podría ser cuales son las palabras que más se repiten a “documentolimpio” le damos un formato que R pueda trabajar con el como hemos dicho que estamos interesados en ver las palabras más repetidas, creamos una archivo llamado “palabras”.

palabras <- TermDocumentMatrix(documentolimpio)

Ahora ya puedo hacer preguntas, como cuales son las palabras más repetidas

findFreqTerms(palabras)
##  [1] "1995"           "2022"           "administración" "alguna"        
##  [5] "asimismo"       "aumenta"        "clasificados"   "cointegración" 
##  [9] "constituye"     "controlan"      "creciente"      "crecimiento"   
## [13] "cuantílicas"    "dependencia"    "desarrollados"  "desarrollo"    
## [17] "desempleo"      "desigualdad"    "deuda"          "diferentes"    
## [21] "dinámica"       "disminuyen"     "duda"           "econométricas" 
## [25] "economía"       "económico"      "efecto"         "efectos"       
## [29] "eficiente"      "encontró"       "equilibrada"    "estratégica"   
## [33] "estudio"        "examinados"     "examinar"       "existe"        
## [37] "explotación"    "finalmente"     "formular"       "fuente"        
## [41] "generación"     "global"         "grupos"         "heterogéneos"  
## [45] "implicaciones"  "importancia"    "importante"     "incrementan"   
## [49] "influir"        "ingresos"       "inversión"      "investigación" 
## [53] "largo"          "lograr"         "manera"         "mediante"      
## [57] "mientras"       "modelo"         "naturales"      "nivel"         
## [61] "objetivo"       "países"         "periodo"        "permite"       
## [65] "plazo"          "política"       "presenta"       "promuevan"     
## [69] "provenientes"   "puede"          "pública"        "recursos"      
## [73] "reduce"         "regresiones"    "relación"       "relevancia"    
## [77] "renta"          "sectores"       "segunda"        "significativa" 
## [81] "sino"           "solo"           "sostenible"     "subrayando"    
## [85] "tecnología"     "tema"           "transversal"    "técnicas"      
## [89] "utilizó"        "variables"      "varias"         "únicamente"    
## [93] "–"
findFreqTerms(palabras, lowfreq = 10)
## character(0)
findFreqTerms(palabras, lowfreq = 15)
## character(0)

Si quisiéramos quitar una palabra en concreto

documentolimpio <- tm_map(documentolimpio, removeWords, "cada")

Esta información que hemos obtenido, la podemos mostrar de forma más visual o didáctica, mediante una nube de palabras. En primer lugar, creamos una matriz de la palabras que llamamos “matrizpalabras”

matrizpalabras <- as.matrix(palabras)

Recordemos que el objetivo es determinar cuales son las palabras más frecuentes, por ello, ordeno (sort) la matriz de palabras por frecuencia.

matrizpalabrasord <- sort(rowSums(matrizpalabras), decreasing = TRUE)
View(matrizpalabrasord)

Si quisiéramos dibujar la nube de palabras (creamos un data.frame)

matriz <- data.frame(palabras=names(matrizpalabrasord), frecuencia=matrizpalabrasord)
View(matriz)

Ahora ya, podemos dibujar la nube de palabras, para ello, usamos la libreria wordcloud:

install.packages(“wordcloud”) library(wordcloud)

library(wordcloud)
## Cargando paquete requerido: RColorBrewer
wordcloud(matriz$palabras,matriz$frecuencia, min.freq = 10)

Lo podemos hacer en colores:

wordcloud(matriz$palabras,matriz$frecuencia, min.freq = 10,
                                            colors=brewer.pal(8,"Dark2"))