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.
X.csv, Y.csv, Z.csv.Date (fecha) y Price (valor
unitario).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
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))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()Resultados_costos_equipos.xlsx.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()ts_eq1 <- ts(datos$precio_equipo1, frequency = 12)
descomp_eq1 <- decompose(ts_eq1, type = "multiplicative")
plot(descomp_eq1)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")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
##
## 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
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.
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%.
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.
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.
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.
| 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 |
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.
Autor: César Andrés Saavedra Vanegas
Rol: Científico de Datos
Correo: cesar.saavedra@correounivalle.edu.co