Introducción

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.

Antecedentes de la empresa

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

Contexto de la industria

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.

Exploración de Exportación de Vehículos

Librerías

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.

mx_vehicle_exports <- read_excel("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_mx/exportacion_vehiculos.xlsx")

mx_vehicle_exports_summary <- mx_vehicle_exports %>%
  group_by(Año, Segmento) %>%
  summarise(Cantidad_Total = sum(Cantidad, na.rm = TRUE))

# Definir la paleta de colores personalizada
colores <- c("#2D3250", "#435585", "#7077A1", "#F6B17A", "#9EC8B9", "#BE3144")

# Asegurarse de que hay suficientes colores para los segmentos
# Repetir la paleta si hay más segmentos que colores
n_segmentos <- length(unique(mx_vehicle_exports_summary$Segmento))
if (n_segmentos > length(colores)) {
  colores <- rep(colores, length.out = n_segmentos)
}

# 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
top_paises_destino <- mx_vehicle_exports %>%
  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_top5 <- mx_vehicle_exports %>%
  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.

Exploración a Mercado de Autopartes

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

mx_autoparts_market <- read_csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_mx/mx_autoparts_market.csv")

# Colores

colors <- c("Producción local total" = "#00BFC4",
            "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

mx_autoparts_market <- na.omit(mx_autoparts_market)

turquoise_palette <- c("#8ae0db", "#5dc1b9", "#42a8a1", "#239089")

# 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.

Industria del cartón

carton_exp = 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_imp = 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")
electric_2016=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2016.csv")
electric_2017=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2017.csv")
electric_2018=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2018.csv")
electric_2019=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2019.csv")
electric_2020=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibiridos_electricos_2020.csv")
electric_2021=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2021.csv")
electric_2022=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2022.csv")
electric_2023=read.csv("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2023.csv")

Exportaciones

# Filtrar los 15 países con mayores valores de comercio de exportación
top_countries <- carton_exp %>%
  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
top_countries_data <- carton_exp %>%
  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.

Importaciones*

# Filtrar los 15 países con mayores valores de comercio de importación

top_countries_2 <- carton_imp %>%
  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
top_countries_data_2 <- carton_imp %>%
  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.

Industria de vehículos eléctricos

# Crear una lista de dataframes para iterar 
electric_dfs <- list(electric_2016 = electric_2016, electric_2017 = electric_2017,
                     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
total_sales_by_year <- numeric(length(electric_dfs))
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)) {
  total_sales_by_year[year] <- sum(electric_dfs[[year]]$VEH_ELECTR, na.rm = TRUE)
}

# Convertir a data.frame
sales_df <- data.frame(Year = names(total_sales_by_year), 
                       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
datos_filtrados <- electric_2023 %>%
  filter(ID_ENTIDAD != 99)



# Agrupar datos por ID_ENTIDAD y sumar las ventas de vehículos eléctricos
ventas_por_estado <- datos_filtrados %>%
  group_by(ID_ENTIDAD) %>%
  summarise(Total_VEH_ELECTR = sum(VEH_ELECTR, na.rm = TRUE))

estados_mexico <- c("Aguascalientes", "Baja California", "Baja California Sur", "Campeche", "Chiapas",
                    "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")

datos_filtrados$ID_ENTIDAD <- as.numeric(datos_filtrados$ID_ENTIDAD)

# 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))

FODA Cruzado

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.

Fortalezas:

  1. Expertos en desarrollar soluciones de empaque sostenibles e innovadoras con un enfoque en la industria automotriz, optimizando el espacio de almacenamiento, así como los costos logísticos lo que indica un profundo entendimiento de las necesidades del sector automotriz.
  2. Asociaciones con marcas de alto prestigio, la empresa de Form ha establecido relaciones comerciales como lo es Tesla, lo que nos indica la alta calidad y confiabilidad de sus soluciones de empaque.
  3. Compromiso con la sostenibilidad, la empresa integra prácticas sostenibles en su modelo de negocio, desde reducciones de uso de materiales hasta la optimización de logística, que se alinean con la demanda actual de la industria hacia prácticas más ecológicas.

Oportunidades:

  1. Crecimiento del mercado en la industria con empaques sostenibles. La conciencia ambiental y regulaciones de la sostenibilidad, presentan una gran oportunidad para la empresa en liderar el desarrollo y oferta de soluciones en los empaques sostenibles.
  2. Demanda creciente de empaques personalizados para los clientes debido a cambios en los consumidores. La tendencia hacia servicios y productos personalizados para sus clientes, requiere una mayor demanda de empaques que se ajusten a las necesidades individuales de sus clientes.
  3. Oportunidad de expansión en industrias fuera de la industria automotriz que requieren de soluciones innovadoras de empaque. Otras industrias también requieren de soluciones de empaque innovadoras lo que presenta una oportunidad para la empresa de expandir su mercado a otros sectores.

Debilidades:

  1. Actualmente se encuentran en potencial dependencia de la industria automotriz. Esto podría representar un alto riesgo si el sector llegará a enfrentar disminuciones en la demanda o desafíos económicos.
  2. Necesidad en estar actualizados continuamente frente a tecnologías en desarrollo de empaque. Mantenerse en constante innovación requiere inversión en investigaciones y desarrollo, lo que puede ser un reto en recursos y capital.
  3. Limitaciones en la diversificación de productos. La especialización que tienen sobre los empaques de autopartes podría limitar la capacidad de la empresa para capitalizar y explorar oportunidades en otros mercados y productos.

Amenazas:

  1. Constante cambio en las regulaciones ambientales que pueden afectar los materiales para realizar los empaques. Puede haber un gran impacto al usar ciertos procesos y materiales que requieren de adaptaciones costosas.
  2. Gran competencia creciente en el sector de empaques sostenibles. El crecimiento de la industria y su demanda de soluciones de empaques sostenibles atrae a nuevos competidores, esto incrementa la presión para la empresa por diferenciarse y continuar innovando.
  3. Volatilidad en los costos de materiales debido a fluctuaciones del mercado. Esto puede afectar los márgenes de beneficio y la competitividad de precios de las soluciones de FORM.

Estrategias:

Estrategias FODA Cruzado para FORM

Fortalezas-Oportunidades (FO)
  • Sostenibilidad e Innovación: Utilizar la experiencia y el compromiso de la empresa con la sostenibilidad para poder liderar en la industria y en el mercado con empaques renovables y ecológicos para seguir creciendo ante la demanda.
  • Expansión en Servicios Personalizados: Desarrollar soluciones personalizadas a los clientes y mejorar su relación con marcas de prestigio.
Debilidades-Oportunidades (DO)
  • Mitigar dependencias en el mercado: Ampliar el mercado hacia nuevas industrias, para reducir la dependencia del sector automotriz, creciendo a nuevos mercados con demanda creciente a soluciones innovadoras.
  • Colaboraciones con Innovación: Realizar colaboraciones estratégicas para dividir el costo de riesgo de innovación y desarrollo, dándole a la empresa un gran alcance para ser el líder en la industria.
Fortalezas-Amenazas (FA)
  • Liderazgo ante Cambios regulatorios: Emplear compromiso con la innovación y sostenibilidad para que la empresa se adapte ante los cambios en regulaciones ecológicas, posicionando a FORM como un referente en cumplimiento y adaptabilidad.
  • Valor agregado frente a la Competencia: Fortalecer a la empresa a través de su confiabilidad con sus clientes, aprovechando su calidad para destacarse en el mercado competitivo, así mismo aprovechando sus colaboraciones con marcas de alto prestigio.
Debilidades-Amenazas (DA)
  • Cobertura de riesgo en Costos: Realizar estrategias para tomar medidas de prevención para protegerse contra la volatilidad de los precios de los materiales, como lo es la diversificación de los proveedores y los contratos de la empresa a largo plazo.
  • Programas de Lealtad con Clientes: Implementar programas de colaboración y lealtad con los clientes actuales, para poder mejorar la relación a largo plazo y mitigar el impacto de la competencia y las fluctuaciones del mercado.

PESTLE

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.

Políticos.

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.

Económicos.

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.

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.

Tecnológicos.

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.

Legales.

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.

Ecológicos.

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

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.

  • Principales Puntos:
  • La estabilidad familiar y las condiciones laborales son factores significativos que influyen en la decisión de los empleados de permanecer en la empresa.
  • Los jóvenes, especialmente aquellos sin compromisos familiares, tienden a buscar oportunidades de desarrollo profesional fuera de FORM.
  • Es crucial mejorar nuestras estrategias de reclutamiento y retención para abordar las causas subyacentes de la rotación de 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.

  • Principales Puntos:
  • La naturaleza fluctuante de la demanda automotriz complica la planificación y gestión de inventarios.
  • Es esencial desarrollar herramientas y procesos más sofisticados para mejorar la precisión en nuestras predicciones de demanda.
  • La adaptabilidad y la capacidad de responder rápidamente a los cambios en el mercado son fundamentales para mantener nuestra competitividad.

Preguntas de análisis

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?

EDA

Importando bases de datos

datos <- read_excel("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_FORM/databases/form/Encuesta_Datos_FORM_Fall2023.xlsx")


df = read_xlsx("/Users/gabrielmedina/Desktop/GIT 23/Case_Study_FORM/databases/form/BDD_FORM_BAJAS_2023.xlsx")


datos_num <- datos
datos_num[sapply(datos_num, is.factor)] <- lapply(datos_num[sapply(datos_num, is.factor)], as.numeric)

a. Estadísticos Descriptivos

Analisis de Encuesta de Satisfacción

Estructura de la base de datos
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 ...
Medidas Descriptivas
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

b. Medidas de Dispersión

Medidas de Dispersión

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

c. 4-6 Gráficos (barras, líneas, pastel, dispersión, burbujas, correlación, mapas)

Relación entre el Nivel de Estrés y Puesto de Trabajo
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.

Relación entre la Antigüedad y el Salario
antiguedad_por_salario <- datos %>%
  group_by(salario_bueno) %>%
  summarise(antiguedad_promedio = mean(antiguedad, na.rm = TRUE)) %>%
  arrange(desc(antiguedad_promedio))

# Definir una paleta de colores personalizada
colores_personalizados <- c('Totalmente de acuerdo' = '#AED6F1', # Claro
                            '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.

Percepción de Molestia por la Temperatura por Puesto
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.

Disconformidad por Puesto
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()

Percepción del Estrés por Rangos de Antigüedad
datos$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 %>%
  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.

Percepción de Prestaciones por Puesto
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.

d. Tablas (frequencia, contingencia)

Analisis de Bajas de FORM

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 <- df %>% drop_na()
Bajas por Departamento
bajas_por_departamento <- df %>%
  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")

bajas_por_departamento <- df %>%
  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")

Bajas por Departamento y Género
bajas_por_departamento_genero <- df %>%
  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")

bajas_por_departamento_genero <- df %>%
  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")

Bajas por Motivo y Género
bajas_por_motivo_genero <- df %>%
  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.

df$`Fecha de Baja` <- as.Date(df$`Fecha de Baja`, origin = "1899-12-30")

df$AñoMes <- format(df$`Fecha de Baja`, "%Y-%m")
Tendencia de Bajas a lo Largo del Tiempo
bajas_por_fecha <- df %>%
  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))

Bajas Totales por Mes
df$`Fecha de Baja` <- as.Date(df$`Fecha de Baja`, origin = "1899-12-30")

bajas_por_mes <- df %>%
  mutate(Mes = format(`Fecha de Baja`, "%B")) %>%
  group_by(Mes) %>%
  summarise(Total_Bajas = n())

meses <- format(seq(as.Date("2000-01-01"), as.Date("2000-12-01"), by = "month"), "%B")
bajas_por_mes$Mes <- factor(bajas_por_mes$Mes, levels = meses)

# 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.

Bajas por Estado Civil
bajas_por_estado_civil <- df %>%
  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.

Análisis de Sentimiento

Las 2 tendencias de las emociones son: Positiva o Negativa

# Función ajustada para preprocesar texto
preparar_texto <- function(datos, columna) {
  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
analizar_y_wordcloud <- function(datos, columna) {
  texto_preparado <- preparar_texto(datos, columna)
  
  # Obtener sentimiento
  emociones_df <- texto_preparado %>%
    inner_join(get_sentiments("nrc"), by = "word") %>%
    count(sentiment, sort = TRUE) %>%
    print()
  
  # Filtrar palabras para el wordcloud (aparición mínima: 3 veces)
  palabras_frecuentes <- texto_preparado %>%
    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.

Nearshoring y ventas

Nearshoring

  • Mediante el uso de visualización de datos describir el posible impacto del fenómeno nearshoring sobre el desempeño de la empresa FORM.

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.

Bases de Datos de Nearshoring

df=read.csv("/Users/gabrielmedina/Desktop/GIT 23/BASES NUEVAS/ied_carton_papel_2023.csv")

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
nas_por_columna <- sapply(df, function(x) sum(is.na(x)))

# Filtramos las columnas que tienen 7 o más NA para eliminarlas
columnas_para_eliminar <- names(nas_por_columna[nas_por_columna >= 7])
df <- df %>% select(-one_of(columnas_para_eliminar))

# Para las columnas restantes, imputamos los NA con la mediana
df <- df %>% mutate(across(.cols = where(~ sum(is.na(.)) < 7), 
                           .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
dataf=df

data2 <- df %>% select(Year, Quarter, IED_Fab_Carton_Papel)
data2$Fecha <- as.Date(paste(data2$Year, data2$Quarter), format = "%Y %B")

time_serie <- ts(data2$IED_Fab_Carton_Papel, start = c(1999, 1), frequency = 4)

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.

descompose<-decompose(time_serie)
plot(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.

Modelo Arma Calculado

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.

Modelo Arima con Log y Diff Calculado

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.

Pruebas de Diagnostico en la Data

Modelo Arma

arma_residuals<-arma$residuals
Box.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({
arma$residuals <- na.omit(arma$residuals)
adf.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$residuals
Box.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.

residuals_ts <- arima$residuals

# Interpolar los valores NA
residuals_clean <- na.approx(residuals_ts)

suppressWarnings({
  adf_test_result <- adf.test(residuals_clean)
})

# 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.

Forecast de Nearshoring

suppressWarnings({
arima_restauracion<-exp(arima$fitted) # The variables are transformed back to the originals (if log is applied, the exponential must be applied (it is the opposite))
vector2 =c(arima_restauracion) #reverting "log" operation using "exp"
original2 <-c(time_serie) #Converting into a vector.
restauracion2 = vector2+original2 #reverting "diff" operation summing the original values to the differences.
ts2 <- ts(restauracion2, start = 1, end = length(restauracion2), frequency = 4) #Make time series
})
# Forecast (ARIMA)
arima_forecast<-forecast(ts2,h=5)
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.

Ventas

ventas_nv <- read_csv("/Users/gabrielmedina/Desktop/GIT 23/BASES NUEVAS/VENTAS_FORM_B.csv")
## 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
na_count <- colSums(is.na(ventas_nv))
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"
ventas_nv <- 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_t <- 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)
ts_plot(ventas_t)
Carton <- ts(ventas_nv$Total_carton, start = c(year(min(ventas_nv$Fecha)), month(min(ventas_nv$Fecha))), frequency = 12)

ts_plot(Carton)
Retornable <- ts(ventas_nv$Total_retornable, start = c(year(min(ventas_nv$Fecha)), month(min(ventas_nv$Fecha))), frequency = 12)
ts_plot(Retornable)
servicio <- ts(ventas_nv$Servicios, start = c(year(min(ventas_nv$Fecha)), month(min(ventas_nv$Fecha))), frequency = 12)
ts_plot(servicio)
modelo <- lm(Ventas_totales ~ Total_carton + Total_retornable + Servicios, data = ventas_nv)

# Hacer predicciones
nuevos_datos <- data.frame(Total_carton = c(125000, 170000, 220000), Total_retornable = c(800, 7000, 15000), Servicios = c(1000, 3000, 5000))
predicciones <- predict(modelo, newdata = nuevos_datos)

# Mostrar las predicciones
print(predicciones)
##        1        2        3 
## 126800.2 180000.1 240000.0

Principales Hallazgos

EDA

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.

Nearshoring

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.

Referencias

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/