SERIES DE TIEMPO
Introducción
Para este integrador 2, trabajaremos con dos bases de datos: CONELDO y Air Passengers. El objetivo de este proyecto es el utilizar las herramientas vistas a lo largo del curso para el análisis de series de tiempo.
Nos interesará conocer los componentes principales tales como:
- Tendencia
- Periodicidad
- Aleatoriedad
Y al mismo tiempo integraremos modelos de suavización para los datos.
CONELDO
PASAJEROS AÉREOS
La base Air Passengers hace referencia al número de personas (en miles) que viajan mensualmente en una cierta aerolínea internacional de pasajeros durante el periodo de enero de 1949 a diciembre de 1960. Esta base la podemos encontrar precargada en R por el nombre de AirPassengers.
Análisis Exploratorio
# Cargamos los datos
AP_ts = AirPassengers
AP_ts## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 1949 112 118 132 129 121 135 148 148 136 119 104 118
## 1950 115 126 141 135 125 149 170 170 158 133 114 140
## 1951 145 150 178 163 172 178 199 199 184 162 146 166
## 1952 171 180 193 181 183 218 230 242 209 191 172 194
## 1953 196 196 236 235 229 243 264 272 237 211 180 201
## 1954 204 188 235 227 234 264 302 293 259 229 203 229
## 1955 242 233 267 269 270 315 364 347 312 274 237 278
## 1956 284 277 317 313 318 374 413 405 355 306 271 306
## 1957 315 301 356 348 355 422 465 467 404 347 305 336
## 1958 340 318 362 348 363 435 491 505 404 359 310 337
## 1959 360 342 406 396 420 472 548 559 463 407 362 405
## 1960 417 391 419 461 472 535 622 606 508 461 390 432
Una vez teniendo listos nuestros datos para trabajar, vamos a darnos una idea del comportamiento que podemos encontrar en la cantidad de pasajeros que se transportaron de Enero de 1949 a Diciembre de 1960
AP_xts = as.xts(AP_ts)
plot(AP_xts,
xlab= 'Tiempo',
ylab = 'Miles de pasajeros',
col = 'chartreuse3',
grid.ticks.on = 'quarters', #Crea líneas verticales sobre la gráfica cada trimestre
major.ticks = 'quarters', #Crea líneas verticales sobre la gráfica cada trimestre
minor.ticks ='years', # Escribe la etiqueta de los meses cada cierto tiempo
grid.col = 'lightgrey', #color líneas verticales
main='Frecuencia de pasajeros de una aerolínea'
)Con esto, podemos darnos una buena idea del comportamiento que van a seguir nuestros datos. De primer instancia, notamos que existe una tendencia alcista en la cantidad de pasajeros conforme pasa el tiempo y esto lo podemos corroborar con la función aggregate()
AP.tendencia = aggregate(AP_ts)
plot(AP.tendencia, col='chartreuse3',
main='Tendencia de los pasajeros')Análisis de las Series de Tiempo
Abordaremos una serie de preguntas para generar insights acerca del comportamiento de los pasajeros a través del tiempo.
Notemos que por construcción una serie de tiempo cuenta con 3 componentes principales: Tendencia, Periodicidad y Aleatoriedad.
En nuestros modelos los representaremos con la siguiente notación:
- \(X_t\): Valor de la serie de tiempo al momento t
- \(m_t\): Tendencia en el t-ésimo momento
- \(s_t\): Periodicidad (Estacionalidad)
- \(\epsilon_t\): Componente Aleatorio
Modelo Aditivo
El modelo aditivo se representa por:
\[X_t = m_t+s_t+ \epsilon_t\]
Este modelo presenta una mayor variablidad en comparación del Modelo Multiplicativo, y al mismo tiempo cada uno de los factores tienen la misma relevancia al momento de hacer predicciones.
# Descomponemos la serie de tiempo en un modelo aditivo:
AP_add = decompose(AP_ts,type = "additive")# MODELO ADITIVO: Componentes
# Temporalidad:
st_a = AP_add$seasonal
# Tendencia:
mt_a = AP_add$trend
# Aleatoriedad:
et_a = AP_add$random
# Implementación del modelo
Xt_a = mt_a + st_a + et_aModelo Multiplicativo
El modelo multiplicativo se representa por:
\[X_t = (m_t \cdot s_t) + \epsilon_t\] Este modelo cuenta con una menor variabilidad en los datos y tendrá un mayor peso el factor de tendencia y periodicidad
# Descomponemos la serie de tiempo en un modelo mutliplicativo:
AP_multip = decompose(AP_ts,type = "multiplicative")# MODELO MULTIPLICATIVO: Componentes
# Temporalidad:
st_m = AP_multip$seasonal
# Tendencia:
mt_m = AP_multip$trend
# Aleatoriedad:
et_m = AP_multip$random
# Implementación del modelo
Xt_m = (mt_m * st_m) + et_m- ¿Que descomposición (aditiva/multiplicativa) consideras que ajusta mejor a cada serie?
Para responder a la pregunta de qué modelo ajusta mejor a nuestros datos, contrastemos los dos modelos con el original
De estas graficas podemos concluir que el modelo que mejor ajusta a los datos observados está dado por la descomposición aditiva. En ella encontramos que la tendencia y periodicidad se mantienen a lo largo del tiempo, además de que preserva un comportamiento de homocedasticidad1
- Realice con ayuda de R la descomposición de la serie identificando los tres componentes de manera gráfica
# AP_ts = AirPassengers
AP_add = decompose(AP_ts, type = "additive")
plot(AP_add)- ¿Qué puedes concluir sobre la tendencia, periodicidad y aleatoriedad de la serie?
Tendencia: Notamos que existe un comportamiento creciente en el número de pasajeros en la Aerolinea a lo largo de los 10 años del estudio.
Periodicidad: Aquí encontramos un comportamiento que
se repite año con año, lo que nos lleva a concluir que existe una
estacionareidad en el flujo de pasajeros porcada trimestre. Con lo que
aunado al punto anterior, desde el punto de vista del negocio vamos a
tener un flujo de pasajeros creciente, que sigue un mismo comportamiento
al momento de realizar sus vuelos.
Es decir: Se eligen las
mismas fechas para volar, con la consideración de que año con año
tendremos más clientes, por lo que habría que considerar un posible
incremento de unidades de transporte para poder satisfacer la demanda de
los clientes.
Aleatoriedad: En este último aspecto pero no menos
relevante encontramos que los primeros 4 años de la serie de tiempo se
repitió casi el mismo comportamiento aleatorio en los datos.
Sin embargo un periodo interesante es el que abarca de 1954 a
1957, pues existió una estabilidad en el flujo de pasajeros.
- ¿Consideras que las series son estacionarias?
Una primer consideración que tendremos es en el uso del termino variación estacional, que es con el que explicaremos y responderemos la pregunta formulada.
Entenderemos en terminos simples a la variación estacional de una serie de tiempo como: información que sigue un patrón en cada periodo de tiempo de referencia
Analicemos el comportamiento de los pasajeros:
boxplot(
AP_ts ~ cycle(AP_ts),
col = "orange",
# Color de relleno
border = "brown",
#Color de contorno
main = 'Flujo de pasajeros',
xlab = 'Tiempo',
ylab = 'Cantidad de pasajeros (10^3)',
names = month.abb # Agregar nombres
)Aquí podemos encontrar que existe poca variación estacional para los meses de Enero a Junio, por lo que para el primer semestre del mes podriamos concluir que existe una estacionariedad gracias a la poca variación estacional que experimenta el flujo de pasajeros.
Con un razonamiento similar podemos inquirir que en los meses correspondientes al Verano (Junio a Septiembre) tenemos una estacionariedad parcial.
En un análisis más global, considerando todo el año vemos que el flujo de pasajeros se mantiene en unas bandas de 100 a 200 mil pasajeros con una media cercana a 250 mil pasajeros.
- Con los tres componentes de la serie realice las operaciones necesarias, dependiendo del modelo elegido, para volver a obtener \(X_t\).
Apoyandonos en el análisis de incisos pasados llegamos a la conclusión de que el mejor ajuste se encuentra en la descomposición aditiva.
# MODELO ADITIVO: Componentes
AP_add = decompose(AP_ts, type = "additive")
# Temporalidad:
st_a = AP_add$seasonal
# Tendencia:
mt_a = AP_add$trend
# Aleatoriedad:
et_a = AP_add$random
# Implementación del modelo
Xt_a = mt_a + st_a + et_a
# Mostramos los valores que recreamos para la serie de tiempo
Xt_a## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 1949 NA NA NA NA NA NA 148 148 136 119 104 118
## 1950 115 126 141 135 125 149 170 170 158 133 114 140
## 1951 145 150 178 163 172 178 199 199 184 162 146 166
## 1952 171 180 193 181 183 218 230 242 209 191 172 194
## 1953 196 196 236 235 229 243 264 272 237 211 180 201
## 1954 204 188 235 227 234 264 302 293 259 229 203 229
## 1955 242 233 267 269 270 315 364 347 312 274 237 278
## 1956 284 277 317 313 318 374 413 405 355 306 271 306
## 1957 315 301 356 348 355 422 465 467 404 347 305 336
## 1958 340 318 362 348 363 435 491 505 404 359 310 337
## 1959 360 342 406 396 420 472 548 559 463 407 362 405
## 1960 417 391 419 461 472 535 NA NA NA NA NA NA
# Valores reales observados
AP_ts## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 1949 112 118 132 129 121 135 148 148 136 119 104 118
## 1950 115 126 141 135 125 149 170 170 158 133 114 140
## 1951 145 150 178 163 172 178 199 199 184 162 146 166
## 1952 171 180 193 181 183 218 230 242 209 191 172 194
## 1953 196 196 236 235 229 243 264 272 237 211 180 201
## 1954 204 188 235 227 234 264 302 293 259 229 203 229
## 1955 242 233 267 269 270 315 364 347 312 274 237 278
## 1956 284 277 317 313 318 374 413 405 355 306 271 306
## 1957 315 301 356 348 355 422 465 467 404 347 305 336
## 1958 340 318 362 348 363 435 491 505 404 359 310 337
## 1959 360 342 406 396 420 472 548 559 463 407 362 405
## 1960 417 391 419 461 472 535 622 606 508 461 390 432
- Calcula sus autocorrelaciones, ¿Puedes asumir para cada serie que los datos se encuentran autocorrelacionados? ¿Por qué crees que el autocorrelograma sigue ese patrón?
acf(AP_ts)Suavización de la Serie de Tiempo
Promedios Moviles Simples
Realiza una suavización de promedios móviles simple (PS) de orden 2 y 10
Recordemos la definición de promedio móvil de orden (k)
\[\hat{X}_t = \frac{\sum_{i=1}^k X_{t-i}}{k}\]
# Media Movil de orden 2
ma2 <- stats::filter(AP_ts, rep(1 / 2, 2), sides = 1)
# Media Movil de orden 10
ma10 <- stats::filter(AP_ts, rep(1 / 10, 10), sides = 1)Con estos Promedios Moviles podemos identificar el comportamiento medio de la serie de tiempo, mientras mayor sea el parámetro de la media móvil, la tendencia será menos influenciada por los cambios en los valores de la serie.
- Suavización de promedios móviles ponderados (PPM) de orden 4 con los pesos \((0.5, 0.3, 0.2, 0.1)\) para \((X_{t}, X_{t−1}, X_{t−2}, X_{t−3})\) y otra modelo (PPM) de orden 12 seleccionando ustedes mismos los pesos y mencionado el porque de esos pesos.
Los promedios móviles ponderados sonuna variación de los promedios móviles simples. En estos los pesos de cada dato dependen de su temporalidad respecto al tiempo. En este modelo contamos con ponderaciones que denotaremos por \(C_i\) tales que satisfacen:
\[\sum_{i=1}^k C_i = 1\]
Y el modelo se expresa por:
\[\hat{X_t} = \sum_{i=1}^k C_i \cdot X_{t-1}\]
Para la media movil ponderada de orden 12 le daremos mayor importancia a los últimios valores. Para asignarle valores a los ponderadores utilizaremos el siguiente proceso.
Fijaremos el ponderador más alejado de nuestra serie de tiempo \(W_{t-12}\). Queremos una serie de ponderadores tales que le den más importancia a los ultimos valores de la serie de tiempo. Por lo que queremos unos pesos crecientes, entonces para cada tiempo tendremos: \(t\cdot W_{t-12}\), \(\forall t \in {1,...,12}\)
Luego como queremos que estos ponderadores sumen 1:
\[\sum_{t=1}^{12}t\cdot W_{t-12} = 1\\ \iff W_{t-12} = \frac{1}{\sum_{t=1}^{12}t}\\ \iff W_{t-12} = \frac{2}{12\cdot 13} = 0.01282051282\]
# Ponderadores
c_2 <- c(0.5, 0.3, 0.2, 0.1)
c_12 <-0.01282051282 * 1:12# Lo convierto en un objeto con el que sí sé trabajar: Matrices
AP <-matrix(data = AP_ts,ncol = 12)
colnames(AP) <- c("Jan" ,"Feb" ,"Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
rownames(AP) <- c(1949:1960)
# Matriz para los promedios móviles
AP1 <- matrix(AP)# Media Móvil Ponderada(2)
ma_4 <- 0 * 1:nrow(AP1)
for (i in 1:length(ma_4)) {
ma_4[i + 4] <- AP1[i:(3 + i)] %*% c_2
}
# Quitamos los valores NA
ma_4 <- ma_4[!is.na(ma_4)]
plot(ma_4,type = 'l', ylab= "Media Movil(4)", col = "dodgerblue3")ma_4## [1] 0.0 0.0 0.0 0.0 130.7 136.5 142.4 142.6 145.4 155.1 157.5 149.0
## [13] 136.3 125.8 123.0 132.8 137.0 144.8 150.9 151.8 158.2 175.3 180.9 170.4
## [25] 155.7 143.2 143.0 161.3 169.4 178.2 190.1 188.6 199.1 206.9 212.2 201.7
## [37] 186.4 175.1 175.0 189.6 196.2 202.4 209.2 212.0 227.1 247.3 248.5 239.1
## [49] 215.6 205.5 203.0 218.6 227.5 238.7 258.6 261.2 267.4 278.8 282.1 267.3
## [61] 237.9 220.1 209.9 222.8 228.1 233.3 258.8 266.7 285.9 307.1 313.6 290.3
## [73] 261.7 245.4 241.9 260.4 271.2 277.4 299.7 314.9 337.0 367.3 375.9 345.6
## [85] 313.4 292.1 286.4 311.3 319.8 328.0 353.4 368.0 394.3 427.4 429.6 397.3
## [97] 354.1 327.0 320.4 343.3 353.8 362.4 395.6 411.4 443.8 484.3 488.1 454.6
## [109] 400.7 366.2 353.1 369.8 372.6 373.5 401.5 419.0 460.7 506.2 513.7 476.5
## [121] 405.4 375.9 362.3 385.5 403.4 414.0 453.0 473.2 517.1 558.5 575.0 536.0
## [133] 466.5 434.8 425.0 447.7 455.7 460.6 495.7 541.3 581.5 626.1 640.5 586.6
## [145] 513.5
# Media Móvil Ponderada(12)
ma_12 <- 0 * 1:nrow(AP1)
for (i in 1:length(ma_12)) {
ma_12[i + 12] <- AP1[i:(11 + i)] %*% c_12
}
# Quitamos los valores NA
ma_12 <- ma_12[!is.na(ma_12)]
plot(ma_12,type = 'l', ylab= "Media Movil(12)", col = "dodgerblue3")ma_12## [1] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
## [9] 0.0000 0.0000 0.0000 0.0000 126.5256 124.7308 124.5897 126.6538
## [17] 127.6795 127.0897 130.1410 136.2436 142.0641 145.7564 145.3205 141.7821
## [25] 142.1154 142.9359 144.1410 149.3462 151.7692 155.2179 158.9872 165.6154
## [33] 171.8718 175.4487 175.3077 172.3333 172.0256 172.1538 173.3333 176.1282
## [41] 176.8846 177.7179 183.7949 191.2051 200.0641 203.2949 203.4359 200.2821
## [49] 200.1795 200.0256 199.5513 205.0256 209.7949 212.9487 217.6667 225.2949
## [57] 233.7179 236.3718 234.6667 227.9359 224.3333 221.1026 215.3077 216.8462
## [65] 217.1667 218.6667 224.7179 236.3462 246.1026 250.3590 249.7179 244.8462
## [73] 243.6795 244.1538 242.7564 246.0128 249.1667 251.9359 261.1667 277.2821
## [81] 289.9872 296.6154 296.7179 290.5513 290.2564 290.2564 288.6410 292.6154
## [89] 295.3333 298.2564 309.1795 325.3462 339.6538 345.5256 343.3077 335.2949
## [97] 332.2308 330.1923 325.6026 329.1667 331.0000 333.4615 345.7564 364.0513
## [105] 381.9872 389.4359 387.4872 378.5513 373.9487 369.5769 361.5000 359.9744
## [113] 356.2179 354.7692 364.2949 382.2692 402.0641 405.8333 402.6795 391.8333
## [121] 385.0769 381.8462 375.5897 378.8718 380.0513 384.3077 395.8333 418.5769
## [129] 442.2821 450.5256 449.3974 440.7308 438.0128 436.2692 429.7949 427.0000
## [137] 430.5000 434.8590 448.2436 474.2051 496.7564 503.6282 502.6923 490.1410
## [145] 483.6923
- Suavización Exponencial Simple con \(\alpha = 0.01, \alpha=0.05, \alpha = 0.99\) ¿Cuál es el papel de \(\alpha\) en la estimación de valores pronóstico
Este método se suavización es ideal cuando no conocemos o no hay tendencia ni periodicidad en nuestra serie de tiempo. su principal función es generar pronósticos y se define como:
\[\hat{X}_{t+1} = \alpha X_t + (1-\alpha) \hat{X}_t\]
De este resultado tenemos la siguiente observación:
\[ \mbox{Pronóstico} = \left\{ \begin{array}{ll} \alpha \to 1 & \mbox{Pronóstico } \approx \mbox{Valores Actuales} \\ \alpha \to 0 & \mbox{Pronóstico } \approx \mbox{Valores Anteriores Estimados} \end{array} \right. \]
# Para alpha = 0.01
library("forecast")
datos <- AP1
modelo = ses(datos, alpha = 0.01, initial = 'simple')
a1 <- modelo$fitted# Para alpha = 0.5
library("forecast")
datos <- AP1
modelo = ses(datos, alpha = 0.5, initial = 'simple')
a2 <- modelo$fitted# Para alpha = 0.99
library("forecast")
datos <- AP1
modelo = ses(datos, alpha = 0.99, initial = 'simple')
a3 <- modelo$fitted- Suavización Holt , con \(\alpha = 0.5, \beta = 0.2, \beta = 0.8\) ¿Cuál es el papel de β en la estimación de valores pronostico?
library("forecast")
h1 <- holt(AP_ts, alpha = 0.5,beta = 0.2)
h1## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## Jan 1961 387.80474 322.07189 453.5376 287.27502 488.3344
## Feb 1961 352.59897 272.36181 432.8361 229.88682 475.3111
## Mar 1961 317.39321 217.70442 417.0820 164.93236 469.8541
## Apr 1961 282.18745 159.03701 405.3379 93.84510 470.5298
## May 1961 246.98169 97.08774 396.8756 17.73868 476.2247
## Jun 1961 211.77593 32.36018 391.1917 -62.61678 486.1686
## Jul 1961 176.57017 -34.79952 387.9399 -146.69187 499.8322
## Aug 1961 141.36441 -104.14579 386.8746 -234.11104 516.8399
## Sep 1961 106.15865 -175.49720 387.8145 -324.59680 536.9141
## Oct 1961 70.95289 -248.71426 390.6200 -417.93582 559.8416
El papel de \(\beta\) en estos modelos representa la tendencia de la serie de tiempo Sin embargo el modelo no nos permite usar un parámetro de beta mayor al 0.5
- Suavización Holt-Winters , con \(\alpha = 0.5, \beta = 0.2, \gamma = 0.8\) y otro modelo Holt-Winters con una selección automática de R.
library("forecast")
hw <- HoltWinters(AP_ts, alpha = 0.5,beta = 0.2,gamma = 0.8)
hw## Holt-Winters exponential smoothing with trend and additive seasonal component.
##
## Call:
## HoltWinters(x = AP_ts, alpha = 0.5, beta = 0.2, gamma = 0.8)
##
## Smoothing parameters:
## alpha: 0.5
## beta : 0.2
## gamma: 0.8
##
## Coefficients:
## [,1]
## a 516.231762
## b 6.170276
## s1 -53.008238
## s2 -63.673967
## s3 -6.499563
## s4 20.620928
## s5 32.952216
## s6 89.334864
## s7 149.175990
## s8 118.222930
## s9 2.798954
## s10 -61.867019
## s11 -125.852126
## s12 -82.106616
# Segundo modelo de Holt-Winters con valores aleatorios para sus parámetros
library("forecast")
parametros <- runif(3)
a <- parametros[1]
b <- parametros[2]
g <- parametros[3]
hw2 <- HoltWinters(AP_ts, alpha = a,beta = b,gamma = g)
hw2## Holt-Winters exponential smoothing with trend and additive seasonal component.
##
## Call:
## HoltWinters(x = AP_ts, alpha = a, beta = b, gamma = g)
##
## Smoothing parameters:
## alpha: 0.1949768
## beta : 0.7860923
## gamma: 0.7054965
##
## Coefficients:
## [,1]
## a 575.35168604
## b 22.47809038
## s1 -58.95262860
## s2 -62.12693794
## s3 -0.01404741
## s4 42.27736342
## s5 62.08901804
## s6 117.62937515
## s7 178.35379764
## s8 140.96043429
## s9 11.47866569
## s10 -69.78170701
## s11 -156.03962598
## s12 -126.82646801
Suavización por promedios móviles simples centrados
Elabora una suavización de promedios móviles simple centrados de acuerdo a la periodicidad de la serie de tiempo; es decir, si los datos tienen una periodicidad mensual selecciona orden 12.
Este método de suavizamiento disminuye la pérdida de información correspondiente al orden. Y sigue un mismo estilo que el de promedios móviles simples, pues sólo cambia un parámetro dentro de la función filter con este método no podemos realizar pronósticos
frec <- frequency(AP_ts)
frec## [1] 12
cma <- stats::filter(AP_ts, rep(1 / 12, 12), sides = 2)
cma## Jan Feb Mar Apr May Jun Jul Aug
## 1949 NA NA NA NA NA 126.6667 126.9167 127.5833
## 1950 132.1667 134.0000 135.8333 137.0000 137.8333 139.6667 142.1667 144.1667
## 1951 158.3333 160.7500 162.9167 165.3333 168.0000 170.1667 172.3333 174.8333
## 1952 184.4167 188.0000 190.0833 192.5000 194.6667 197.0000 199.0833 200.4167
## 1953 217.2500 219.7500 222.0833 223.7500 224.4167 225.0000 225.6667 225.0000
## 1954 229.5833 231.3333 233.1667 234.6667 236.5833 238.9167 242.0833 245.8333
## 1955 264.4167 268.9167 273.3333 277.0833 279.9167 284.0000 287.5000 291.1667
## 1956 312.0000 316.8333 320.4167 323.0833 325.9167 328.2500 330.8333 332.8333
## 1957 350.4167 355.5833 359.6667 363.0833 365.9167 368.4167 370.5000 371.9167
## 1958 376.3333 379.5000 379.5000 380.5000 380.9167 381.0000 382.6667 384.6667
## 1959 404.9167 409.4167 414.3333 418.3333 422.6667 428.3333 433.0833 437.1667
## 1960 459.4167 463.3333 467.0833 471.5833 473.9167 476.1667 NA NA
## Sep Oct Nov Dec
## 1949 128.3333 128.8333 129.1667 130.3333
## 1950 147.2500 149.5833 153.5000 155.9167
## 1951 176.0833 177.5833 178.5000 181.8333
## 1952 204.0000 208.5000 212.3333 214.4167
## 1953 224.9167 224.2500 224.6667 226.4167
## 1954 248.5000 252.0000 255.0000 259.2500
## 1955 295.3333 299.0000 303.0000 307.9167
## 1956 336.0833 339.0000 342.0833 346.0833
## 1957 372.4167 372.4167 373.0833 374.1667
## 1958 388.3333 392.3333 397.0833 400.1667
## 1959 438.2500 443.6667 448.0000 453.2500
## 1960 NA NA NA NA
plot(cma,type = 'l', ylab= "Media Movil Centrada(12)", col = "dodgerblue3")- De la suavización anterior ahora verifica la tendencia obtenida en la descomposición del primer punto, ¿Se parecen? ¿En que modelo se puede asumir la anterior descomposición puede ser usado como estimador de la tendencia?
# Serie de tiempo original
plot(AP_ts, type='l', col='chartreuse3', xlab='Tiempo', ylab='Miles de Pasajeros', main = "Original vs Aditivo")
# Descomposición Aditiva
lines(Xt_a, col='darkorange2')
# Tendencia mostrada por Media Movil Centrada (12)
lines(cma, col='dodgerblue3')
# Tendencia mostrada por descomposición aditiva
lines(mt_a, col='deeppink3')Del griego Homos (igual) y cedastitis (dispersión). Hipotesis referente a la dispersión de los valores de una perturbación aleatoria en un modelo de regresión lineal, que consiste en suponer que la variable se distribuye con igual varianza en cualquiera de las estimaciones hechas mediante el modelo. Fuente: wiktionary.org↩︎