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.
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.
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.
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.
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.
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.
Definición
▸ Los objetivos de esta actividad son:
▸ 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:
Primero, nos dirijimos al enlace: https://flourish.studio/
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”
Ahora debemos elegir el tipo de gráfico y así arreglar la base de datos
La base de datos debe estar organizada así:
Entonces, el gráfico quedaría así:
Elegimos un nuevo tipo de gráfico
La base de datos debe estar organizada así:
Con nuestros datos, hemos organizado la base así:
La información reportada queda así:
Elegimos un nuevo gráfico
La base de datos debe estar organizada así:
Con nuestros datos, hemos organizado la base así:
La información reportada queda así:
Procedemos a seleccionar un nuevo gráfico
La base de datos debe estar organizada así:
Nuestra base queda así:
Gráficamente:
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:
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.
Definición
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.
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.
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ñoEn 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ñoLa 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 turnoEn 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 mensualEn 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 mesEn 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 mensualFinalmente, 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 gobiernoEvidencia del proceso antes detallado:
Se procede a limpiar la base para continuar con el respectivo análisis
Cierra y aplica los cambios para guardarlos y salir del editor de Power Query.
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.
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.
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
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 productoEn 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 mesEn 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▸ 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
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
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"))