1 1. Introducción

Este análisis busca estimar los costos de dos equipos esenciales en un proyecto de construcción de 36 meses, cuyos precios dependen directamente de las materias primas X, Y y Z.

El objetivo es calcular los precios de los equipos con base en las proporciones dadas y analizar su evolución temporal, apoyando la planificación financiera del proyecto.

2 2. Supuestos

  • Los datos de las materias primas provienen de tres archivos CSV: X.csv, Y.csv, Z.csv.
  • Columnas: Date (fecha) y Price (valor unitario).
  • Fórmulas:
    • Equipo 1: 20% X + 80% Y
    • Equipo 2: (X + Y + Z) / 3
  • Los precios están expresados en la misma unidad monetaria.
  • No se incluyen márgenes ni costos indirectos.

3 3. Código del análisis

root <- "/Users/cesara.saavedravanegas/Desktop/Prueba\ Técnica\ Cientifico\ de\ Datos/Prueba\ tecnica\ 1/Datos/"

x <- read.csv(paste0(root, "X.csv"), sep = ",", stringsAsFactors = FALSE)
y <- read_delim(paste0(root, "Y.csv"), delim = ";", locale = locale(decimal_mark = ","))
z <- read.csv(paste0(root, "Z.csv"), sep = ",", stringsAsFactors = FALSE)

x$Date <- as.Date(trimws(x$Date))
y$Date <- as.Date(trimws(y$Date), format = "%d/%m/%Y")
z$Date <- as.Date(trimws(z$Date))

x <- x %>% rename(price_x = Price)
y <- y %>% rename(price_y = Price)
z <- z %>% rename(price_z = Price)

datos <- x %>%
  left_join(y, by = "Date") %>%
  left_join(z, by = "Date")
datos <- datos %>%
  mutate(
    precio_equipo1 = 0.2 * price_x + 0.8 * price_y,
    precio_equipo2 = (price_x + price_y + price_z) / 3
  )

write.xlsx(datos, "Resultados_costos_equipos.xlsx")

head(datos)
##         Date price_x price_y price_z precio_equipo1 precio_equipo2
## 1 2024-04-04   89.18      NA      NA             NA             NA
## 2 2024-04-03   89.35      NA      NA             NA             NA
## 3 2024-04-02   88.92      NA      NA             NA             NA
## 4 2024-04-01   87.42      NA      NA             NA             NA
## 5 2024-03-28   87.48      NA      NA             NA             NA
## 6 2024-03-27   86.09      NA      NA             NA             NA

4 4. Visualización

4.0.1 4.1 Evolución de los precios de los equipos

ggplot(datos, aes(x = Date)) +
  geom_line(aes(y = precio_equipo1, color = "Equipo 1"), size = 1) +
  geom_line(aes(y = precio_equipo2, color = "Equipo 2"), size = 1) +
  labs(
    title = "Evolución del costo de los equipos en el tiempo",
    x = "Fecha",
    y = "Precio estimado (unidad monetaria)",
    color = "Equipo"
  ) +
  theme_minimal() +
  theme(plot.title = element_text(face = "bold", size = 14, hjust = 0.5))

4.0.2 4.2 Evolución del costo de las materias primas

ggplot(datos, aes(x = Date)) +
  geom_line(aes(y = price_x, color = "Materia prima X")) +
  geom_line(aes(y = price_y, color = "Materia prima Y")) +
  geom_line(aes(y = price_z, color = "Materia prima Z")) +
  labs(
    title = "Evolución del costo de las materias primas",
    x = "Fecha",
    y = "Costo unitario",
    color = "Materia prima"
  ) +
  theme_minimal()

5 5. Resultados e Interpretación

  • El Equipo 1 presenta una fuerte dependencia de la materia prima Y, lo que lo hace más volátil ante sus variaciones.
  • El Equipo 2 muestra mayor estabilidad, al promediar los tres insumos.
  • Las variaciones de Y son las principales responsables de los picos de costo en el proyecto.
  • Los resultados consolidados se exportaron al archivo Resultados_costos_equipos.xlsx.

6 6. Futuros ajustes o mejoras

  • Incorporar costos indirectos (mano de obra, transporte, mantenimiento).
  • Modelar proyecciones con técnicas de series de tiempo (ARIMA, Prophet).
  • Automatizar el flujo en Azure, AWS o GCP.
  • Crear un dashboard en Power BI o Shiny.

7 7. Análisis de Series de Tiempo

7.0.1 7.1 Tendencia suavizada

ggplot(datos, aes(x = Date, y = precio_equipo1)) +
  geom_line(color = "steelblue") +
  geom_smooth(method = "loess", se = FALSE, color = "red") +
  labs(title = "Tendencia suavizada del Precio del Equipo 1",
       y = "Precio estimado", x = "Fecha") +
  theme_minimal()

7.0.2 7.2 Descomposición de la serie temporal

ts_eq1 <- ts(datos$precio_equipo1, frequency = 12)
descomp_eq1 <- decompose(ts_eq1, type = "multiplicative")
plot(descomp_eq1)

7.0.3 7.3 Pronóstico ARIMA

modelo_eq1 <- auto.arima(ts_eq1)
forecast_eq1 <- forecast(modelo_eq1, h = 12)
autoplot(forecast_eq1) +
  labs(title = "Pronóstico del precio del Equipo 1 (ARIMA)",
       y = "Precio estimado", x = "Período")

7.0.4 7.4 Correlación entre materias primas y equipos

cor_matrix <- datos %>%
  select(price_x, price_y, price_z, precio_equipo1, precio_equipo2) %>%
  cor(use = "complete.obs")
cor_matrix
##                  price_x   price_y   price_z precio_equipo1 precio_equipo2
## price_x        1.0000000 0.4916500 0.4757381      0.5249797      0.5324323
## price_y        0.4916500 1.0000000 0.8441957      0.9992510      0.9160060
## price_z        0.4757381 0.8441957 1.0000000      0.8462604      0.9871017
## precio_equipo1 0.5249797 0.9992510 0.8462604      1.0000000      0.9189674
## precio_equipo2 0.5324323 0.9160060 0.9871017      0.9189674      1.0000000

7.0.5 7.5 Visualización de correlaciones

GGally::ggpairs(datos[, c("price_x", "price_y", "price_z", "precio_equipo1", "precio_equipo2")])

7.0.6 7.6 Modelo de regresión temporal

modelo_lm <- lm(precio_equipo1 ~ price_y + price_x + price_z, data = datos)
summary(modelo_lm)
## 
## Call:
## lm(formula = precio_equipo1 ~ price_y + price_x + price_z, data = datos)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -2.250e-13 -6.400e-14 -4.000e-14 -1.300e-14  8.956e-11 
## 
## Coefficients:
##              Estimate Std. Error   t value Pr(>|t|)    
## (Intercept) 4.481e-12  1.618e-13 2.769e+01   <2e-16 ***
## price_y     8.000e-01  3.883e-16 2.060e+15   <2e-16 ***
## price_x     2.000e-01  1.301e-15 1.537e+14   <2e-16 ***
## price_z     1.315e-16  1.427e-16 9.210e-01    0.357    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.681e-12 on 3526 degrees of freedom
##   (5614 observations deleted due to missingness)
## Multiple R-squared:      1,  Adjusted R-squared:      1 
## F-statistic: 5.348e+30 on 3 and 3526 DF,  p-value: < 2.2e-16

8 8. Conclusiones

El análisis permitió: - Integrar datos heterogéneos de tres fuentes.
- Estimar los costos de equipos mediante fórmulas reproducibles.
- Analizar la evolución temporal y generar pronósticos confiables.
- Visualizar la correlación entre insumos y equipos, identificando dependencias clave.

La metodología en R es reproducible, escalable y puede extenderse a escenarios predictivos, fortaleciendo la planificación financiera de la empresa.

9 9. Interpretación de Resultados Estadísticos

9.1 9.1 Correlación entre variables

El análisis de correlación muestra lo siguiente:

Relación Coeficiente de correlación Interpretación
price_x – price_y 0.49 Correlación moderada, indicando que no siempre se mueven en la misma dirección.
price_y – price_z 0.84 Correlación alta: ambas materias primas tienen comportamiento similar.
price_y – precio_equipo1 0.999 Correlación casi perfecta.
price_x – precio_equipo1 0.52 Correlación moderada.
precio_equipo1 – precio_equipo2 0.92 Correlación muy fuerte, lo que indica que ambos equipos siguen patrones de precios parecidos.

Conclusión:
- La materia prima Y es el principal impulsor de los precios del Equipo 1, tal como se definió en la fórmula (80% dependencia).
- Las materias primas Y y Z tienden a comportarse de manera similar en el tiempo, lo que explica la fuerte correlación entre equipo1 y equipo2.
- En contraste, la materia prima X tiene una contribución menor, coherente con su ponderación del 20%.


9.2 9.2 Regresión lineal múltiple

Modelo:
`precio_equipo1 = β_0 + β_1·price_y + β_2·price_x + β_3·price_z`

Resultados principales:
- price_y: coeficiente ≈ 0.80 (p < 0.001)
- price_x: coeficiente ≈ 0.20 (p < 0.001)
- price_z: coeficiente ≈ 0.00 (no significativo, p = 0.357)
- R² ajustado = 1.00 (el modelo explica prácticamente toda la variabilidad observada).

Interpretación:
- Los coeficientes coinciden exactamente con la fórmula usada para generar el precio del equipo (0.2*X + 0.8*Y).
- El valor de price_z no es significativo porque no participa directamente en el cálculo del equipo 1.
- El ajuste perfecto (R²=1) confirma que el modelo es determinístico, sin error de modelado.


9.3 9.3 Análisis gráfico de correlación

El diagrama de pares (GGally) confirma visualmente:
- Relaciones lineales fuertes entre price_y, price_z y los precios de los equipos.
- precio_equipo1 y precio_equipo2 presentan distribuciones casi idénticas.
- Las nubes de puntos muestran pendiente positiva, validando la relación directa entre insumos y costos.

Conclusión visual:
- Los datos están correctamente modelados.
- Las dependencias entre materias primas son fuertes, lo que implica que cambios en un insumo afectan directamente los equipos.


9.4 9.4 Pronóstico ARIMA

El modelo ARIMA aplicado al precio_equipo1 muestra una tendencia ligeramente creciente y oscilante.

Interpretación:
- No se observa crecimiento explosivo, pero sí fluctuaciones periódicas.
- La serie presenta comportamiento estacionario con picos ocasionales, reflejo de choques externos.
- El pronóstico sugiere estabilidad moderada con tendencia al alza, lo que anticipa posibles incrementos futuros en los costos de producción.


9.5 9.5 Síntesis de hallazgos

Elemento analizado Resultado clave Interpretación práctica
Tendencia (LOESS) Curva cíclica con repunte reciente Se esperan aumentos moderados en precios
Descomposición Fuerte componente aleatoria Alta volatilidad, influenciada por choques externos
Correlación Y correlaciona 0.999 con Equipo 1 Y domina en el costo del equipo
Regresión Coeficientes: 0.8Y + 0.2X Validación del modelo teórico
ARIMA Tendencia estable, leve alza Útil para proyección de costos futuros

9.6 9.6 Conclusión general

El análisis estadístico y temporal demuestra que el precio del Equipo 1 depende casi totalmente de la materia prima Y, con una contribución menor de X.
La evolución temporal muestra fluctuaciones cíclicas y una tendencia alcista reciente, lo que implica que los costos futuros podrían aumentar si los precios de Y continúan en alza.
El modelo ARIMA y las correlaciones ofrecen una base sólida para una estrategia de predicción y control de precios en la gestión de proyectos.

10 10. Elaborado por

Autor: César Andrés Saavedra Vanegas Rol: Científico de Datos
Correo: