class: center, middle, inverse, title-slide .title[ # Tema 4: Regresión con series de tiempo ] .subtitle[ ## Curso: Análisis de series temporales ] .author[ ### Prof. Shu Wei Chou Chen ] .institute[ ### Escuela de Estadística, UCR ] --- # Contenido 1. Introducción 2. Regresión lineal simple 3. Regresión lineal múltiple 2. Modelos de tendencia 3. Transformaciones en modelos estacionales 4. Modelos de series estacionales mediante variables indicadoras --- # Introducción - La idea es ajustar un modelo de regresión para la serie temporal `\(Y_t, t=1,...,T\)` utlizando un conjunto de `\(p\)` covariables: `\(X_1,...,X_p\)`. - Por ejemplo: - `\(Y\)` una serie mensual de ventas con la variable independiente `\(X_1\)` gasto mensual en anuncios. - `\(Y\)` una serie diaria de demanda de energía eléctrica con las variables independientes: `\(X_1\)` temperatura y `\(X_2\)` el día de la semana. --- # Regresión lineal simple Un modelo de regresión lineal simple establece una relación lineal entre una variable dependiente `\(Y\)` y una sola variable predictora `\(X\)`: $$ Y_t = \beta_0 + \beta_1 X_t + \epsilon_t, $$ donde los coeficientes `\(\beta_0\)` y `\(\beta_1\)` denotan la intersección y la pendientes, respectivamente; `\(\varepsilon_t \overset{\text{iid}}{\sim} N(0,\sigma^2)\)`. - La intercepción `\(\beta_0\)` representa el valor predicho de `\(y\)` cuando `\(X=0\)`. - La pendiente `\(\beta_1\)` representa el cambio promedio previsto en `\(Y\)` resultante de un aumento de una unidad en `\(X\)`. --- # Regresión lineal simple <div class="figure" style="text-align: center"> <img src="presentacion_files/figure-html/SLRpop1-1.png" alt="Ejemplo simulado de un modelo de regresión lineal simple (Fig 5.1 de Hyndman)." width="50%" /> <p class="caption">Ejemplo simulado de un modelo de regresión lineal simple (Fig 5.1 de Hyndman).</p> </div> --- # Regresión lineal simple: Ejemplo Se tienen datos de cambios porcentuales trimestrales (tasas de crecimiento) del gasto de consumo personal real (Y) e ingresos disponibles(X), para EE.UU. desde 1970 a 2016. <img src="presentacion_files/figure-html/unnamed-chunk-2-1.png" width="500px" height="300px" style="display: block; margin: auto;" /> --- # Regresión lineal simple: Ejemplo <img src="presentacion_files/figure-html/unnamed-chunk-3-1.png" width="50%" style="display: block; margin: auto;" /> --- # Regresión lineal simple: Ejemplo ```r tslm(Consumption ~ Income, data=uschange) ``` ``` ## ## Call: ## tslm(formula = Consumption ~ Income, data = uschange) ## ## Coefficients: ## (Intercept) Income ## 0.5451 0.2806 ``` `$$\hat{Y}_t=0.55 + 0.28X_t.$$` El coeficiente de pendiente muestra que un aumento de una unidad en `\(X\)`(un aumento de 1 punto porcentual en el ingreso personal disponible) resulta en un promedio de 0.28 unidades de aumento en `\(Y\)`. --- # Regresión lineal múltiple - La forma general de un modelo de regresión lineal múltiple es: `$$Y_t=\beta_0+\beta_1 X_{t,1}+\beta_2 X_{t,2}+...+\beta_p X_{t,p}+\epsilon_t, t=1,...,T,$$` donde `\(Y_t\)` es la variable a pronosticar y `\(X_1,...,X_p\)` son los `\(p\)` variables predictoras. Las variables predictoras pueden ser numéricas o categóricas (con el manejo apropiado de factores). Los coeficientes `\(\beta_1,...,\beta_p\)` miden el efecto de cada predictor después de tener en cuenta los efectos de todos los demás predictores del modelo. Por lo tanto, los coeficientes miden los efectos marginales de las variables predictoras. --- # Regresión lineal múltiple - El modelo de regresión lineal múltiple en su forma matricial: $$ Y=X \beta+\epsilon $$ donde `$$Y=\left[ \begin{array}{c}Y_1 \\ \vdots \\Y_T \end{array} \right],~~ X= \left(\begin{array}{ccccc} 1& X_{11}& X_{12} & ... & X_{1p}\\ 1 & X_{21}& X_{22} & ... &X_{2p}\\ \vdots& \vdots & \ddots &\vdots& \vdots\\ 1& X_{T1}& X_{T2} & ... &X_{Tp} \end{array}\right),$$` `$$\beta=\left[ \begin{array}{c}\beta_0 \\ \vdots \\\beta_T \end{array} \right],~~\epsilon=\left[ \begin{array}{c}\epsilon_1 \\ \vdots \\\epsilon_T \end{array} \right].$$` --- # Regresión lineal múltiple **Supocisiones del modelo:** - La relación entre la variable de pronóstico y las variables predictoras satisface esta ecuación lineal. - Los errores `\(\varepsilon_1,...,\varepsilon_T\)`: - tienen media cero, - no están autocorrelacionados, - no están relacionados con las variables predictoras - Los errores se distribuyan normalmente con una varianza constante `\(\sigma^2\)`. - Cada predictor `\(X_i, i=1,...,p\)` supone que es observado y fijo, i.e. no es una variable aleatoria. --- # Regresión lineal múltiple **Tópicos importantes:** 1. Estimación: - por mínimos cuadrados. - por máxima verosimilitud. 2. Selección de variables 3. Diagnósticos 4. Medidas remediales --- # Regresión lineal múltiple - Estimación por mínimos cuadrados: minimizar `$$\sum_{t=1}^T \epsilon_t^2=\sum_{t=1}^T [y_t-(\beta_0+\beta_1 x_{1,t}+...+\beta_k x_{k,t})]^2,$$` en función de `\(\beta_0,...\beta_k\)`. - Como resultado: $$ \hat{\beta}=(X^\top X)^{-1}X^\top Y. $$ - El estimador de máxima verosimilitud es equivalente. --- # Regresión lineal múltiple: Ejemplo - El objetivo es generar pronósticos del consumo más precisos usando otros predictores, además del ingreso personal. <div class="figure" style="text-align: center"> <img src="presentacion_files/figure-html/MultiPredictors-1.png" alt="Variaciones porcentuales trimestrales en la producción industrial y ahorros personales y variaciones trimestrales en la tasa de desempleo de los EE. UU. Durante el período 1970T1-2016T3 (Hyndman)." width="40%" /> <p class="caption">Variaciones porcentuales trimestrales en la producción industrial y ahorros personales y variaciones trimestrales en la tasa de desempleo de los EE. UU. Durante el período 1970T1-2016T3 (Hyndman).</p> </div> --- # Regresión lineal múltiple: Ejemplo <div class="figure" style="text-align: center"> <img src="presentacion_files/figure-html/ScatterMatrix-1.png" alt="Matriz de diagrama de dispersión del gasto de consumo de EE. UU. y los cuatro predictores." width="50%" /> <p class="caption">Matriz de diagrama de dispersión del gasto de consumo de EE. UU. y los cuatro predictores.</p> </div> --- # Regresión lineal múltiple: Ejemplo ``` ## ## Call: ## tslm(formula = Consumption ~ Income + Production + Unemployment + ## Savings, data = uschange) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.88296 -0.17638 -0.03679 0.15251 1.20553 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 0.26729 0.03721 7.184 1.68e-11 *** ## Income 0.71449 0.04219 16.934 < 2e-16 *** ## Production 0.04589 0.02588 1.773 0.0778 . ## Unemployment -0.20477 0.10550 -1.941 0.0538 . ## Savings -0.04527 0.00278 -16.287 < 2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.3286 on 182 degrees of freedom ## Multiple R-squared: 0.754, Adjusted R-squared: 0.7486 ## F-statistic: 139.5 on 4 and 182 DF, p-value: < 2.2e-16 ``` --- # Regresión lineal múltiple: Ejemplo <img src="presentacion_files/figure-html/unnamed-chunk-4-1.png" width="60%" style="display: block; margin: auto;" /> --- # Regresión lineal múltiple: Ejemplo <img src="presentacion_files/figure-html/unnamed-chunk-5-1.png" width="50%" style="display: block; margin: auto;" /> ``` ## ## Breusch-Godfrey test for serial correlation of order up to 8 ## ## data: Residuals from Linear regression model ## LM test = 14.874, df = 8, p-value = 0.06163 ``` --- # Regresión espuria - Cuando las series no son **estacionarias**, los resultados de regresión no son confiables y presenta lo que se llama correlación espuria. - **Nota:** Estacionariedad es un concepto que veremos en el siguiente tema y significa que la serie varíe con una tendencia constante y variación constante, pero con cierta estructura de autocorrelación. - Los datos de las series cronológicas de tendencias pueden parecer relacionados. - Por ejemplo, los pasajeros aéreos en Australia tienen una correlación positiva con la producción de arroz en Guinea. <img src="presentacion_files/figure-html/spurious-1.png" width="500px" height="250px" style="display: block; margin: auto;" /> --- # Regresión espuria ``` ## ## Call: ## tslm(formula = aussies ~ guinearice) ## ## Residuals: ## Min 1Q Median 3Q Max ## -5.9448 -1.8917 -0.3272 1.8620 10.4210 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) -7.493 1.203 -6.229 2.25e-07 *** ## guinearice 40.288 1.337 30.135 < 2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 3.239 on 40 degrees of freedom ## Multiple R-squared: 0.9578, Adjusted R-squared: 0.9568 ## F-statistic: 908.1 on 1 and 40 DF, p-value: < 2.2e-16 ``` --- # Regresión espuria <img src="presentacion_files/figure-html/tslm_mult2-1.png" width="300px" height="300px" style="display: block; margin: auto;" /> ``` ## ## Breusch-Godfrey test for serial correlation of order up to 8 ## ## data: Residuals from Linear regression model ## LM test = 28.813, df = 8, p-value = 0.000342 ``` --- # Modelos de tendencia - Como las variables independiente son asumidas como fijas, se puede utilizar el tiempo como una variable independiente. - Los modelos más frecuentes: - **Tendencia lineal**: `$$Y_t=\beta_0+\beta_1 t + \epsilon_t$$` - **Tendencia cuadrática**: `$$Y_t=\beta_0+\beta_1 t +\beta_2 t^2 + \epsilon_t$$` - Regresión no lineal. - Por ejemplo: LOESS. --- # Modelos de tendencia Vamos a ajustar un modelo de tendencia cuadrática a la serie de graduados de ITCR de 1975 a 2002: `$$Y_t=\beta_0+\beta_1 t +\beta_2 t^2 + \epsilon_t, t=1,...,T$$` <img src="presentacion_files/figure-html/unnamed-chunk-6-1.png" width="45%" style="display: block; margin: auto;" /> --- # Modelos de tendencia ```r tiempo<-seq(1,length(y)) tiempo2<-tiempo^2 mod<-lm(y~tiempo+tiempo2) summary(mod) ``` ``` Call: lm(formula = y ~ tiempo + tiempo2) Residuals: Min 1Q Median 3Q Max -117.932 -49.683 4.506 43.234 155.390 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 127.0021 43.6818 2.907 0.00753 ** tiempo -12.7887 6.9427 -1.842 0.07736 . tiempo2 1.5612 0.2323 6.720 4.83e-07 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 71.61 on 25 degrees of freedom Multiple R-squared: 0.944, Adjusted R-squared: 0.9395 F-statistic: 210.6 on 2 and 25 DF, p-value: 2.268e-16 ``` --- # Modelos de tendencia .pull-left[ - Supuestos: - Normalidad - Homoscedasticidad - Autocorrelación en el tiempo <img src="presentacion_files/figure-html/unnamed-chunk-8-1.png" width="80%" /> ] .pull-right[ <img src="presentacion_files/figure-html/unnamed-chunk-9-1.png" width="80%" /> ``` ## [1] 8 21 ``` ``` ## ## Shapiro-Wilk normality test ## ## data: mod$residuals ## W = 0.97509, p-value = 0.7211 ``` ] --- # Modelos de tendencia - Los residuales en el tiempo: <img src="presentacion_files/figure-html/unnamed-chunk-11-1.png" width="50%" /> --- # Modelos de tendencia <img src="presentacion_files/figure-html/unnamed-chunk-12-1.png" width="50%" style="display: block; margin: auto;" /> ``` ## ## Breusch-Godfrey test for serial correlation of order up to 6 ## ## data: Residuals ## LM test = 3.9215, df = 6, p-value = 0.6873 ``` --- # Transform. en modelos estacionales - Si la magnitud del cambio estacional se mantiene aproximadamente constante con el cambio del nivel de la serie, se dice que la variación estacional es constante (aditiva). - Si la variación estacional aumenta proporcionalmente con el nivel de la serie, se dice que la variación estacional es multiplicativa. Transformaciones usadas en la práctica: - `\(W_t=Y_t^\alpha,~~\text{con} -1<\alpha<1\)` - `\(W_t=\ln Y_t\)` --- # Transform. en modelos estacionales ### Ejemplo de turistas: .pull-left[ Sin transformación `\((Y_t)\)` <img src="presentacion_files/figure-html/unnamed-chunk-13-1.png" width="70%" style="display: block; margin: auto;" /> ] .pull-right[ Con transformación `\((\ln Y_t)\)` <img src="presentacion_files/figure-html/unnamed-chunk-14-1.png" width="70%" style="display: block; margin: auto;" /> ] --- # Modelos de series estacionales mediante variables indicadoras - La idea es utilizar un factor (variables indicadoras) como predictor para indicar el periodo de la estacionalidad. - Ejemplo de turistas (datos mensuales y con tendencia cuadrática) `$$ln Y_t=\alpha_0+\alpha_1 t + \alpha_2 t^2 +\beta_1 I_{1}+...+\beta_11 I_{11}+\epsilon_t$$` ``` w tiempo tiempo2 mes 1 10.76223 1 1 1 2 10.72731 2 4 2 3 10.78324 3 9 3 4 10.50832 4 16 4 5 10.36113 5 25 5 6 10.51486 6 36 6 ``` --- # Modelos de series estacionales mediante variables indicadoras ``` Estimate Std. Error t value Pr(>|t|) (Intercept) 10.9420 0.0294 372.1819 0.0000 tiempo 0.0086 0.0008 11.1807 0.0000 tiempo2 0.0000 0.0000 -3.2291 0.0017 mes2 -0.1013 0.0324 -3.1246 0.0023 mes3 -0.1181 0.0324 -3.6408 0.0004 mes4 -0.3467 0.0324 -10.6900 0.0000 mes5 -0.5050 0.0324 -15.5680 0.0000 mes6 -0.4243 0.0324 -13.0771 0.0000 mes7 -0.2037 0.0325 -6.2784 0.0000 mes8 -0.3326 0.0325 -10.2482 0.0000 mes9 -0.6091 0.0325 -18.7601 0.0000 mes10 -0.5293 0.0325 -16.2990 0.0000 mes11 -0.3263 0.0325 -10.0431 0.0000 mes12 -0.1042 0.0325 -3.2068 0.0018 ``` --- # Modelos de series estacionales mediante variables indicadoras <img src="presentacion_files/figure-html/unnamed-chunk-17-1.png" width="50%" style="display: block; margin: auto;" /> --- # Extensiones de modelos de regresión - Modelos no lineales. - Modelos lineales generalizados (GLM). - variables dependientes que pertenecen a una familia exponencial: Poisson, Exponencial, etc. - Modelos aditivos generalizados (GAM). - efectos fijos y aleatorios. - Modelos aditivos generalizados para locación, escala y forma (GAMLSS). --- # Ejemplo ###Temperatura diaria (F) en Cairo de 01-01-1995 hasta 21-05-2005 <img src="presentacion_files/figure-html/unnamed-chunk-18-1.png" width="50%" style="display: block; margin: auto;" /> --- # Ejemplo ###Temperatura diaria (F) en Cairo de 01-01-1995 hasta 21-05-2005 - Ajuste de un GAM <img src="presentacion_files/figure-html/unnamed-chunk-19-1.png" width="50%" style="display: block; margin: auto;" /> --- # Ejemplo ###Temperatura diaria (F) en Cairo de 01-01-1995 hasta 21-05-2005 - Periodograma (análisis espectral) .pull-left[ <img src="presentacion_files/figure-html/unnamed-chunk-20-1.png" width="65%" style="display: block; margin: auto;" /> ] .pull-right[ <img src="presentacion_files/figure-html/unnamed-chunk-21-1.png" width="65%" style="display: block; margin: auto;" /> ``` ## [1] 349.0909 ``` ] ``` ## [1] 349.0909 ``` La frecuencia dominante `\(\omega\)` es 0.002864583, es decir, se completa un ciclo aproximadamente cada 349.09 días. --- # Ejemplo ###Temperatura diaria (F) en Cairo de 01-01-1995 hasta 21-05-2005 - Modelo de regresión lineal con covariables senos y cosenos `$$y_t=\alpha+\beta_1 cos(2 \pi \omega t)+\beta_2 sen(2 \pi \omega t)+\varepsilon_t$$` <img src="presentacion_files/figure-html/unnamed-chunk-23-1.png" width="45%" style="display: block; margin: auto;" /> --- # Ejemplo ###Temperatura diaria (F) en Cairo de 01-01-1995 hasta 21-05-2005 - Modelo de regresión lineal con covariables senos y cosenos con 5 frecuencias más importantes: `$$y_t=\alpha+ \sum_{k=1}^{5} \left[ \beta_{1k} cos(2 \pi \omega_k t)+\beta_{2k} sen(2 \pi \omega_k t) \right]+\varepsilon_t$$` - Las 8 frecuencias más importantes: ``` ## frequency period spectrum ## 1 0.0029 349.0909 91251.731 ## 2 0.0026 384.0000 54420.640 ## 3 0.0023 426.6667 8986.496 ## 4 0.0031 320.0000 6148.723 ## 5 0.0034 295.3846 2902.172 ## 6 0.0021 480.0000 2409.255 ## 7 0.0018 548.5714 1666.177 ## 8 0.0039 256.0000 1331.423 ``` --- # Ejemplo ###Temperatura diaria (F) en Cairo de 01-01-1995 hasta 21-05-2005 <img src="presentacion_files/figure-html/unnamed-chunk-25-1.png" width="45%" style="display: block; margin: auto;" /> --- ## Vamos al laboratorio ## Próximo tema ### Tema 5: Modelos de series temporales