regresion de series de tiempo
options(repos = c(CRAN = "https://cloud.r-project.org"))
install.packages("ggplot2")## Installing package into 'C:/Users/isra9/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'ggplot2' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\isra9\AppData\Local\Temp\RtmpAjH4EA\downloaded_packages
library(ggplot2)PESCA DE BACALAO
pescadebacalao <- data.frame(
MES = c('enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'),
AÑO1 = c(362, 381, 317, 297, 399, 402, 375, 349, 386, 328, 389, 343),
AÑO2 = c(276, 334, 394, 334, 384, 314, 344, 337, 345, 362, 314, 365)
)
time <- seq_along(pescadebacalao$AÑO1)
ggplot(pescadebacalao, aes(x=time)) +
geom_line(aes(y=AÑO1, color="AÑO1")) +
geom_line(aes(y=AÑO2, color="AÑO2")) +
labs(x = "Tiempo", y = "Valor", title = "Gráfica de series de tiempo para AÑO1 y AÑO2") +
scale_color_manual(name = "Variables", values = c("AÑO1" = "blue", "AÑO2" = "red"))Ajustar modelos de regresión lineal para cada año
model_year1 <- lm(AÑO1 ~ as.factor(MES), data = pescadebacalao)
model_year1##
## Call:
## lm(formula = AÑO1 ~ as.factor(MES), data = pescadebacalao)
##
## Coefficients:
## (Intercept) as.factor(MES)agosto as.factor(MES)diciembre
## 297 52 46
## as.factor(MES)enero as.factor(MES)febrero as.factor(MES)julio
## 65 84 78
## as.factor(MES)junio as.factor(MES)marzo as.factor(MES)mayo
## 105 20 102
## as.factor(MES)noviembre as.factor(MES)octubre as.factor(MES)septiembre
## 92 31 89
model_year2 <- lm(AÑO2 ~ as.factor(MES), data = pescadebacalao)
model_year2##
## Call:
## lm(formula = AÑO2 ~ as.factor(MES), data = pescadebacalao)
##
## Coefficients:
## (Intercept) as.factor(MES)agosto as.factor(MES)diciembre
## 3.340e+02 3.000e+00 3.100e+01
## as.factor(MES)enero as.factor(MES)febrero as.factor(MES)julio
## -5.800e+01 1.766e-14 1.000e+01
## as.factor(MES)junio as.factor(MES)marzo as.factor(MES)mayo
## -2.000e+01 6.000e+01 5.000e+01
## as.factor(MES)noviembre as.factor(MES)octubre as.factor(MES)septiembre
## -2.000e+01 2.800e+01 1.100e+01
Predecir valores
AÑO1_pred <- predict(model_year1)
AÑO1_pred## 1 2 3 4 5 6 7 8 9 10 11 12
## 362 381 317 297 399 402 375 349 386 328 389 343
AÑO2_pred <- predict(model_year2)
AÑO2_pred## 1 2 3 4 5 6 7 8 9 10 11 12
## 276 334 394 334 384 314 344 337 345 362 314 365
# Crear un DataFrame para almacenar los resultados
resultados <- data.frame(MES = pescadebacalao$MES, AÑO1 = pescadebacalao$AÑO1, AÑO2 = pescadebacalao$AÑO2, AÑO1_pred, AÑO2_pred)
# Reorganizar datos para usar con ggplot2
resultados_long <- reshape2::melt(resultados, id.vars = "MES")
# Convertir MES a factor explícitamente
resultados_long$MES <- factor(resultados_long$MES, levels = unique(resultados_long$MES))
# Crear gráfico
ggplot(resultados_long, aes(x = MES, y = value, color = variable, group = variable)) +
geom_line() +
labs(title = "Tendencia de AÑO1 y AÑO2 - Observado vs Predicción",
x = "Mes",
y = "Datos") +
theme_minimal()VENTA DE CALCULADORAS
vdc <- data.frame(
mesvdc = c('enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'),
AÑO1vdc = c(197, 211, 203, 247, 239, 269, 308, 262, 258, 256, 261, 288),
AÑO2vdc = c(296, 276, 305, 308, 356, 393, 363, 386, 443, 308, 358, 384)
)
tiempo <- seq_along(vdc$AÑO1vdc)
ggplot(vdc, aes(x=tiempo)) +
geom_line(aes(y=AÑO1vdc, color="AÑO1vdc")) +
geom_line(aes(y=AÑO2vdc, color="AÑO2vdc")) +
labs(x = "Tiempo", y = "Valor", title = "Gráfica de series de tiempo para AÑO1 y AÑO2") +
scale_color_manual(name = "Variables", values = c("AÑO1vdc" = "blue", "AÑO2vdc" = "red"))Ajustar modelos de regresión lineal para cada año
model_year1.1 <- lm(AÑO1vdc ~ as.factor(mesvdc), data = vdc)
model_year1.1##
## Call:
## lm(formula = AÑO1vdc ~ as.factor(mesvdc), data = vdc)
##
## Coefficients:
## (Intercept) as.factor(mesvdc)agosto
## 247 15
## as.factor(mesvdc)diciembre as.factor(mesvdc)enero
## 41 -50
## as.factor(mesvdc)febrero as.factor(mesvdc)julio
## -36 61
## as.factor(mesvdc)junio as.factor(mesvdc)marzo
## 22 -44
## as.factor(mesvdc)mayo as.factor(mesvdc)noviembre
## -8 14
## as.factor(mesvdc)octubre as.factor(mesvdc)septiembre
## 9 11
model_year2.1 <- lm(AÑO2vdc ~ as.factor(mesvdc), data = vdc)
model_year2.1##
## Call:
## lm(formula = AÑO2vdc ~ as.factor(mesvdc), data = vdc)
##
## Coefficients:
## (Intercept) as.factor(mesvdc)agosto
## 308 78
## as.factor(mesvdc)diciembre as.factor(mesvdc)enero
## 76 -12
## as.factor(mesvdc)febrero as.factor(mesvdc)julio
## -32 55
## as.factor(mesvdc)junio as.factor(mesvdc)marzo
## 85 -3
## as.factor(mesvdc)mayo as.factor(mesvdc)noviembre
## 48 50
## as.factor(mesvdc)octubre as.factor(mesvdc)septiembre
## 0 135
##Predecir valores
AÑO1.1_pred <- predict(model_year1.1)
AÑO1.1_pred## 1 2 3 4 5 6 7 8 9 10 11 12
## 197 211 203 247 239 269 308 262 258 256 261 288
AÑO2.1_pred <- predict(model_year2.1)
AÑO2.1_pred## 1 2 3 4 5 6 7 8 9 10 11 12
## 296 276 305 308 356 393 363 386 443 308 358 384
# Crear un DataFrame para almacenar los resultados
resultados1 <- data.frame(mesvdc = vdc$mesvdc, AÑO1vdc = vdc$AÑO1vdc, AÑO2vdc = vdc$AÑO2vdc, AÑO1.1_pred, AÑO2.1_pred)
# Reorganizar datos para usar con ggplot2
resultados_long1<- reshape2::melt(resultados1, id.vars = "mesvdc")
# Convertir MES a factor explícitamente
resultados_long1$mesvdc <- factor(resultados_long1$mesvdc, levels = unique(resultados_long1$mesvdc))
# Crear gráfico
ggplot(resultados_long1, aes(x = mesvdc, y = value, color = variable, group = variable)) +
geom_line() +
labs(title = "ventas de calculadoras del AÑO1 y AÑO2 - Observado vs Predicción",
x = "mesvdc",
y = "Datos") +
theme_minimal()sdp<- data.frame(
messdp = c('enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'),
AÑO1sdp = c(297, 249, 340, 406, 464, 481, 549, 553, 556, 642, 670, 712),
AÑO2sdp = c(808, 809, 867, 855, 965, 921, 956, 990, 1019, 1021, 1033, 1127)
)
t <- seq_along(sdp$AÑO1sdp)
ggplot(sdp, aes(x=t)) +
geom_line(aes(y=AÑO1sdp, color="AÑO1sdp")) +
geom_line(aes(y=AÑO2sdp, color="AÑO2sdp")) +
labs(x = "Tiempo", y = "Valor", title = "Gráfica para AÑO1 y AÑO2") +
scale_color_manual(name = "Variables", values = c("AÑO1sdp" = "blue", "AÑO2sdp" = "red"))Ajustar modelos de regresión lineal para cada año
model_year1.2 <- lm(AÑO1sdp ~ as.factor(messdp), data = sdp)
model_year1.2##
## Call:
## lm(formula = AÑO1sdp ~ as.factor(messdp), data = sdp)
##
## Coefficients:
## (Intercept) as.factor(messdp)agosto
## 406 147
## as.factor(messdp)diciembre as.factor(messdp)enero
## 306 -109
## as.factor(messdp)febrero as.factor(messdp)julio
## -157 143
## as.factor(messdp)junio as.factor(messdp)marzo
## 75 -66
## as.factor(messdp)mayo as.factor(messdp)noviembre
## 58 264
## as.factor(messdp)octubre as.factor(messdp)septiembre
## 236 150
model_year2.2 <- lm(AÑO2sdp ~ as.factor(messdp), data = sdp)
model_year2.2##
## Call:
## lm(formula = AÑO2sdp ~ as.factor(messdp), data = sdp)
##
## Coefficients:
## (Intercept) as.factor(messdp)agosto
## 855 135
## as.factor(messdp)diciembre as.factor(messdp)enero
## 272 -47
## as.factor(messdp)febrero as.factor(messdp)julio
## -46 101
## as.factor(messdp)junio as.factor(messdp)marzo
## 66 12
## as.factor(messdp)mayo as.factor(messdp)noviembre
## 110 178
## as.factor(messdp)octubre as.factor(messdp)septiembre
## 166 164
##Predecir valores
AÑO1.2_pred <- predict(model_year1.2)
AÑO1.2_pred## 1 2 3 4 5 6 7 8 9 10 11 12
## 297 249 340 406 464 481 549 553 556 642 670 712
AÑO2.2_pred <- predict(model_year2.2)
AÑO2.2_pred## 1 2 3 4 5 6 7 8 9 10 11 12
## 808 809 867 855 965 921 956 990 1019 1021 1033 1127
# Crear un DataFrame para almacenar los resultados
resultados2 <- data.frame(messdp = sdp$messdp, AÑO1sdp = sdp$AÑO1sdp, AÑO2sdp = sdp$AÑO2sdp, AÑO1.2_pred, AÑO2.2_pred)
# Reorganizar datos para usar con ggplot2
resultados_long2<- reshape2::melt(resultados2, id.vars = "messdp")
# Convertir MES a factor explícitamente
resultados_long2$messdp <- factor(resultados_long2$messdp, levels = unique(resultados_long2$messdp))
# Crear gráfico
ggplot(resultados_long2, aes(x = messdp, y = value, color = variable, group = variable)) +
geom_line() +
labs(title = "solicitudes de prestamo del AÑO1 y AÑO2 - Observado vs Predicción",
x = "messdp",
y = "Datos") +
theme_minimal()