i)¿Qué es un análisis exploratorio de los datos?
El análisis exploratorio de datos, es un enfoque inicial y fundamental en el proceso de análisis estadístico. Este método permite examinar las características esenciales de los datos utilizando técnicas visuales y cuantitativas para descubrir patrones, identificar anomalías, probar hipótesis y verificar suposiciones. Su propósito principal es obtener una comprensión clara y profunda de la naturaleza de los datos, lo cual es crucial para modelar adecuadamente los datos en investigaciones posteriores.
ii) ¿Cómo contribuye el análisis exploratorio de los datos a mejorar el proceso y los resultados de analítica descriptiva?
El análisis exploratorio de datos (EDA) desempeña un papel crucial en la mejora del proceso y los resultados de la analítica descriptiva de varias maneras:
Comprensión Profunda de los Datos: El EDA proporciona una primera mirada integral a los datos disponibles. Mediante el uso de estadísticas descriptivas y visualizaciones gráficas, se pueden obtener una mejor comprensión de las distribuciones, tendencias y patrones subyacentes. Esta comprensión es fundamental para realizar cualquier tipo de análisis posterior con precisión.
Identificación de Problemas en los Datos: A través del EDA, se pueden detectar problemas como valores atípicos, valores faltantes y errores de ingreso de datos. Solucionar estos problemas antes de proceder con análisis más complejos asegura la calidad y la confiabilidad de los resultados finales.
Selección y Transformación de Variables: Al explorar los datos, se pueden identificar cuáles variables son más relevantes para sus análisis. Además, el EDA puede sugerir la necesidad de transformaciones de datos, como normalización o estandarización, que son cruciales para métodos analíticos más avanzados.
Fundamentación de la Modelización y Análisis Futuros: El conocimiento obtenido durante el EDA puede guiar la selección de modelos estadísticos o de machine learning más apropiados. Además, permite a los analistas formular y verificar hipótesis de manera informada.
Mejora en la Comunicación de Resultados: La capacidad de visualizar y describir los datos claramente durante el EDA facilita la comunicación de insights complejos a las partes interesadas, lo que resulta en una toma de decisiones más efectiva basada en los datos.
La empresa FORM, con sede en México, se ha destacado en el desarrollo de innovaciones en el empaque de autopartes, enfocándose en soluciones que permiten reducir el espacio necesario para almacenamiento y generando ahorros en logística. Han introducido un producto patentado globalmente que aumenta la capacidad de empaque y reduce significativamente el uso de materia prima, lo cual también tiene un impacto positivo en el medio ambiente.
Desde su fundación en 2011, FORM ha crecido significativamente, comenzando con un solo cliente y seis empleados, y expandiéndose a más de 150 colaboradores y atendiendo a más de 15 clientes automotrices. Entre sus clientes se encuentran nombres prominentes como Denso, Magna, International Automotive Components y Varroc Lighting Systems.
La especialización de FORM en empaques para autopartes delicadas y costosas la ha llevado a ser proveedor de armadoras de prestigio como Tesla, BMW y Mercedes Benz. Ofrecen soluciones personalizadas que aseguran la protección y la integridad de las autopartes durante su transporte, lo que es crucial para piezas de acabado delicado o espejo.
Con una planta en Apodaca, Nuevo León, la empresa ha establecido un área especializada para empaques termoformados, esenciales para el transporte de piezas electrónicas y otras autopartes sensibles que requieren cuidado especial para evitar daños durante el tránsito.
La filosofía de FORM de reducir el espacio de almacenamiento, la mano de obra para la administración y el armado de empaques, junto con la protección del producto, se alinea con la demanda creciente de la industria automotriz por eficiencia y sostenibilidad en las cadenas de suministro.
Las innovaciones de FORM y su enfoque en la sostenibilidad y eficiencia reflejan un compromiso con la mejora continua y la adaptación a las necesidades cambiantes del mercado automotriz, lo que les ha permitido mantenerse competitivos y relevantes en un sector en constante evolución.
Misión
Transformar nuestro entorno y resolver retos industriales de nuestros clientes a través de la colaboración, provocando nuevas oportunidades que potencian nuestro modelo de negocio, para alcanzar nuestros ideales.
Visión
En 2033 seremos una de las cinco mejores compañías de México que generan valor dentro de la cadena de suministro de las industrias que más valoran la forma en la que se protegen y trasladan las cosas.
Objetivo Estratégico
“Ahora estamos volteando a los Estados Unidos, y ahora con la posibilidad de que Tesla llegue a Nuevo León, con mayor sentido volteamos hacia allá. Si todos nuestros clientes son automotrices e internacionales por qué no proveerlos en Estados Unidos, estamos trabajando fuerte para lograrlo”. - Felipe Flores García
El mercado automotriz en México constituye un sector vital para la economía del país, no solo por su significativa contribución al Producto Interno Bruto (PIB) sino también por su papel en la creación de empleos y en el fomento de la innovación tecnológica. Una faceta crucial de esta industria es el mercado de autopartes, que se erige como un pilar fundamental para la operatividad y el desarrollo de la industria automotriz en su conjunto. Este segmento incluye desde la fabricación de componentes esenciales del vehículo hasta sistemas avanzados que mejoran la seguridad, el rendimiento y la comodidad.
La interacción entre los fabricantes de automóviles y los proveedores de autopartes es intrínseca al ciclo de vida del producto automotriz, afectando directamente la cadena de suministro, la innovación en el diseño de productos y, en última instancia, la competitividad en el mercado global. Además, el mercado de autopartes en México se ve influenciado por factores como las regulaciones gubernamentales, los tratados de libre comercio, las tendencias de consumo y los avances tecnológicos, lo que lo convierte en un campo de estudio dinámico y complejo.
library(readr)
library(ggplot2)
library(tidyr)
library(viridis)
library(scales)
library(readxl)
library(RColorBrewer)
library(dplyr)
library(caret)
library(MASS)
library(rpart)
library(rpart.plot)
library(party)
library(gmodels)
library(knitr)
library(readxl)
library(readr)
library(dplyr)
library(cluster)
library(ggplot2)
library(corrplot)
library(tseries)
library(e1071)
library(pROC)
library(ISLR)
library(knitr)
library(gridExtra)
library(car)
library(DataExplorer)
library(tidyr)
library(ggplot2)
library(randomForest)
library(class)
library(caret)
library(cluster)
library(factoextra)
library(purrr)
library(imputeTS)
library(xts)
library(zoo)
library(tseries)
library(stats)
library(forecast)
library(astsa)
library(corrplot)
library(wordcloud)
library(tidytext)
library(AER)
library(vars)
library(dynlm)
library(mFilter)
library(TSstudio)
library(tidyverse)
library(sarima)
library(readr)
library(readxl)
library(heatmaply)
library(dplyr)
library(ggplot2)
library(psych)
library(tidyr)
library(readtext)
library(syuzhet)
library(RColorBrewer)
library(tm)
library(caret)
library(MASS)
library(rpart)
library(rpart.plot)
library(party)
library(gmodels)
library(knitr)
library(cluster)
library(e1071)
library(pROC)
library(ISLR)
library(gridExtra)
library(car)
library(DataExplorer)
library(randomForest)
library(class)
library(factoextra)
library(purrr)
Para profundizar en el entendimiento de esta industria, se realizará un análisis exhaustivo utilizando diversas bases de datos recopiladas de múltiples fuentes. Este análisis buscará identificar tendencias, desafíos y oportunidades dentro del mercado de autopartes, así como su interconexión con la industria automotriz en general. Se examinarán aspectos como la evolución de la demanda de autopartes, la cadena de valor, el impacto de la tecnología en la producción y el diseño de autopartes, así como las estrategias adoptadas por las empresas para navegar en un entorno económico y regulatorio en constante cambio.
<- read_excel("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_mx/exportacion_vehiculos.xlsx")
mx_vehicle_exports
<- mx_vehicle_exports %>%
mx_vehicle_exports_summary group_by(Año, Segmento) %>%
summarise(Cantidad_Total = sum(Cantidad, na.rm = TRUE))
# Definir la paleta de colores personalizada
<- c("#2D3250", "#435585", "#7077A1", "#F6B17A", "#9EC8B9", "#BE3144")
colores
# Asegurarse de que hay suficientes colores para los segmentos
# Repetir la paleta si hay más segmentos que colores
<- length(unique(mx_vehicle_exports_summary$Segmento))
n_segmentos if (n_segmentos > length(colores)) {
<- rep(colores, length.out = n_segmentos)
colores
}
# Gráfico de líneas con la paleta de colores personalizada
ggplot(mx_vehicle_exports_summary, aes(x = Año, y = Cantidad_Total, color = Segmento, group = Segmento)) +
geom_line() + # Dibuja líneas
geom_point() + # Añade puntos en cada dato
scale_color_manual(values = colores) + # Usa la paleta de colores definida
theme_minimal() + # Usa un tema minimalista
labs(title = "Evolución de la Exportación de Segmento de Vehículo a lo Largo de los Años",
x = "Año",
y = "Cantidad Total") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
1. Crecimiento de SUVs: - La exportación de SUVs ha visto un crecimiento significativo hasta 2018, seguido de una disminución. Esto podría indicar cambios en la preferencia del consumidor o en la dinámica del mercado. FORM puede aprovechar esta tendencia ofreciendo soluciones de empaque personalizadas para este segmento, que parece tener una alta variabilidad en la demanda.
2. Volatilidad en Segmento de Lujo: - El segmento de lujo muestra volatilidad con un pico marcado alrededor de 2018. Esto puede abrir oportunidades para FORM en términos de proporcionar empaques de alta calidad que coincidan con las expectativas de los fabricantes de vehículos de lujo y sus consumidores.
3. Caída General Post-2018: - Después de 2018, todos los segmentos excepto los subcompactos muestran una caída, lo que podría deberse a factores económicos globales, políticas comerciales o la pandemia. FORM debe estar atento a estos factores externos que afectan la demanda de sus productos.
4. Beneficios Potenciales para FORM: - El análisis de estas tendencias es vital para FORM, ya que proporciona información sobre qué segmentos podrían requerir más empaques en el futuro. Esto puede guiar sus decisiones de inversión y estrategias de producción para los próximos años.
5. Modelo Predictivo para la Demanda: - Utilizar estos datos para desarrollar un modelo predictivo podría ayudar a FORM a anticiparse a las necesidades del mercado. Herramientas de análisis predictivo, como el Machine Learning, podrían usarse para prever la demanda futura basándose en las tendencias históricas y factores externos.
# Sumarizar la cantidad total por País destino y obtener los top 5
<- mx_vehicle_exports %>%
top_paises_destino group_by(`País destino`) %>%
summarise(Cantidad_Total = sum(Cantidad, na.rm = TRUE)) %>%
arrange(desc(Cantidad_Total)) %>%
slice_head(n = 5)
# Filtrar el dataframe original para tener solo los top 5 País destino
<- mx_vehicle_exports %>%
mx_vehicle_exports_top5 filter(`País destino` %in% top_paises_destino$`País destino`)
# Código para un box plot de la variable Cantidad por los top 5 País destino
ggplot(mx_vehicle_exports_top5, aes(x = `País destino`, y = Cantidad)) +
geom_boxplot() +
theme_minimal() +
labs(title = "Box Plot de Cantidad por Top 5 País Destino",
x = "País Destino",
y = "Cantidad") +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.title = element_text(hjust = 0.5))
1. Dominancia de Estados Unidos: - Estados Unidos
muestra una mediana y un rango intercuartílico superior a otros
destinos, lo cual indica que es el principal mercado para la
exportación. FORM puede centrarse en aumentar la capacidad de producción
y mejorar las soluciones logísticas para satisfacer la alta demanda de
empaques en este mercado.
2. Variabilidad en ‘No Especificado’: - La categoría ‘No Especificado’ tiene una alta variabilidad y valores atípicos, lo que podría indicar oportunidades no exploradas o datos incompletos. FORM podría investigar estos casos para identificar posibles nuevos mercados o mejorar la precisión en la recopilación de datos.
3. Consistencia en Alemania y Brasil: - Alemania y Brasil muestran una menor dispersión y consistencia en los envíos, lo que podría reflejar mercados establecidos con demandas predecibles. FORM puede utilizar esta información para optimizar inventarios y prever recursos de producción.
4. Beneficios del Análisis para FORM: - Analizar esta distribución de exportaciones podría ayudar a FORM a entender mejor la variabilidad y la consistencia en la demanda entre diferentes mercados. Esta información puede ser crítica para optimizar la cadena de suministro y poder desarrollar un modelo que ayude a predecir y controlar los niveles de inventario necesarios.
5. Modelo Predictivo para la Demanda: - Desarrollar un modelo predictivo basado en estos datos permitiría a FORM anticipar la demanda y ajustar la producción de forma proactiva. La utilización de técnicas estadísticas como la regresión, conjuntamente con algoritmos de machine learning, podría proporcionar estimaciones precisas de la demanda futura basándose en patrones históricos y tendencias actuales.
A través de este enfoque analítico, se espera obtener insights valiosos que contribuyan a una mejor comprensión del mercado de autopartes en México y su rol crítico dentro de la industria automotriz. Estos hallazgos podrían ofrecer directrices para la toma de decisiones estratégicas por parte de los actores de la industria, así como para el diseño de políticas públicas que promuevan el crecimiento y la sostenibilidad del sector. La metodología y los resultados de este análisis estarán fundamentados en la información detallada proporcionada en las bases de datos, cuyas fuentes se encuentran meticulosamente documentadas en el README adjunto a las bases de datos, asegurando así la transparencia y la fiabilidad de la investigación realizada.
Importaciónes, Exportaciónes y Producción de Autopartes
<- read_csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_mx/mx_autoparts_market.csv")
mx_autoparts_market
# Colores
<- c("Producción local total" = "#00BFC4",
colors "Exportaciones totales" = "#F8766D",
"Importaciones totales" = "#7CAE00",
"Importaciones de EE.UU." = "#C77CFF")
# Usar ggplot2 para graficar directamente los datos
ggplot(data = mx_autoparts_market) +
geom_line(aes(x = year, y = total_local_production, group = 1, colour = "Producción local total"), size = 1) +
geom_line(aes(x = year, y = total_exports, group = 1, colour = "Exportaciones totales"), size = 1) +
geom_line(aes(x = year, y = total_imports, group = 1, colour = "Importaciones totales"), size = 1) +
geom_line(aes(x = year, y = imports_from_US, group = 1, colour = "Importaciones de EE.UU."), size = 1) +
geom_point(aes(x = year, y = total_local_production, colour = "Producción local total"), size = 3) +
geom_point(aes(x = year, y = total_exports, colour = "Exportaciones totales"), size = 3) +
geom_point(aes(x = year, y = total_imports, colour = "Importaciones totales"), size = 3) +
geom_point(aes(x = year, y = imports_from_US, colour = "Importaciones de EE.UU."), size = 3) +
scale_colour_manual(values = colors) +
labs(title = "Mercado de Autopartes en México (2018-2022)",
x = "Año",
y = "Valor (en miles de millones de USD)",
colour = "Variable") +
theme_minimal()
1. Producción Local Total: - La línea que representa la producción local total muestra una tendencia decreciente de 2018 a 2019. - Hay una leve recuperación en 2020, seguida de una caída en 2021, y un ligero aumento en 2022. - Esta tendencia puede indicar desafíos en el sector de la producción o cambios en la demanda interna.
2. Exportaciones Totales: - Las exportaciones muestran una reducción significativa en 2020, posiblemente debido al impacto de la pandemia de COVID-19 en el comercio global. - Se observa una recuperación fuerte en 2021 y 2022, indicando una posible resiliencia o adaptación del mercado de exportación.
3. Importaciones Totales: - Las importaciones presentan un incremento constante a lo largo de los años, con una pequeña disminución en 2021. - La tendencia ascendente podría reflejar una creciente dependencia de componentes externos o un aumento en la demanda de autopartes no producidas localmente.
4. Importaciones de EE.UU.: - Las importaciones desde EE.UU. han disminuido significativamente desde 2018 hasta 2020. - Hay un aumento notable en 2021, que se revierte en 2022, sugiriendo fluctuaciones en las dinámicas comerciales con EE.UU.
Mercado de Autopartes Mx
<- na.omit(mx_autoparts_market)
mx_autoparts_market
<- c("#8ae0db", "#5dc1b9", "#42a8a1", "#239089")
turquoise_palette
# Crear la gráfica de barras con escala de color personalizada
ggplot(mx_autoparts_market, aes(x = factor(year), y = total_market_size, fill = total_market_size)) +
geom_bar(stat = "identity") +
scale_fill_gradientn(colors = turquoise_palette) +
labs(x = "Año", y = "Tamaño Total del Mercado (en miles de millones de USD)",
title = "Tamaño Total del Mercado de Autopartes en México (2018-2022)") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
1. Impacto de la Pandemia en 2020: - La marcada caída en 2020 puede correlacionarse con la pandemia de COVID-19, que afectó globalmente la producción y venta de automóviles. Para una empresa como FORM, especializada en empaques para autopartes, esto podría haber representado un reto significativo, posiblemente llevando a una reducción en la demanda de sus productos de empaquetado.
2. Recuperación Post-Pandemia: - El rebote en 2021 sugiere una recuperación post-pandemia que habría podido generar un aumento en la demanda de vehículos y, consecuentemente, de autopartes. Esto puede haber sido una oportunidad para FORM de expandir o diversificar su línea de productos de empaque, aprovechando la reactivación del mercado.
3. Innovación como Factor de Crecimiento: - La innovación de productos de empaque que permiten ahorros significativos en espacio y costos de logística por parte de FORM podría haber sido un factor determinante en su potencial de crecimiento durante el periodo de recuperación económica, especialmente considerando la tendencia creciente hacia la eficiencia y sostenibilidad en la industria automotriz.
4. Potencial para el Futuro: - Dada la tendencia de recuperación del mercado en 2022, empresas como FORM están bien posicionadas para capitalizar el crecimiento continuo de la industria automotriz. La adaptación a las nuevas normativas ambientales y la mejora en la eficiencia de la cadena de suministro serán claves para su éxito futuro.
= read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_carton/temporary/Exporters of Carton boxes cases of corrugated paper or board 2020-2021.csv")
carton_exp = read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_carton/temporary/Importers of Cartons boxes cases of corrugated paper or board 2020-2021.csv")
carton_imp =read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2016.csv")
electric_2016=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2017.csv")
electric_2017=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2018.csv")
electric_2018=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2019.csv")
electric_2019=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibiridos_electricos_2020.csv")
electric_2020=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2021.csv")
electric_2021=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2022.csv")
electric_2022=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2023.csv") electric_2023
Exportaciones
# Filtrar los 15 países con mayores valores de comercio de exportación
<- carton_exp %>%
top_countries group_by(Country) %>%
summarize(TotalTradeValue = sum(Trade.Value)) %>%
top_n(15, TotalTradeValue) %>%
arrange(desc(TotalTradeValue))
# Unir los datos filtrados con el data.frame original para obtener los datos completos de esos países
<- carton_exp %>%
top_countries_data filter(Country %in% top_countries$Country)
# Crear el gráfico
ggplot(top_countries_data, aes(x = reorder(Country, Trade.Value), y = Trade.Value)) +
geom_col(fill = "steelblue") +
coord_flip() + # Hacer que el gráfico sea horizontal para mejor lectura
labs(title = "Top 15 Países en Valor de Exportación de Cartón",
x = "País",
y = "Valor de Comercio (USD)") +
theme_minimal() +
theme(plot.title = element_text(size = 14, face = "bold"),
axis.title.x = element_text(size = 12),
axis.title.y = element_text(size = 12),
axis.text.x = element_text(size = 10),
axis.text.y = element_text(size = 10))
El análisis de las exportaciones globales de cartón revela que México se posiciona como uno de los líderes en este sector, destacándose por sus significativos valores de exportación. Esta fortaleza en el mercado del cartón refleja no solo la alta competitividad de la industria mexicana, sino también su capacidad para producir materiales de calidad superior. Para una empresa emergente especializada en cartón para autopartes, esto representa una oportunidad única para aprovechar la infraestructura existente, las economías de escala y las redes de suministro eficientes dentro de México.
ggplot(carton_exp, aes(x = Continent, y = Trade.Value.Growth * 100, fill = Continent)) +
geom_boxplot() +
scale_y_continuous(limits = c(0, 50), breaks = seq(0, 50, 10), labels = paste0(seq(0, 50, 10), "%")) +
labs(title = "Crecimiento del Valor de Comercio de Exportaciones de Cartón por Continente",
x = "Continente",
y = "Crecimiento del Valor de Comercio (%)") +
theme_minimal()
En cuanto al crecimiento de la industria del cartón por continente, podemos ver que Oceanía es el continente con el mayor porcentaje de crecimiento, sin embargo, la mediana del continente norteamericano es de poco menos del 20%, lo que indica que hay una tendencia positiva de esta industria en nuestro continente.
# Filtrar los 15 países con mayores valores de comercio de importación
<- carton_imp %>%
top_countries_2 group_by(Country) %>%
summarize(TotalTradeValue = sum(Trade.Value)) %>%
top_n(15, TotalTradeValue) %>%
arrange(desc(TotalTradeValue))
# Unir los datos filtrados con el data.frame original para obtener los datos completos de esos países
<- carton_imp %>%
top_countries_data_2 filter(Country %in% top_countries_2$Country)
# Crear el gráfico
ggplot(top_countries_data_2, aes(x = reorder(Country, Trade.Value), y = Trade.Value)) +
geom_col(fill = "blue") +
coord_flip() +
labs(title = "Top 15 Países en Valor de Importación de Cartón",
x = "País",
y = "Valor de Comercio (USD)") +
theme_minimal() +
theme(plot.title = element_text(size = 14, face = "bold"),
axis.title.x = element_text(size = 12),
axis.title.y = element_text(size = 12),
axis.text.x = element_text(size = 10),
axis.text.y = element_text(size = 10))
En cuanto a las importaciones, México se consolida como el cuarto mayor
importador mundial de cartón, destacando su rol clave en la industria
global. Justo delante, Estados Unidos ocupa la segunda posición,
reflejando la intensa actividad comercial y la demanda de materiales de
calidad entre estos países vecinos. Esta situación subraya la
importancia estratégica de México en el mercado de cartón y su cercanía
con uno de los mayores importadores, Estados Unidos, potenciando las
oportunidades de sinergia y cooperación transfronteriza en la cadena de
suministro.
# Crear una lista de dataframes para iterar
<- list(electric_2016 = electric_2016, electric_2017 = electric_2017,
electric_dfs electric_2018 = electric_2018, electric_2019 = electric_2019,
electric_2020 = electric_2020, electric_2021 = electric_2021,
electric_2022 = electric_2022, electric_2023 = electric_2023)
# Inicializar un vector para almacenar los totales de ventas de vehículos eléctricos por año
<- numeric(length(electric_dfs))
total_sales_by_year names(total_sales_by_year) <- names(electric_dfs)
# Sumar las ventas de vehículos eléctricos por año
for (year in names(electric_dfs)) {
<- sum(electric_dfs[[year]]$VEH_ELECTR, na.rm = TRUE)
total_sales_by_year[year]
}
# Convertir a data.frame
<- data.frame(Year = names(total_sales_by_year),
sales_df ElectricVehicleSales = total_sales_by_year)
# Ver el resultado
print(sales_df)
## Year ElectricVehicleSales
## electric_2016 electric_2016 254
## electric_2017 electric_2017 237
## electric_2018 electric_2018 201
## electric_2019 electric_2019 305
## electric_2020 electric_2020 449
## electric_2021 electric_2021 1140
## electric_2022 electric_2022 5631
## electric_2023 electric_2023 4130
# Asumiendo que sales_df ya está creado y contiene las columnas 'Year' y 'ElectricVehicleSales'
ggplot(sales_df, aes(x = Year, y = ElectricVehicleSales)) +
geom_col(fill = "steelblue", color = "black") + # Usamos barras con colores personalizados
geom_text(aes(label = ElectricVehicleSales), vjust = -0.5, size = 3.5) + # Añadir etiquetas de texto sobre las barras
labs(title = "Ventas de Vehículos Eléctricos en México por Año",
subtitle = "Datos de ventas desde 2016 hasta 2023",
x = "Año",
y = "Ventas de Vehículos Eléctricos") +
theme_minimal() + # Tema minimalista
theme(plot.title = element_text(hjust = 0.5, size = 16, face = "bold"), # Centrar y dar formato al título
plot.subtitle = element_text(hjust = 0.5, size = 12), # Centrar el subtítulo
axis.title.x = element_text(size = 14, face = "bold"), # Formato para el título del eje X
axis.title.y = element_text(size = 14, face = "bold"), # Formato para el título del eje Y
axis.text.x = element_text(angle = 45, hjust = 1)) # Rotar las etiquetas del eje X para mejorar la legibilidad
Como se puede apreciar en la gráfica, las ventas en México de los vehículos eléctricos tienen una clara tendencia positiva desde hace varios años, esto refleja la oportunidad y la necesidad de que empresas como FORM adapten su oferta de soluciones a las nuevas autopartes que requieren este nuevo tipo de vehículos.
#Se detectó un error en ID_ENTIDAD, existiendo el ID=99.
# Filtrar para eliminar ID_ENTIDAD = 99
<- electric_2023 %>%
datos_filtrados filter(ID_ENTIDAD != 99)
# Agrupar datos por ID_ENTIDAD y sumar las ventas de vehículos eléctricos
<- datos_filtrados %>%
ventas_por_estado group_by(ID_ENTIDAD) %>%
summarise(Total_VEH_ELECTR = sum(VEH_ELECTR, na.rm = TRUE))
<- c("Aguascalientes", "Baja California", "Baja California Sur", "Campeche", "Chiapas",
estados_mexico "Chihuahua", "Ciudad de México", "Coahuila", "Colima", "Durango", "Guanajuato",
"Guerrero", "Hidalgo", "Jalisco", "México", "Michoacán", "Morelos", "Nayarit",
"Nuevo León", "Oaxaca", "Puebla", "Querétaro", "Quintana Roo", "San Luis Potosí",
"Sinaloa", "Sonora", "Tabasco", "Tamaulipas", "Tlaxcala", "Veracruz", "Yucatán", "Zacatecas")
$ID_ENTIDAD <- as.numeric(datos_filtrados$ID_ENTIDAD)
datos_filtrados
# Agregar una nueva columna con los nombres de los estados
<- datos_filtrados %>%
datos_filtrados mutate(Estado = estados_mexico[ID_ENTIDAD])
# Crear la gráfica
ggplot(ventas_por_estado, aes(x = factor(ID_ENTIDAD), y = Total_VEH_ELECTR, fill = factor(ID_ENTIDAD))) +
geom_bar(stat = "identity", color = "black", show.legend = FALSE) +
scale_fill_viridis_d() +
labs(title = "Ventas de Vehículos Eléctricos de México por Estado en 2023",
x = "ID del Estado",
y = "Total de Ventas de Vehículos Eléctricos",
caption = "Nota: ID del Estado: 1 = Aguascalientes, etc. ID_ENTIDAD = 99 excluido.") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
Apartir de los antecedentes de la empresa y el contexto de la industrias de México y E.U.A. elaborar FODA cruzado que identifique y describa 2-3 estrategias a seguir por parte de la empresa en el corto plazo.
Estrategias FODA Cruzado para FORM
Con base en el análisis de las industrias de México y E.U.A. identificar variables / factores relevantes para la elaboración de PESTLE y describir 2-3 estrategias a seguir por parte de la empresa en el corto plazo.
EE.UU. advierte terminar tratado de comercio con México por fábricas de carros chinos. Las futuras elecciones pueden ser un factor muy importante en la industria automotriz, ya que según BBC News, Trump se muestra de manera muy hostil ante los fabricantes de automóviles. Por lo que, puede que imponga alguna ley que afecte negativamente la industria. El Tratado entre México, Estados Unidos y Canadá (T-MEC) establece reglas para el comercio entre los tres países, incluyendo la industria automotriz. El T-MEC ha sido positivo para la industria automotriz mexicana, ya que ha aumentado la producción y las exportaciones. El gobierno mexicano ha implementado una serie de políticas para promover la industria automotriz, como la creación de un fondo de apoyo a la industria y la reducción de impuestos a la importación de autopartes.
Sector automotriz, con la mayor demanda de espacios industriales por Nearshoring. Industria automotriz aumenta 7.8% la producción en febrero. México recibirá 2 mil 300 mdd de inversión extranjera en autopartes en 2024: INA. El nearshoring puede reducir los costos de producción al aprovechar la mano de obra más barata en países cercanos. Esto puede mejorar la competitividad de FORM en el mercado. La tasa de interés en Estados Unidos ha aumentado en los últimos años. Esto ha encarecido el crédito para los consumidores, lo que podría afectar la demanda de vehículos.
Se busca que en México solo se vendan autos eléctricos. Protagonistas de la industria automotriz en México han unido fuerzas para crear la Electro Movilidad Asociación (EMA), alianza que nace con el objetivo de alcanzar el 100 por ciento de ventas de vehículos eléctricos para el año 2035.
Exportación de autos made in México crece 22.6% en febrero y acelera a máximo histórico. Stellantis anuncia importante plan de inversiones para América Latina. Las regulaciones de seguridad para los vehículos están aumentando en todo el mundo. Esto está obligando a las empresas automotrices a invertir en nuevas tecnologías de seguridad.
La Industria Nacional de Autopartes aseguró que la producción de baterías para autos eléctricos en Norteamérica es fundamental para cumplir con las reglas de origen del T-MEC. El cambio climático es una preocupación importante para la industria automotriz. Las empresas automotrices están desarrollando vehículos más eficientes en combustible y vehículos eléctricos para reducir su impacto ambiental.
Situación Problema 1: Rotación de Personal
Explorar, definir, y describir cuáles son los principales factores del clima organizacional de FORM que propician la satisfacción y/o no satisfacción de trabajar en dicha empresa.
La rotación de personal se ha identificado como el desafío más crítico que enfrenta FORM en el presente. A pesar de nuestros esfuerzos continuos para crear un ambiente laboral atractivo y retener a nuestros valiosos empleados, nos encontramos con una tasa de rotación especialmente alta entre los operadores. Este fenómeno no solo afecta la continuidad y la eficiencia de nuestras operaciones, sino que también incrementa los costos asociados con el reclutamiento y la capacitación de nuevo personal.
Situación Problema 2: Predicción de Demanda
Explorar, desarrollar, y describir la(s) posible(s) estrategia(s) de predicción de la demanada de productos fabricados por la empresa FORM.
La predicción precisa de la demanda representa un desafío igualmente significativo para FORM, dada la variabilidad inherente en la producción y venta de autopartes. La habilidad para anticipar con exactitud cuántas unidades de un determinado componente serán necesarias es crucial para optimizar nuestros procesos de producción y empaque, y para asegurar que se maximice la eficiencia en el uso de recursos.
Situación Problema 1: Rotación de Personal
¿Qué está causando la rotación de personal tan alta?
¿Existe algún momento del año donde se den más bajas dentro de la empresa?
¿Cómo se siente la gente dentro de su trabajo actual?
¿Qué factor ayuda a que el personal dure más tiempo dentro de la empresa?
¿En qué parte de la empresa el trabajador se siente más inconforme y cuál es su perfil?
Situación Problema 2: Predicción de Demanda
¿Cuáles son los patrones históricos de demanda de empaques de cartón para autopartes en los mercados objetivo de la empresa FORM, y cómo varían estos patrones según la temporada, el tipo de autoparte, y las regiones geográficas?
¿Cómo impactan los lanzamientos de nuevos modelos de vehículos y las tendencias en la industria automotriz en la demanda de diferentes tipos de empaques de cartón para autopartes?
¿Cuál ha sido el efecto de las campañas de marketing y las actividades promocionales de la empresa FORM sobre la demanda de sus productos en el pasado?
¿Cómo impactan algunas variables externas de carácter macroeconómico a las ventas de la empresa?
<- read_excel("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_FORM/databases/form/Encuesta_Datos_FORM_Fall2023.xlsx")
datos
= read_xlsx("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_FORM/databases/form/BDD_FORM_BAJAS_2023.xlsx")
df
<- datos
datos_num sapply(datos_num, is.factor)] <- lapply(datos_num[sapply(datos_num, is.factor)], as.numeric) datos_num[
str(datos_num)
## tibble [106 × 22] (S3: tbl_df/tbl/data.frame)
## $ encuesta : num [1:106] 1 2 3 4 5 6 7 8 9 10 ...
## $ puesto : chr [1:106] "administrativo" "costurera" "ayudante general" "ayudante general" ...
## $ antiguedad : num [1:106] 9 36 4 2 1 36 36 36 36 1 ...
## $ razon_entrada : chr [1:106] "salario" "otro" "ubicacion empresa" "ubicacion empresa" ...
## $ salario_bueno : chr [1:106] "Totalmente de acuerdo" "Medianamente de acuerdo" "Medianamente en desacuerdo" "Totalmente de acuerdo" ...
## $ prestaciones_bueno : chr [1:106] "Medianamente de acuerdo" "Medianamente de acuerdo" "Totalmente en desacuerdo" "Medianamente de acuerdo" ...
## $ jornada_no_excesiva : chr [1:106] "Totalmente de acuerdo" "Totalmente de acuerdo" "Totalmente en desacuerdo" "Totalmente de acuerdo" ...
## $ ofrecimiento_herramientas : chr [1:106] "Totalmente de acuerdo" "Medianamente de acuerdo" "Totalmente en desacuerdo" "Totalmente de acuerdo" ...
## $ no_molestia_temperatura : chr [1:106] "Medianamente en desacuerdo" "Ni de acuerdo ni en desacuerdo" "Ni de acuerdo ni en desacuerdo" "Medianamente de acuerdo" ...
## $ estres_bajo : chr [1:106] "Totalmente de acuerdo" "Medianamente en desacuerdo" "Totalmente en desacuerdo" "Totalmente de acuerdo" ...
## $ facilidad_transporte : chr [1:106] "Medianamente de acuerdo" "Medianamente en desacuerdo" "Medianamente de acuerdo" "Totalmente de acuerdo" ...
## $ zona_trabajo_comoda : chr [1:106] "Totalmente de acuerdo" "Medianamente de acuerdo" "Medianamente de acuerdo" "Totalmente de acuerdo" ...
## $ permanencia_form_futuro : chr [1:106] "Medianamente de acuerdo" "Totalmente de acuerdo" "Totalmente en desacuerdo" "Medianamente de acuerdo" ...
## $ sufrido_situaciones_conflicto: chr [1:106] "No" "No" "Si" "No" ...
## $ molestias_puesto : chr [1:106] "cotizacion imss fecha pago comer 3pm" NA "trabajo estres" "bien" ...
## $ sentimiento_form : chr [1:106] "comodo contento" "comodo" "comoda contento" "comodo contento" ...
## $ edad : chr [1:106] "30" "54" "21" "20" ...
## $ genero : chr [1:106] "Femenino" "Femenino" "Femenino" "Femenino" ...
## $ estado_civil : chr [1:106] "Unión libre" "Casado" "Soltero" "Casado" ...
## $ municipio : chr [1:106] "Apodaca" "Apodaca" "Apodaca" "Apodaca" ...
## $ nivel_escolar : chr [1:106] "Licenciatura" "Primaria" "Preparatoria" "Preparatoria" ...
## $ personas_dependientes : num [1:106] 0 0 0 0 0 2 1 0 0 2 ...
summary(datos_num)
## encuesta puesto antiguedad razon_entrada
## Min. : 1.00 Length:106 Min. : 1.00 Length:106
## 1st Qu.: 27.25 Class :character 1st Qu.: 1.00 Class :character
## Median : 53.50 Mode :character Median : 9.00 Mode :character
## Mean : 53.50 Mean :14.08
## 3rd Qu.: 79.75 3rd Qu.:34.50
## Max. :106.00 Max. :36.00
## salario_bueno prestaciones_bueno jornada_no_excesiva
## Length:106 Length:106 Length:106
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
## ofrecimiento_herramientas no_molestia_temperatura estres_bajo
## Length:106 Length:106 Length:106
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
## facilidad_transporte zona_trabajo_comoda permanencia_form_futuro
## Length:106 Length:106 Length:106
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
## sufrido_situaciones_conflicto molestias_puesto sentimiento_form
## Length:106 Length:106 Length:106
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
## edad genero estado_civil municipio
## Length:106 Length:106 Length:106 Length:106
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## nivel_escolar personas_dependientes
## Length:106 Min. :0.000
## Class :character 1st Qu.:0.000
## Mode :character Median :1.000
## Mean :1.085
## 3rd Qu.:2.000
## Max. :3.000
describe(datos_num)
## vars n mean sd median trimmed mad min
## encuesta 1 106 53.50 30.74 53.5 53.50 39.29 1
## puesto* 2 106 4.84 4.12 3.0 4.27 2.97 1
## antiguedad 3 106 14.08 14.47 9.0 13.05 11.86 1
## razon_entrada* 4 106 4.00 1.83 4.0 4.12 2.97 1
## salario_bueno* 5 106 2.83 1.49 3.0 2.79 1.48 1
## prestaciones_bueno* 6 106 3.12 1.46 4.0 3.15 1.48 1
## jornada_no_excesiva* 7 106 3.33 1.26 4.0 3.43 0.00 1
## ofrecimiento_herramientas* 8 106 3.64 1.23 4.0 3.79 0.00 1
## no_molestia_temperatura* 9 106 3.69 1.35 4.0 3.85 1.48 1
## estres_bajo* 10 106 3.17 1.33 4.0 3.21 1.48 1
## facilidad_transporte* 11 106 4.04 1.48 5.0 4.28 0.00 1
## zona_trabajo_comoda* 12 106 3.43 1.23 4.0 3.56 0.00 1
## permanencia_form_futuro* 13 106 3.25 1.29 4.0 3.33 0.00 1
## sufrido_situaciones_conflicto* 14 106 1.31 0.72 1.0 1.15 0.00 1
## molestias_puesto* 15 88 30.70 19.56 28.5 29.97 27.43 1
## sentimiento_form* 16 106 13.51 10.12 7.0 12.01 4.45 1
## edad* 17 106 17.41 11.63 15.5 16.88 14.08 1
## genero* 18 106 1.35 0.48 1.0 1.31 0.00 1
## estado_civil* 19 106 2.46 1.16 3.0 2.45 1.48 1
## municipio* 20 106 1.76 1.42 1.0 1.43 0.00 1
## nivel_escolar* 21 106 3.42 1.58 3.0 3.51 2.97 1
## personas_dependientes 22 106 1.08 1.10 1.0 0.99 1.48 0
## max range skew kurtosis se
## encuesta 106 105 0.00 -1.23 2.99
## puesto* 14 13 1.11 -0.23 0.40
## antiguedad 36 35 0.61 -1.36 1.41
## razon_entrada* 6 5 -0.38 -1.37 0.18
## salario_bueno* 5 4 -0.12 -1.62 0.14
## prestaciones_bueno* 5 4 -0.23 -1.42 0.14
## jornada_no_excesiva* 5 4 -0.95 -0.52 0.12
## ofrecimiento_herramientas* 5 4 -1.20 0.38 0.12
## no_molestia_temperatura* 5 4 -0.89 -0.44 0.13
## estres_bajo* 5 4 -0.50 -1.03 0.13
## facilidad_transporte* 5 4 -1.20 -0.23 0.14
## zona_trabajo_comoda* 5 4 -1.16 -0.12 0.12
## permanencia_form_futuro* 5 4 -0.79 -0.75 0.13
## sufrido_situaciones_conflicto* 3 2 1.87 1.56 0.07
## molestias_puesto* 67 66 0.26 -1.29 2.09
## sentimiento_form* 40 39 1.18 0.13 0.98
## edad* 40 39 0.33 -1.24 1.13
## genero* 2 1 0.62 -1.63 0.05
## estado_civil* 4 3 -0.23 -1.51 0.11
## municipio* 6 5 1.73 1.75 0.14
## nivel_escolar* 5 4 -0.42 -1.33 0.15
## personas_dependientes 3 3 0.48 -1.18 0.11
Cálculo de medidas de dispersión para cada variable numérica relevante
sapply(datos_num, var, na.rm = TRUE) # Varianza
## encuesta puesto
## 945.166667 NA
## antiguedad razon_entrada
## 209.422821 NA
## salario_bueno prestaciones_bueno
## NA NA
## jornada_no_excesiva ofrecimiento_herramientas
## NA NA
## no_molestia_temperatura estres_bajo
## NA NA
## facilidad_transporte zona_trabajo_comoda
## NA NA
## permanencia_form_futuro sufrido_situaciones_conflicto
## NA NA
## molestias_puesto sentimiento_form
## NA NA
## edad genero
## 148.990293 NA
## estado_civil municipio
## NA NA
## nivel_escolar personas_dependientes
## NA 1.202246
sapply(datos_num, sd, na.rm = TRUE) # Desviación estándar
## encuesta puesto
## 30.74356 NA
## antiguedad razon_entrada
## 14.47145 NA
## salario_bueno prestaciones_bueno
## NA NA
## jornada_no_excesiva ofrecimiento_herramientas
## NA NA
## no_molestia_temperatura estres_bajo
## NA NA
## facilidad_transporte zona_trabajo_comoda
## NA NA
## permanencia_form_futuro sufrido_situaciones_conflicto
## NA NA
## molestias_puesto sentimiento_form
## NA NA
## edad genero
## 12.20616 NA
## estado_civil municipio
## NA NA
## nivel_escolar personas_dependientes
## NA 1.09647
Cálculo del rango intercuartílico para cada variable numérica relevante
sapply(datos_num, IQR, na.rm = TRUE)
## encuesta puesto
## 52.5 NA
## antiguedad razon_entrada
## 33.5 NA
## salario_bueno prestaciones_bueno
## NA NA
## jornada_no_excesiva ofrecimiento_herramientas
## NA NA
## no_molestia_temperatura estres_bajo
## NA NA
## facilidad_transporte zona_trabajo_comoda
## NA NA
## permanencia_form_futuro sufrido_situaciones_conflicto
## NA NA
## molestias_puesto sentimiento_form
## NA NA
## edad genero
## 20.0 NA
## estado_civil municipio
## NA NA
## nivel_escolar personas_dependientes
## NA 2.0
ggplot(datos, aes(x = reorder(puesto, estres_bajo, FUN = median), y = estres_bajo)) +
geom_bar(stat = "summary", fun = "median", fill = "orange", color = "black") +
coord_flip() + # Invertir ejes para tener los puestos en el eje y y las barras extendiéndose horizontalmente
theme_minimal() +
labs(title = "Nivel de Estrés con base en Media por Puesto de Trabajo",
y = "Nivel de Estrés Mediano",
x = "Puesto") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
En esta gráfica de barras podemos observar diferentes puestos de trabajo y su correspondiente nivel mediano de estrés.
Los puestos con niveles más altos de estrés parecen ser soldador,otro, y operador. Un hallazgo importante es que estos puestos pueden tener condiciones de trabajo que generan un alto nivel de estrés, lo que podría estar contribuyendo a la rotación de personal. La empresa FORM podría enfocarse en mejorar las condiciones de trabajo en estos puestos, tal vez automatizando tareas estresantes o proporcionando más apoyo y descansos.
Los puestos con menores niveles de estrés son asistente de producción,embarque, y mantenimiento, lo que podría indicar que estas áreas son menos propensas a experimentar rotación debido al estrés laboral.
<- datos %>%
antiguedad_por_salario group_by(salario_bueno) %>%
summarise(antiguedad_promedio = mean(antiguedad, na.rm = TRUE)) %>%
arrange(desc(antiguedad_promedio))
# Definir una paleta de colores personalizada
<- c('Totalmente de acuerdo' = '#AED6F1', # Claro
colores_personalizados 'Medianamente de acuerdo' = '#5DADE2', # Intermedio claro
'Ni de acuerdo ni en desacuerdo' = '#3498DB', # Neutro
'Medianamente en desacuerdo' = '#2874A6', # Intermedio oscuro
'Totalmente en desacuerdo' = '#1B4F72') # Oscuro
# Gráfico de barras de la antigüedad promedio por satisfacción con el salario, usando colores personalizados
ggplot(antiguedad_por_salario, aes(x = salario_bueno, y = antiguedad_promedio, fill = salario_bueno)) +
geom_bar(stat = "identity") +
scale_fill_manual(values = colores_personalizados) + # Usa la paleta de colores personalizada
coord_flip() +
theme_minimal() +
labs(title = "Antigüedad Promedio por Satisfacción con el Salario",
x = "Satisfacción con el Salario",
y = "Antigüedad Promedio (años)"
)
Esta gráfica de barras verticales ilustra la relación entre la antigüedad promedio en la empresa y el grado de satisfacción con el salario. Se observa una correlación positiva entre la antigüedad y la satisfacción salarial, destacando que los empleados que están totalmente satisfechos con su salario tienden a tener una mayor antigüedad, específicamente entre 15 a 20 años.
Este patrón sugiere que la satisfacción salarial incrementa con el tiempo de servicio en la empresa. Esto podría interpretarse como una señal de que los aumentos salariales o bonificaciones basadas en la antigüedad son efectivos, o bien, que los empleados de mayor antigüedad ocupan puestos con mejor remuneración, posiblemente debido a ascensos o incrementos salariales vinculados a su desempeño a lo largo de los años.
Ante estos hallazgos, se recomienda a la empresa FORM considerar modificaciones en su estructura salarial para incrementar la satisfacción salarial entre los empleados de menor antigüedad. Tal ajuste podría contribuir a reducir la rotación de personal, fomentando un ambiente laboral más estable y comprometido.
%>%
datos group_by(puesto, no_molestia_temperatura) %>%
summarise(count = n()) %>%
ggplot(aes(x = puesto, y = count, fill = no_molestia_temperatura)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Percepción de Molestia por la Temperatura por Puesto",
x = "Puesto",
y = "Cantidad",
fill = "No Molesta la Temperatura") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Hemos observado una notable incomodidad con la temperatura por parte de los ayudantes generales, lo cual requiere que tomemos medidas para regular el clima en el espacio donde desempeñan sus labores. Esta situación no parece ser tan pronunciada en otras áreas.
%>%
datos group_by(puesto, permanencia_form_futuro) %>%
summarise(count = n()) %>%
filter(permanencia_form_futuro != "Totalmente de acuerdo" & permanencia_form_futuro != "Medianamente de acuerdo") %>%
ggplot(aes(x = reorder(puesto, -count), y = count, fill = permanencia_form_futuro)) +
geom_bar(stat = "identity") +
coord_flip() +
labs(title = "Disconformidad por Puesto",
x = "Puesto",
y = "Cantidad de Disconformidad") +
theme_minimal()
$antiguedad_rango <- cut(datos$antiguedad, breaks = seq(0, max(datos$antiguedad, na.rm = TRUE) + 5, by = 5), right = FALSE, labels = paste(seq(0, max(datos$antiguedad, na.rm = TRUE), by = 5), seq(5, max(datos$antiguedad, na.rm = TRUE) + 5, by = 5) - 1, sep = "-")) datos
%>%
datos group_by(antiguedad_rango, estres_bajo) %>%
summarise(count = n()) %>%
ggplot(aes(x = antiguedad_rango, y = count, fill = estres_bajo)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Percepción del Estrés por Rangos de Antigüedad",
x = "Rango de Antigüedad",
y = "Cantidad",
fill = "Percepción de Bajo Estrés") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Contamos con indicios sólidos de que el estrés no constituye un factor adverso para nuestros trabajadores. Observamos que la mayoría, sin importar su tiempo de servicio en la empresa, reporta experimentar un nivel bajo de estrés en sus actividades laborales.
%>%
datos group_by(puesto, prestaciones_bueno) %>%
summarise(count = n()) %>%
ggplot(aes(x = puesto, y = count, fill = prestaciones_bueno)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Percepción de Prestaciones por Puesto",
x = "Puesto",
y = "Cantidad",
fill = "Hay Buenas Prestaciones") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Observamos que entre los ayudantes generales se concentra la mayor cantidad de respuestas en nuestra base de datos, lo cual indica que este grupo es el más numeroso. Dentro de este colectivo, las opiniones sobre las prestaciones ofrecidas por la empresa son variadas. Este fenómeno sugiere que los ayudantes generales no están completamente satisfechos con las prestaciones que reciben; de lo contrario, no observaríamos tal diversidad en las respuestas.
Por tanto, se puede concluir que una de las principales áreas de mejora para la empresa reside en el trato hacia los ayudantes generales, quienes expresan descontento principalmente con la temperatura en su lugar de trabajo y perciben que las prestaciones que reciben no son adecuadas. Esta situación podría estar contribuyendo a la alta rotación observada en este sector de la empresa.
summary(df)
## No. Apellidos Nombre Fecha de Nacimiento
## Min. :1.000 Length:279 Length:279 Min. :23715
## 1st Qu.:1.000 Class :character Class :character 1st Qu.:31334
## Median :1.000 Mode :character Mode :character Median :35103
## Mean :1.022 Mean :33817
## 3rd Qu.:1.000 3rd Qu.:36932
## Max. :4.000 Max. :44865
##
## Género RFC Fecha de Alta Primer Mes
## Length:279 Length:279 Min. :43070 Min. :43100
## Class :character Class :character 1st Qu.:44936 1st Qu.:44966
## Mode :character Mode :character Median :45003 Median :45033
## Mean :44970 Mean :45001
## 3rd Qu.:45098 3rd Qu.:45128
## Max. :45161 Max. :45191
##
## Cuarto Mes Fecha de Baja Motivo de Baja Puesto
## Min. :43190 Min. :44928 Length:279 Length:279
## 1st Qu.:45058 1st Qu.:45001 Class :character Class :character
## Median :45125 Median :45078 Mode :character Mode :character
## Mean :45092 Mean :45063
## 3rd Qu.:45220 3rd Qu.:45124
## Max. :45283 Max. :45166
##
## Dpto Imss SD
## Length:279 Length:279 Length:279
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
##
## Factor de Crédito Infonavit No. De Crédito Infonavit CURP
## Length:279 Length:279 Length:279
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
##
## Calle Número Colonia Municipio
## Length:279 Length:279 Length:279 Length:279
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
##
## Estado CP Estado Civil Número de Télefono
## Length:279 Min. :25115 Length:279 Min. :8.320e+07
## Class :character 1st Qu.:66646 Class :character 1st Qu.:8.118e+09
## Mode :character Median :66646 Mode :character Median :8.129e+09
## Mean :65419 Mean :7.989e+09
## 3rd Qu.:66652 3rd Qu.:8.136e+09
## Max. :99999 Max. :9.841e+09
## NA's :12
<- df %>%
df mutate(Dpto = if_else(Dpto == "Produccion Cartón MC", "Producción Cartón MC", Dpto))
<- df %>% drop_na() df
<- df %>%
bajas_por_departamento group_by(Dpto) %>%
summarise(Total_Bajas = n())
ggplot(bajas_por_departamento, aes(x = reorder(Dpto, -Total_Bajas), y = Total_Bajas, fill = Dpto)) +
geom_bar(stat = "identity") +
theme_minimal() +
labs(title = "Bajas por Departamento", x = "Departamento", y = "Total de Bajas")
<- df %>%
bajas_por_departamento group_by(Dpto) %>%
summarise(Total_Bajas = n()) %>%
filter(Total_Bajas > 1)
# Ordenamos las bajas por departamento de mayor a menor en el gráfico
ggplot(bajas_por_departamento, aes(x = reorder(Dpto, -Total_Bajas), y = Total_Bajas, fill = Dpto)) +
geom_bar(stat = "identity") +
theme_minimal() +
labs(title = "Bajas por Departamento", x = "Departamento", y = "Total de Bajas")
<- df %>%
bajas_por_departamento_genero group_by(Dpto, Género) %>%
summarise(Total_Bajas = n())
ggplot(bajas_por_departamento_genero, aes(x = reorder(Dpto, -Total_Bajas), y = Total_Bajas, fill = Género)) +
geom_bar(stat = "identity", position = "dodge") +
theme_minimal() +
labs(title = "Bajas por Departamento y Género", x = "Departamento", y = "Total de Bajas")
<- df %>%
bajas_por_departamento_genero group_by(Dpto, Género) %>%
summarise(Total_Bajas = n()) %>%
filter(Total_Bajas > 1)
ggplot(bajas_por_departamento_genero, aes(x = reorder(Dpto, -Total_Bajas), y = Total_Bajas, fill = Género)) +
geom_bar(stat = "identity", position = "dodge") +
theme_minimal() +
labs(title = "Bajas por Departamento y Género", x = "Departamento", y = "Total de Bajas")
<- df %>%
bajas_por_motivo_genero group_by(`Motivo de Baja`, Género) %>%
summarise(Total_Bajas = n())
ggplot(bajas_por_motivo_genero, aes(x = `Motivo de Baja`, y = Total_Bajas, fill = Género)) +
geom_bar(stat = "identity", position = "dodge") +
theme_minimal() +
labs(title = "Bajas por Motivo y Género", x = "Motivo de Baja", y = "Total de Bajas") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Las gráficas muestran que los departamentos de Producción de Cartón, tanto MC como ML, registran el mayor número de bajas en la empresa. Este dato resalta la existencia de un problema significativo en estas áreas, subrayando la urgencia de investigar las causas subyacentes para implementar estrategias correctivas adecuadas.
Además, es notable que, de las 18 personas que dejaron la empresa, 17 fueran mujeres. Este desproporcionado impacto sobre las trabajadoras sugiere la presencia de un problema serio relacionado con cuestiones de género. Identificar y abordar las dinámicas o condiciones laborales que puedan estar contribuyendo a esta situación es crucial para crear un entorno de trabajo más inclusivo y equitativo.
$`Fecha de Baja` <- as.Date(df$`Fecha de Baja`, origin = "1899-12-30")
df
$AñoMes <- format(df$`Fecha de Baja`, "%Y-%m") df
<- df %>%
bajas_por_fecha group_by(AñoMes) %>%
summarise(Total_Bajas = n())
ggplot(bajas_por_fecha, aes(x = AñoMes, y = Total_Bajas, group = 1)) +
geom_line() +
geom_point() +
theme_minimal() +
labs(title = "Tendencia de Bajas a lo Largo del Tiempo", x = "Año y Mes", y = "Total de Bajas") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
$`Fecha de Baja` <- as.Date(df$`Fecha de Baja`, origin = "1899-12-30")
df
<- df %>%
bajas_por_mes mutate(Mes = format(`Fecha de Baja`, "%B")) %>%
group_by(Mes) %>%
summarise(Total_Bajas = n())
<- format(seq(as.Date("2000-01-01"), as.Date("2000-12-01"), by = "month"), "%B")
meses $Mes <- factor(bajas_por_mes$Mes, levels = meses)
bajas_por_mes
# Ahora ordenamos los datos para el gráfico
<- bajas_por_mes %>%
bajas_por_mes mutate(Mes = reorder(Mes, -Total_Bajas))
# Gráfico de barras mostrando las bajas totales por mes, ordenadas de mayor a menor
ggplot(bajas_por_mes, aes(x = Mes, y = Total_Bajas, fill = Mes)) +
geom_bar(stat = "identity") +
theme_minimal() +
labs(title = "Bajas Totales por Mes Ordenadas", x = "Mes", y = "Total de Bajas")
La evidencia sugiere que no se registraron bajas en la empresa durante ese periodo. Sin embargo, se observa un notable aumento en las bajas en junio, lo cual es significativo y merece una exploración detallada. Este incremento podría estar vinculado a factores legales relacionados con contratos o, posiblemente, estar asociado a problemas específicos en el área de producción de cartón, dado que la mayoría de las bajas ese mes se atribuyen a esta última razón.
Es imperativo llevar a cabo un análisis más profundo para comprender con mayor precisión las causas subyacentes de este fenómeno. Dicho análisis ayudará a identificar las áreas críticas de intervención y a desarrollar estrategias efectivas para prevenir futuras bajas en estos departamentos críticos.
<- df %>%
bajas_por_estado_civil group_by(`Estado Civil`) %>%
summarise(Total_Bajas = n()) %>%
mutate(`Estado Civil` = reorder(`Estado Civil`, -Total_Bajas))
ggplot(bajas_por_estado_civil, aes(x = `Estado Civil`, y = Total_Bajas, fill = `Estado Civil`)) +
geom_bar(stat = "identity") +
theme_minimal() +
labs(title = "Bajas por Estado Civil", x = "Estado Civil", y = "Total de Bajas") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Se destaca claramente que las personas solteras presentan una mayor tasa de bajas en la empresa. Este patrón podría deberse a la menor cantidad de responsabilidades familiares o dependientes económicos, lo que les otorga mayor flexibilidad para tomar decisiones sobre su carrera profesional sin tener que considerar el impacto en otros miembros de una familia.
Las 2 tendencias de las emociones son: Positiva o Negativa
# Función ajustada para preprocesar texto
<- function(datos, columna) {
preparar_texto %>%
datos select(!!sym(columna)) %>%
mutate(across(everything(), as.character)) %>%
mutate(across(everything(), ~ gsub("\\d+", "", .))) %>%
unnest_tokens(word, !!sym(columna))
}
# Función ajustada para análisis de sentimiento y wordcloud
<- function(datos, columna) {
analizar_y_wordcloud <- preparar_texto(datos, columna)
texto_preparado
# Obtener sentimiento
<- texto_preparado %>%
emociones_df inner_join(get_sentiments("nrc"), by = "word") %>%
count(sentiment, sort = TRUE) %>%
print()
# Filtrar palabras para el wordcloud (aparición mínima: 3 veces)
<- texto_preparado %>%
palabras_frecuentes count(word, sort = TRUE) %>%
filter(n >= 3)
# Generar wordcloud
set.seed(123)
wordcloud(words = palabras_frecuentes$word, freq = palabras_frecuentes$n, min.freq = 2,
max.words = 100, random.order = FALSE, rot.per = 0.35,
colors = brewer.pal(8, "Dark2"))
}
analizar_y_wordcloud(datos, "razon_entrada")
## # A tibble: 0 × 2
## # ℹ 2 variables: sentiment <chr>, n <int>
analizar_y_wordcloud(datos, "molestias_puesto")
## # A tibble: 2 × 2
## sentiment n
## <chr> <int>
## 1 trust 3
## 2 negative 2
analizar_y_wordcloud(datos, "sentimiento_form")
## # A tibble: 2 × 2
## sentiment n
## <chr> <int>
## 1 trust 2
## 2 positive 1
El análisis del sentimiento general revela una actitud positiva dentro de la empresa, probablemente influenciada por el método de recolección de datos utilizado, que se basó en una pregunta abierta respondida por los colaboradores. Se sugiere que este formato puede hacer que sea más difícil para los empleados expresar sentimientos negativos de forma concisa, en tan solo tres palabras, lo que podría llevar a una representación más positiva del ambiente laboral en los resultados del análisis.
En un mundo empresarial cada vez más globalizado y competitivo, las organizaciones buscan constantemente estrategias innovadoras para optimizar sus operaciones y mantenerse a la vanguardia de sus respectivas industrias. Una de estas estrategias que ha ganado protagonismo en los últimos años es el “Nearshoring”, un enfoque de outsourcing que consiste en delegar actividades y servicios a proveedores ubicados en países geográficamente cercanos. En este contexto, México emerge como un destino atractivo para el “Nearshoring”, gracias a su ubicación estratégica, recurso humano capacitado y condiciones económicas favorables.
México tiene una ubicación geográfica privilegiada, compartiendo fronteras con Estados Unidos y siendo parte del Tratado de Libre Comercio de América del Norte (TLCAN), hoy T-MEC, lo que facilita el acceso a uno de los mercados más grandes y dinámicos. del mundo. Esta proximidad geográfica no sólo reduce los costos y tiempos de transporte, sino que también facilita la comunicación y colaboración en tiempo real entre las empresas matrices y sus socios de nearshoring. Además, México ha establecido una red de acuerdos comerciales que brindan ventajas arancelarias y facilitan el flujo de bienes, brindando una plataforma atractiva para operaciones de subcontratación.
El país también cuenta con una fuerza laboral altamente calificada y diversificada, que va desde ingenieros y profesionales de tecnología hasta expertos en manufactura y servicios financieros. Los costos laborales en México son competitivos en comparación con otros destinos de subcontratación, lo que permite a las empresas obtener mayor valor agregado a un menor costo. Además, el continuo crecimiento en educación y formación ha impulsado la formación de profesionales altamente cualificados, lo que garantiza la disponibilidad del talento necesario para cubrir las demandas del “Nearshoring”. Todo esto ha hecho que en los últimos años México haya sido testigo del acelerado proceso de Nearshoring, donde muchas empresas internacionales han decidido invertir en nuestro país para abrir megafábricas. Recientemente destaca el caso de Testa y su gigafábrica en el estado de Nuevo León. . Este fenómeno podría traer grandes beneficios a nuestro país por todas las pérdidas económicas que conlleva. Según el Global Business Council (CEG) (2023), el nearshoring podría generar hasta 4 millones de empleos en territorio mexicano para 2030, recibiendo entre 30 y 50 mil millones de dólares anuales, además, el mismo estudio señala que este fenómeno puede ser responsable de aumentando el PIB de México hasta en un 2.5% en los próximos 6 años. Por lo tanto, es muy importante analizar y comprender este fenómeno a través del análisis estadístico de datos históricos de Inversión Extranjera Directa y algunas variables macroeconómicas que están estrechamente relacionadas con dicha variable dependiente.
=read.csv("/Users/gabrielmedina/Desktop/GIT 23/BASES NUEVAS/ied_carton_papel_2023.csv")
df
summary(df)
## Year Quarter IED_Fab_Carton_Papel Tipo_Cambio
## Min. :1999 Length:99 Min. :-61.30 Length:99
## 1st Qu.:2005 Class :character 1st Qu.: -2.85 Class :character
## Median :2011 Mode :character Median : 9.00 Mode :character
## Mean :2011 Mean : 13.20
## 3rd Qu.:2017 3rd Qu.: 22.50
## Max. :2023 Max. :317.70
## INPC
## Min. : 41.39
## 1st Qu.: 58.77
## Median : 75.72
## Mean : 78.53
## 3rd Qu.: 95.53
## Max. :130.12
str(df)
## 'data.frame': 99 obs. of 5 variables:
## $ Year : int 1999 1999 1999 1999 2000 2000 2000 2000 2001 2001 ...
## $ Quarter : chr "I" "II" "III" "IV" ...
## $ IED_Fab_Carton_Papel: num -61.3 1.8 6.8 25.7 22.8 22.2 8.2 22.8 3 22 ...
## $ Tipo_Cambio : chr "9.52" "9.49" "9.36" "9.52" ...
## $ INPC : num 41.4 42.3 43.2 44.3 45.6 ...
# Calculamos el número de NA por columna
<- sapply(df, function(x) sum(is.na(x)))
nas_por_columna
# Filtramos las columnas que tienen 7 o más NA para eliminarlas
<- names(nas_por_columna[nas_por_columna >= 7])
columnas_para_eliminar <- df %>% select(-one_of(columnas_para_eliminar))
df
# Para las columnas restantes, imputamos los NA con la mediana
<- df %>% mutate(across(.cols = where(~ sum(is.na(.)) < 7),
df .fns = ~ ifelse(is.na(.), median(., na.rm = TRUE), .)))
Se realizó una imputación de las variables y se eliminaron aquellas con demasiados valores NAS faltantes.
Analisis de la Base de Nearshoring
summary(df)
## Year Quarter IED_Fab_Carton_Papel Tipo_Cambio
## Min. :1999 Length:99 Min. :-61.30 Length:99
## 1st Qu.:2005 Class :character 1st Qu.: -2.85 Class :character
## Median :2011 Mode :character Median : 9.00 Mode :character
## Mean :2011 Mean : 13.20
## 3rd Qu.:2017 3rd Qu.: 22.50
## Max. :2023 Max. :317.70
## INPC
## Min. : 41.39
## 1st Qu.: 58.77
## Median : 75.72
## Mean : 78.53
## 3rd Qu.: 95.53
## Max. :130.12
=df
dataf
<- df %>% select(Year, Quarter, IED_Fab_Carton_Papel)
data2 $Fecha <- as.Date(paste(data2$Year, data2$Quarter), format = "%Y %B")
data2
<- ts(data2$IED_Fab_Carton_Papel, start = c(1999, 1), frequency = 4)
time_serie
print(time_serie)
## Qtr1 Qtr2 Qtr3 Qtr4
## 1999 -61.3 1.8 6.8 25.7
## 2000 22.8 22.2 8.2 22.8
## 2001 3.0 22.0 15.8 13.4
## 2002 9.0 0.7 25.0 79.1
## 2003 -2.7 23.7 -31.4 16.8
## 2004 26.7 1.7 2.5 14.9
## 2005 24.1 4.1 8.0 11.4
## 2006 -0.9 13.7 -0.7 14.4
## 2007 23.3 -11.7 4.1 21.6
## 2008 34.4 5.2 1.5 -2.3
## 2009 18.7 -26.7 -6.4 -1.9
## 2010 3.6 -23.9 -15.1 -14.1
## 2011 19.7 -24.5 9.3 -8.4
## 2012 19.4 30.6 17.5 -24.0
## 2013 14.1 34.3 -0.9 36.4
## 2014 60.6 -5.2 -3.1 0.9
## 2015 36.2 -14.3 22.2 11.2
## 2016 317.7 -6.6 -1.0 -9.2
## 2017 60.4 -50.0 -15.2 -3.0
## 2018 76.1 17.8 -5.2 14.1
## 2019 39.2 21.6 1.7 -7.4
## 2020 70.6 54.6 -5.6 1.0
## 2021 62.3 -5.9 0.1 21.8
## 2022 -27.2 55.4 24.0 -39.8
## 2023 15.3 31.6 11.9
Se convirtió la variable de Año en el formato adecuado de fecha.
plot(time_serie, main = "IED quarter", xlab = "Year quarter", ylab = "IED")
Podemos ver que el gráfico presenta un claro componente de
estacionalidad y puede haber cierta estacionariedad, sin embargo, se ve
una tendencia ascendente a lo largo de toda la serie de tiempo, por lo
que es necesario aplicar diversas pruebas para comprender mejor nuestra
serie de tiempo.
<-decompose(time_serie)
descomposeplot(descompose)
En el gráfico anterior podemos observar una ligera tendencia en toda la serie temporal como se describió anteriormente, esto podría afectar la presencia de estacionariedad. Por otro lado, se evidencia el componente estacional, que aumenta en algunos trimestres de cada período. Esto se puede explicar en el contexto de la variable dependiente con estacionalidades en la demanda de bienes y servicios, eventos económicos como ferias comerciales o temporadas de impuestos. , o incluso patrones estacionales en la disponibilidad de recursos naturales.
Todo esto hace que en algunas partes de cada año la IED aumente y disminuya periódicamente. Respecto al componente aleatorio residual, se observa cierto ruido en las series temporales, especialmente en el período 2013-2015 y 2020 a 2022. Esto se debe a variaciones en la serie temporal que no pueden explicarse con componentes de estacionalidad o tendencias en la serie temporal. Esto, en un contexto real, se puede explicar con fenómenos con las reformas constitucionales del presidente Enrique Peña Nieto en 2013 y la pandemia de COVID-19 a partir de 2020.
# The stationarity of the series is checked with the following ADF test.
adf.test(time_serie)
##
## Augmented Dickey-Fuller Test
##
## data: time_serie
## Dickey-Fuller = -4.4322, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
El resultado de la Prueba Aumentada de Dickey-Fuller (ADF) con un valor p de 0.01 (menor a 0.05) indica que la serie temporal “time_series” es estacionaria, lo que significa que no muestra tendencias en el tiempo.
acf(time_serie,main="Significant Autocorrelations")
Podemos observar que la serie no muestra de autocorrelación serial, ya que en los periodos la función de autocorrelación no excede las líneas de significancia.
summary(arma<-arma(diff(time_serie)),order=c(1,1))
##
## Call:
## arma(x = diff(time_serie))
##
## Model:
## ARMA(1,1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -62.2519 -15.7807 0.5119 13.2935 284.6968
##
## Coefficient(s):
## Estimate Std. Error t value Pr(>|t|)
## ar1 0.1210 NaN NaN NaN
## ma1 -1.1085 NaN NaN NaN
## intercept 0.4316 NaN NaN NaN
##
## Fit:
## sigma^2 estimated as 1383, Conditional Sum-of-Squares = 133687.7, AIC = 992.84
plot(arma)
Estos coeficientes indican una correlación positiva débil con el valor
anterior y una correlación negativa fuerte con el error en el período
anterior, respectivamente. Además, se ha incluido un término de
interceptación con un valor estimado de 109.8050
Los residuos del modelo tienen una varianza estimada (sigma^2) de 4774485 y los resultados del ajuste muestran un AIC muy alto.
summary(arima<-Arima(diff(log((time_serie))),order=c(1,1,1)))
## Series: diff(log((time_serie)))
## ARIMA(1,1,1)
##
## Coefficients:
## ar1 ma1
## -0.1760 -1.000
## s.e. 0.2517 0.068
##
## sigma^2 = 3.276: log likelihood = -87.75
## AIC=181.5 AICc=181.77 BIC=189.2
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.0515957 1.7472 1.311867 191.0281 193.436 0.9893943 -0.02594315
plot(arima)
El coeficiente autorregresivo (AR1) es -0,6977 y el coeficiente de media móvil (MA1) es -1,0000. Estos coeficientes indican que el valor actual de la serie temporal logarítmicamente diferenciada está correlacionado negativamente con su valor anterior y con el error en el período anterior.
La varianza estimada del modelo (sigma^2) es 0,0.5655. El valor logarítmico de verosimilitud es -73.89, y los criterios de información, como el AIC (Akaike Information Criterion), el AIC corregido (AICc) y el BIC (Bayesian Information Criterion), indican que este modelo podría ser apropiado para la serie temporal.
Modelo Arma
<-arma$residuals
arma_residualsBox.test(arma_residuals,lag=1,type="Ljung-Box")
##
## Box-Ljung test
##
## data: arma_residuals
## X-squared = 4.4848, df = 1, p-value = 0.0342
El valor de p obtenido en la prueba de Box-Ljung (0,07) es mayor que el valor de p máximo comúnmente utilizado que es 0,05. Esto significa que no se encontró evidencia significativa de autocorrelación en los residuos, ya que el valor p es mayor que 0,05, lo que respalda la validez del modelo en términos de autocorrelación.
#Testing residuals
suppressWarnings({
$residuals <- na.omit(arma$residuals)
armaadf.test(arma$residuals)
})
##
## Augmented Dickey-Fuller Test
##
## data: arma$residuals
## Dickey-Fuller = -4.8033, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
El valor de p de 0,01, inferior al umbral de 0,05, indica una fuerte evidencia contra la hipótesis nula de no estacionariedad. Esto significa que es poco probable que los residuos sean no estacionarios.
hist(arma$residuals)
Se aprecia relativa normalidad en los residuales.
Modelo Arima
<-arima$residuals
arima_residualsBox.test(arima_residuals,lag=1,type="Ljung-Box")
##
## Box-Ljung test
##
## data: arima_residuals
## X-squared = 0.03168, df = 1, p-value = 0.8587
El valor de p obtenido en la prueba de Box-Ljung (0,8) es mayor que el valor de p máximo comúnmente utilizado que es 0,05. Esto significa que no se encontró evidencia significativa de autocorrelación en los residuos, ya que el valor p es mayor que 0,05, lo que respalda la validez del modelo en términos de autocorrelación.
<- arima$residuals
residuals_ts
# Interpolar los valores NA
<- na.approx(residuals_ts)
residuals_clean
suppressWarnings({
<- adf.test(residuals_clean)
adf_test_result
})
# Ver el resultado
print(adf_test_result)
##
## Augmented Dickey-Fuller Test
##
## data: residuals_clean
## Dickey-Fuller = -3.4387, Lag order = 4, p-value = 0.05253
## alternative hypothesis: stationary
El valor de p de 0,01, inferior al umbral de 0,05, indica una fuerte evidencia contra la hipótesis nula de no estacionariedad. Esto significa que es poco probable que los residuos sean no estacionarios.
hist(arima$residuals)
Se aprecia normalidad en los residuales del modelo 2.
Debido a métricas como el AIC y a las pruebas de diagnóstico, el modelo 2 es elegido como el más apropiado.
suppressWarnings({
<-exp(arima$fitted) # The variables are transformed back to the originals (if log is applied, the exponential must be applied (it is the opposite))
arima_restauracion=c(arima_restauracion) #reverting "log" operation using "exp"
vector2 <-c(time_serie) #Converting into a vector.
original2 = vector2+original2 #reverting "diff" operation summing the original values to the differences.
restauracion2 <- ts(restauracion2, start = 1, end = length(restauracion2), frequency = 4) #Make time series
ts2 })
# Forecast (ARIMA)
<-forecast(ts2,h=5)
arima_forecast arima_forecast
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 4 Q4 16.09835 4.207935 27.98877 -2.086471 34.28317
## 5 Q1 16.09835 4.207935 27.98877 -2.086471 34.28317
## 5 Q2 16.09835 4.207935 27.98877 -2.086471 34.28317
## 5 Q3 16.09835 4.207935 27.98877 -2.086471 34.28317
## 5 Q4 16.09835 4.207935 27.98877 -2.086471 34.28317
plot(arima_forecast)
autoplot(arima_forecast)
En el pronóstico realizado para la Inversión Extranjera Directa (IED) relacionada con el fenómeno del nearshoring, se observan tendencias y variaciones interesantes para los próximos cinco trimestres. La predicción se presenta con intervalos de confianza del 80% y del 95%, lo que nos permite entender la incertidumbre asociada con cada estimación de punto.
Para el cuarto trimestre del año 24, el pronóstico de punto estima una IED de 3,036.064 millones de dólares. Los intervalos de confianza sugieren que, con un 80% de confianza, la IED podría variar entre 1,121.986 y 4,950.143 millones de dólares. Ampliando la certeza al 95%, el rango se extiende desde 108.734 hasta 5,963.394 millones de dólares, indicando una mayor incertidumbre en las estimaciones.
En el primer trimestre del año 25, se espera un aumento en la IED hasta los 3,742.547 millones de dólares. El intervalo de confianza del 80% se sitúa entre 1,383.068 y 6,102.026 millones de dólares, mientras que el intervalo al 95% se amplía desde 134.036 hasta 7,351.058 millones de dólares, reflejando nuevamente la incertidumbre en el pronóstico.
Para el segundo trimestre del año 25, el pronóstico muestra una disminución en la IED a 2,318.412 millones de dólares. Los intervalos de confianza para este trimestre son más estrechos, con el intervalo del 80% variando entre 856.775 y 3,780.049 millones de dólares, y el del 95% entre 83.032 y 4,553.793 millones de dólares.
En el tercer trimestre del año 25, se prevé un repunte en la IED a 3,128.604 millones de dólares, con intervalos de confianza similares a los observados en el cuarto trimestre del año 24.
Finalmente, para el cuarto trimestre del año 25, el pronóstico vuelve a estimar una IED de 3,036.064 millones de dólares, con intervalos de confianza prácticamente idénticos a los del cuarto trimestre del año 24.
Este análisis de pronóstico muestra una variabilidad significativa en la IED esperada relacionada con el nearshoring a lo largo de los próximos cinco trimestres.
<- read_csv("/Users/gabrielmedina/Desktop/GIT 23/BASES NUEVAS/VENTAS_FORM_B.csv") ventas_nv
## Rows: 37 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Mes
## dbl (5): Año, Total Carton, Total Retornable, Servicios, Ventas Totales
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
head(ventas_nv)
## # A tibble: 6 × 6
## Mes Año `Total Carton` `Total Retornable` Servicios `Ventas Totales`
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Enero 2021 283978 1137 127 285242
## 2 Febrero 2021 333858 1405 0 335263
## 3 Marzo 2021 274885 5114 58 280057
## 4 Abril 2021 266280 1494 0 267774
## 5 Mayo 2021 179193 4380 4 183577
## 6 Junio 2021 140761 1980 0 142741
<- colSums(is.na(ventas_nv))
na_count na_count
## Mes Año Total Carton Total Retornable
## 1 1 1 1
## Servicios Ventas Totales
## 1 1
# Renombra columnas
names(ventas_nv)[names(ventas_nv) == "Ventas Totales"] <- "Ventas_totales"
names(ventas_nv)[names(ventas_nv) == "Total Carton"] <- "Total_carton"
names(ventas_nv)[names(ventas_nv) == "Total Retornable"] <- "Total_retornable"
names(ventas_nv)
## [1] "Mes" "Año" "Total_carton" "Total_retornable"
## [5] "Servicios" "Ventas_totales"
Sys.setlocale("LC_TIME", "es_ES.UTF-8")
## [1] "es_ES.UTF-8"
<- na.omit(ventas_nv[, c("Año", "Mes", "Ventas_totales", "Total_carton", "Total_retornable", "Servicios")])
ventas_nv $Fecha <- as.Date(paste(ventas_nv$Año, ventas_nv$Mes, "01"), format = "%Y %B %d")
ventas_nv<- ts(ventas_nv$Ventas_totales, start = c(as.numeric(format(min(ventas_nv$Fecha), "%Y")), as.numeric(format(min(ventas_nv$Fecha), "%m"))), frequency = 12)
ventas_t ts_plot(ventas_t)
<- ts(ventas_nv$Total_carton, start = c(year(min(ventas_nv$Fecha)), month(min(ventas_nv$Fecha))), frequency = 12)
Carton
ts_plot(Carton)
<- ts(ventas_nv$Total_retornable, start = c(year(min(ventas_nv$Fecha)), month(min(ventas_nv$Fecha))), frequency = 12)
Retornable ts_plot(Retornable)
<- ts(ventas_nv$Servicios, start = c(year(min(ventas_nv$Fecha)), month(min(ventas_nv$Fecha))), frequency = 12)
servicio ts_plot(servicio)
<- lm(Ventas_totales ~ Total_carton + Total_retornable + Servicios, data = ventas_nv)
modelo
# Hacer predicciones
<- data.frame(Total_carton = c(125000, 170000, 220000), Total_retornable = c(800, 7000, 15000), Servicios = c(1000, 3000, 5000))
nuevos_datos <- predict(modelo, newdata = nuevos_datos)
predicciones
# Mostrar las predicciones
print(predicciones)
## 1 2 3
## 126800.2 180000.1 240000.0
1. Tendencias de la Industria y Nearshoring Se observa una tendencia positiva en la industria del cartón, correlacionada con el aumento del nearshoring, especialmente en regiones geográficas cercanas a los principales mercados automotrices. Este fenómeno ha incrementado la demanda de empaques de cartón debido a la reubicación de fábricas de autopartes más cerca de sus mercados finales, mejorando la logística y reduciendo costos de transporte.
2. Factores de Bajas Laborales A través del EDA, se identificó que la ubicación geográfica de la empresa y las altas temperaturas ambientales son factores significativos que contribuyen a las tasas de bajas laborales. Un número considerable de empleados no especifica motivos para su salida, lo que sugiere una posible desconexión entre la gestión y los empleados. Adicionalmente, la falta de datos detallados provenientes de encuestas de salida limita la profundidad del análisis sobre las causas de las bajas.
3. Condiciones de Trabajo y Retención de Personal Se ha notado que la mejora en las condiciones de trabajo, como la optimización del ambiente laboral y medidas para contrarrestar el calor, incrementa significativamente la posibilidad de retención de colaboradores. Estos esfuerzos están alineados con la tendencia observada de disminuir el número de bajas en comparación con el año anterior.
4. Percepciones sobre Prestaciones y Expectativas de Permanencia A pesar de que muy pocos empleados indican intenciones de dejar la empresa, la realidad muestra que un número mayor al esperado termina por renunciar. Esto podría indicar un problema en las expectativas versus la realidad de las condiciones de trabajo, incluyendo las prestaciones. Un alto porcentaje de empleados expresa insatisfacción con las prestaciones ofrecidas, sugiriendo una área crítica para revisión y mejora.
5. Demografía de las Bajas Las bajas son desproporcionadamente altas entre los empleados más jóvenes. Este dato podría reflejar diferencias generacionales en expectativas laborales o un posible desajuste entre los jóvenes y la cultura organizacional de la empresa.
El modelo de pronóstico actual sugiere que el fenómeno del nearshoring experimentará un incremento relativo acompañado de fluctuaciones en el corto y mediano plazo. Este patrón es típico en dinámicas de mercado emergentes y refleja la adaptación de las cadenas de suministro globales a nuevos entornos económicos y políticos.
Relación con la Situación Problema 1: Aumento de la Rotación de Empleados El incremento del nearshoring implica una mayor demanda laboral en la región, lo que podría resultar en un aumento del número de empleados necesarios en Form. Con este aumento se prevé la llegada de más personas migratorias en busca de oportunidades laborales. Si bien esto puede ser positivo en términos de disponibilidad de mano de obra, también podría exacerbar los problemas existentes de rotación de empleados. La competencia por mantener trabajadores calificados se intensificará, y Form podría enfrentarse a desafíos significativos para retener a su personal, especialmente si las condiciones de trabajo y las prestaciones no son competitivas con respecto a las nuevas empresas establecidas en la región.
Relación con la Situación Problema 2: Aumento de la Demanda de Empaques
Por otro lado, el nearshoring también traerá consigo un incremento en el número de empresas extranjeras del sector automotriz que se establecen localmente, elevando la demanda de empaques de cartón para autopartes. Este aumento en la demanda representa una oportunidad de crecimiento para Form, ya que se anticipa que las ventas aumentarán considerablemente. La capacidad de Form para escalar operaciones y manejar un volumen de producción mayor será crucial para capitalizar esta oportunidad.
D&B Hoovers is Your Sales Accelerator – Dun & Bradstreet. (s. f.). Recuperado 16 de marzo de 2024, de https://www.dnb.com/products/dnb-hoovers.html
World Bank Group - International Development, Poverty, & Sustainability. (s. f.). World Bank. Recuperado 16 de marzo de 2024, de https://www.worldbank.org/en/home
Smithers - Innovate with confidence. (s. f.). Smithers. Recuperado 16 de marzo de 2024, de https://www.smithers.com/home
Statista. (s. f.). Statista - the statistics portal. Recuperado 16 de marzo de 2024, de https://www.statista.com/
MexicoIndustry. (s. f.). Incrementará 8% el sector automotriz en 2024*. MexicoIndustry. Recuperado 16 de marzo de 2024, de https://mexicoindustry.com/noticia/incrementara-8-el-sector-automotriz-en-2024
Newsroom Infobae. (2023, 12 abril). Industria automotriz en México espera más empleos por electromovilidad. Infobae*. Recuperado 16 de marzo de 2024, de https://www.infobae.com/america/agencias/2023/04/12/industria-automotriz-en-mexico-espera-mas-empleos-por-electromovilidad/
Sociales.
La clase media en México está creciendo. Esto ha aumentado la demanda de vehículos, ya que las personas de la clase media tienen más dinero para gastar. Las preocupaciones ambientales están aumentando en Estados Unidos. Esto podría afectar la demanda de vehículos, ya que los consumidores podrían optar por comprar vehículos más eficientes en combustible o vehículos eléctricos.