MAE0325 - Séries Temporais Fernando Henrique Ferraz Pereira da Rosa Vagner Aparecido Pedro Junior 26 de setembro de 2004 E7p80. Considere a série A (M-ICV): Lista 1 1 (a) teste a existência de tendência, usando o teste de seqüência; Seja m = 168.8 a mediana dessa série. Primeiro criamos 2 um vetor com A s e B s, onde o t-ésimo elemento desse vetor é A se Z t m e B caso contrário. > micv1 <- factor(ifelse(micv >= median(micv), + "A", "B")) > micv1 [1] B B B B B B B B B B B B B B B B B B B B B B B B B [26] B B B B B B B B B B B B B B B B B B B B B B B B B [51] B B B B B B B A A A A A A A A A A A A A A A A A A [76] A A A A A A A A A A A A A A A A A A A A A A A A A [1] A A A A A A A A A A A A A A Levels: A B Intuitivamente observa-se uma forte tendência, pois há apenas duas seqüências distintas. Formalmente, utilizamos a função runs.test do pacote tseries, para realizar o teste de Wald-Wolfowitz: > runs.test(micv1) Runs Test data: micv1 Standard Normal = -.54, p-value < 2.2e-16 alternative hypothesis: two.sided Que conforme o esperado, rejeita a hipótese nula de não tendência com um p-valor baixíssimo. (b) estime T t no modelo (3.3), supondo T t = β 0 e β1t ; Temos que o modelo (3.3) é dado por: Z t = T t + a t, 1 Powered by LATEX 2ε, R 1.9.1 and Sweave 2 Os comandos indicados foram executados no pacote estatístico R. 1
ou seja, não há componente sazonal. Queremos portanto ajustar o modelo não linear Z t = β 0 e β1t + a t. Uma possiblidade de ajuste, é aplicar a transformação linearizadora log (.) De forma a obter o modelo, agora linear nos parâmetros: que é equivalente a: log Z t = log β 0 + β 1 t + a t, Z t = β 0 + β 1t + a t. Este modelo pode ser facilmente ajustado através de mínimos quadrados, através dos comandos abaixo: > t <- 1:length(micv) > z1 <- lm(log(micv) ~ t) > z1 Call: lm(formula = log(micv) ~ t) Coefficients: (Intercept) t 4.0721 0.0207 Que, voltando para a escala original, nos dá estimativas dos parâmetros β 0 e β 1 : β 0 β 1 58.68 0.02069 Na Figura 1 temos o gráfico da série e a curva ajustada. Observa-se que a partir de t = 90 o ajuste começa a se distanciar razoavelmente da série observada. Esse efeito pode ser causado por alguma quebra de suposição feita ou pela própria linearização. Afinal, ao ajustarmos o modelo sobre os dados transformados estamos minimizando o erro quadrático sobre o log da variável resposta, e não da variável resposta em si, na qual estamos interessados. Outro problema, é que ao linearizarmos o modelo com a transformação logarítmica, não estamos mantendo a mesma estrutura de erros, a dizer, quando passamos de a t para a t, estamos implicitamente impondo um modelo de erros multiplicativos sobre o modelo original, que não necessariamente é razoável. Ajustemos então diretamente o modelo sobre o modelo não linear, através da função nls(), utilizando o algorítmo interativo de Gauss- Newton, baseando-nos nos parâmetros ajustados do modelo linearizado para obter as estimativas iniciais dos parâmetros: > z2 <- nls(micv ~ a * exp(b * t), start = list(a = 60, + b = 0), trace = T) 2
micv 0 200 300 400 500 600 700 800 série ajuste linearizado 0 20 40 60 80 0 Figura 1: Gráfico da Série A e ajuste linearizado. 7825035 : 60 0 680323 : 7.84508 0.04219 662701 : 14.82949 0.03323 582039 : 24.33478 0.02809 145606 : 39.48139 0.02456 42330 : 41.44115 0.02517 42128 : 41.25672 0.02518 42128 : 41.25622 0.02518 > z2 Nonlinear regression model model: micv ~ a * exp(b * t) data: parent.frame() a b 41.25622 0.02518 residual sum-of-squares: 42128 Obtendo as estimativas dos parâmetros β 0 e β 1 : β 0 β 1 41.26 0.02518 Na Figura 2 temos novamente a série e o novo ajuste, que apesar de mais distante da série observada para t < 40, apresenta um ajuste 3
melhor adiante, o que é particularmente útil se a intenção do modelo é fazer predições da variável resposta para t s no futuro.. micv 0 200 300 400 500 600 700 800 série ajuste não linear 0 20 40 60 80 0 Figura 2: Gráfico da Série A e ajuste não-liner. Logo, ficamos com a estimativa de T t : ˆT t = 41.26e 0.02518t. (c) quais serão as previsões da série para 07/80 e 08/80, usando ˆT t? Elas serão: > predict(z2, list(t = c(115, 116))) [1] 746.2 765.3 Notando que como N = 114 e a série vai até 06/80, os valores de t para 07/80 e 08/80 são 115 e 116. Notemos que se tivéssemos utlizado o modelo linearizado para fazer as previsões teriamos obtido: > pred.orig <- function(z, t) { + exp(coef(z)[1]) * exp(t * coef(z)[2]) + } > pred.orig(z1, t = c(115, 116)) [1] 633.3 646.5 Que são valores bem menos condizentes com o padrão aparente da série. 4
(d) obtenha uma estimativa de T t, utilizando médias móveis de três termos; Basta usarmos um filtro linear através da função filter(), especificando o vetor de filtros de acordo com uma média móvel de parâmetro a = 3: > mm.micv <- filter(micv, filter = rep(1/3, + 3)) > mm.micv Series: Start = 1 End = 114 Frequency = 1 [1] NA 72.53 73.50 74.40 75.33 76.13 77. [8] 78.33 79.67 80.87 81.83 83. 84.63 86.60 [15] 88.67 90.40 91.93 93.17 94.63 95.73 96.80 [22] 97.87 98.97 0.43 1.97 3.53 4.80 5.80 [29] 6.87 8.33 1.20 112.27 114.17 115.77 116.90 [36] 117.83 118.87 120.40 122.17 123.83 125.20 126.33 [43] 127.57 129.00 130.47 131.90 133.03 134.07 136.30 [50] 140.27 146.30 151.70 155.80 158.60 161.47 164.57 [57] 167.43 170.53 174. 178.40 182.90 186.83 190.50 [64] 193.93 198.63 203.27 209.00 214.00 219.00 223.00 [71] 226.67 231.67 239.67 248.33 256.67 263.00 269.33 [78] 275.00 281.67 289.33 297.67 304.33 311.00 319.00 [85] 330.00 343.67 359.00 372.33 383.67 392.00 400.00 [92] 407.33 415.33 425.00 436.33 447.00 459.67 472.00 [99] 485.00 497.00 513.33 534.33 555.00 572.00 586.67 [6] 601.67 615.67 632.67 649.33 675.67 701.67 728.00 [113] 751.67 NA Na Figura 3 temos o gráfico dessa estimativa de T t. (e) calcule Z t e verifique se é estacionária. Para calcular Z t, basta usarmos a função diff() para diferenças iteradas de primeira ordem: > z1.micv <- diff(micv) > z1.micv Series: Start = 2 End = 114 Frequency = 1 [1] 0.9 1.0 1.0 0.7 1.1 0.6 1.2 1.9 0.9 0.8 [11] 1.2 1.8 1.6 2.5 2.1 0.6 1.9 1.2 1.3 0.8 [21] 1.1 1.3 0.9 2.2 1.5 1.0 1.3 0.7 1.2 2.5 [31] 1.9 1.8 2.0 1.0 0.4 1.4 1.3 1.9 2.1 1.0 [41] 1.0 1.4 1.3 1.6 1.5 1.2 0.7 1.2 4.8 5.9 [51] 7.4 2.9 2.0 3.5 3.1 2.7 2.8 3.8 4.1 5.0 [61] 4.4 2.4 4.2 3.7 6.2 4.0 7.0 4.0 4.0 4.0 [71] 3.0 8.0 13.0 5.0 7.0 7.0 5.0 5.0.0 8.0 5
mm.micv 0 200 300 400 500 600 700 0 20 40 60 80 0 Figura 3: Gráfico do ajuste por médias móveis para T t. [81] 7.0 5.0 8.0 11.0 14.0 16.0 16.0 8.0.0 7.0 [91] 7.0 8.0 9.0 12.0 13.0 7.0 18.0 12.0 9.0 15.0 [1] 25.0 23.0 14.0 14.0 16.0 15.0 11.0 25.0 14.0 40.0 [111] 24.0 15.0 32.0 Na Figura 4 temos o gráfico de Z t. Analisando o gráfico e os dados puros fica claro que a série não é estacionária, já que as diferenças não centraram a série em zero e há um claro padrão crescente. E12p81. Utilize o método lowess, com p = 0.3 e 0.6, para estimar a tendência das séries A 7 - Temperatura e Umidade do Ar na Cidade de São Paulo. Na Figura 5 temos os gráficos dos ajustes de Lowess pedidos. Observase o efeito da escolha do parâmetro p na suavidade do ajuste, a dizer, quanto mais próximo de 1, mais suave o ajuste. Em particular o ajuste com p = 0.6 para a série Umidade parece indicar na escala utilizada que não há tendência significativa, enquanto para a série Temperatura, ambos os gráficos indicam um forte padrão de tendência. E22p84. Considere a Série de Consumo de Gasolina da Tabela 3.14: (a) baseado em uma inspeção visual da série, sugira um modelo apropriado para Z t ; Começamos observando na Figura 6, o gráfico da série em questão. Pela inspeção desse gráfico fica claro que há tanto um componente 6
z1.micv 0 20 30 40 0 20 40 60 80 0 Figura 4: Gráfico de Z t. de tendência quanto um sazonal, associado ao ano. O componente sazonal aparenta ser constante. Propomos então um modelo do tipo: Z ij = T ij + S j + a ij, i = 1,..., 14, j = 1, 2, 3, 4 onde o indice i representa o ano, o índice j o trimestre, e a ij é um ruído branco. Em particular, vamos utilizar um modelo de sazonalidade determinística, com efeito de tendência polinomial de grau m, e efeito sazonal representado através de variáveis dummy: T t = m β j t j e S t = j=0 4 α j D jt, onde: 1, se o período t corresponde ao trimestre j, D jt = 1, se o período t corresponde ao trimestre 4, 0, caso contrário, j = 1,..., 4. (b) estime as componentes que forem postuladas no modelo; Comecemos tomando m = 1, ou seja, um efeito de tendência linear simples. Ajustemos então o modelo de regressão linear múltipla correspondente a: j=1 7
Umidade, p=0.3 Umidade, p=0.6 umidade 60 70 80 90 umidade 60 70 80 90 0 0 200 300 0 0 200 300 Temperatura, p=0.3 Temperatura, p=0.6 temperatura 5 15 20 temperatura 5 15 20 0 0 200 300 0 0 200 300 Figura 5: Gráfico dos ajustes de Lowess com p = 0.3 e 0.6, para as séries A 7. Z t = β 0 + β 1 t + 4 α j D jt + a t, j=1 com os comandos abaixo obtemos esse ajuste: > t <- 1:length(cons) > trimestre <- t%%4 > trimestre <- ifelse(trimestre == + 0, 4, trimestre) > trimestre <- factor(trimestre) > z <- lm(cons ~ t + trimestre, contrasts = list(trimestre = contr.sum)) > summary(z) Call: lm(formula = cons ~ t + trimestre, contrasts = list(trimestre = contr.sum)) Residuals: Min 1Q Median 3Q -0.12496-0.02349-0.00163 0.02377 Max 0.08591 8
cons 1.4 1.6 1.8 2.0 2.2 2.4 2.6 1960 1962 1964 1966 1968 1970 1972 1974 Figura 6: Gráfico da série de Consumo de Gasolina. Coefficients: Estimate Std. Error (Intercept) 1.319191 0.0168 t 0.022681 0.000338 trimestre1-0.092783 0.009453 trimestre2 0.028965 0.009441 trimestre3 0.087142 0.009441 t value Pr(> t ) (Intercept) 119.19 < 2e-16 *** t 67. < 2e-16 *** trimestre1-9.81 2.4e-13 *** trimestre2 3.07 0.0034 ** trimestre3 9.23 1.8e-12 *** --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 Residual standard error: 0.0408 on 51 degrees of freedom Multiple R-Squared: 0.989, Adjusted R-squared: 0.988 F-statistic: 1.18e+03 on 4 and 51 DF, p-value: <2e-16 Na Figura 7 temos os gráficos de diagnósticos do modelo. Pelo gráfico de resíduos vs. ajustados fica evidente uma clara tendência quadrática, o que sugere o ajuste do modelo com m = 2, para ver se essa associação desparece. Assim, temos o novo modelo: 9
Residuals vs Fitted Normal Q Q Residuals 0.15 0.05 0.05 1 54 1.2 1.6 2.0 2.4 Standardized residuals 3 1 1 2 1 54 2 1 0 1 2 Fitted values Theoretical Quantiles Standardized residuals 0.0 0.5 1.0 1.5 1 Scale Location 54 Standardized residuals 3 1 1 2 Residuals vs Leverage Cook s distance 1 54 1.2 1.6 2.0 2.4 Fitted values 0.00 0.04 0.08 0.12 Leverage Figura 7: Gráfico de diagnósticos do modelo 1 proposto ajustado pelos comados: Z t = β 0 + β 1 t + β 2 t 2 + 4 α j D jt + a t, j=1 > z2 <- update(z,. ~ t + I(t^2) + +.) > summary(z2) Call: lm(formula = cons ~ t + I(t^2) + trimestre, contrasts = list(trimestre = contr.sum Residuals: Min 1Q Median 3Q -0.13360-0.037 0.00342 0.01986 Max 0.04552 Coefficients: Estimate Std. Error (Intercept) 1.38e+00 1.33e-02 t 1.67e-02 1.07e-03
I(t^2) 1.05e-04 1.83e-05 trimestre1-9.29e-02 7.40e-03 trimestre2 2.91e-02 7.39e-03 trimestre3 8.72e-02 7.39e-03 t value Pr(> t ) (Intercept) 3.76 < 2e-16 *** t 15.53 < 2e-16 *** I(t^2) 5.77 4.9e-07 *** trimestre1-12.56 < 2e-16 *** trimestre2 3.94 0.00026 *** trimestre3 11.81 4.4e-16 *** --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 Residual standard error: 0.0319 on 50 degrees of freedom Multiple R-Squared: 0.994, Adjusted R-squared: 0.993 F-statistic: 1.55e+03 on 5 and 50 DF, p-value: <2e-16 Residuals vs Fitted Normal Q Q Residuals 0.15 0.05 0.05 45 56 Standardized residuals 4 2 0 1 2 45 56 1.4 1.8 2.2 2.6 2 1 0 1 2 Fitted values Theoretical Quantiles Standardized residuals 0.0 0.5 1.0 1.5 2.0 Scale Location 45 56 Standardized residuals 5 3 1 1 2 Residuals vs Leverage 45 56 Cook s distance 0.5 1 1.4 1.8 2.2 2.6 Fitted values 0.00 0.05 0. 0.15 0.20 Leverage Figura 8: Gráfico de diagnósticos do modelo 2 proposto Na Figura 8 temos os gráficos de diagnósticos do modelo com o efeito quadrático em t. Vemos que a associação que havia entre os resíduos e os valores ajustados desapareceu, indicando que o modelo está melhor ajustado. Fora a presença de um outlier para t =, o modelo não parece aparentar fugas das suposições. Note-se ainda que o coeficiente de determinação subiu de 98% para 99%, com m = 2. 11
Df Sum Sq Mean Sq F value Pr(>F) t 1 7.61 7.61 7474.82 0.0000 I(t 2 ) 1 0.03 0.03 32.65 0.0000 trimestre 3 0.25 0.08 80.75 0.0000 Residuals 50 0.05 0.00 Tabela 1: Análise de variância para as componentes do modelo (c) teste a existência dessas componentes; Dado que o modelo com efeito quadrático em t (m = 2), apresentou um ajuste razoável, podemos testar a existência do efeito das componentes diretamente através da estatística F pela tabela de análise de variância. Vide a Tabela 1. Logo, pela magnitude dos p-valores, concluímos que todas as componentes consideradas são significantes. Na Figura 9, temos o gráfico da série e os valores ajustados, mostrando a bondade do ajuste. cons 1.4 1.6 1.8 2.0 2.2 2.4 2.6 1960 1962 1964 1966 1968 1970 1972 1974 Figura 9: Gráfico da série e do modelo 2 ajustado. Sobre A versão eletrônica desse arquivo pode ser obtida em http://www.feferraz. net 12
Copyright (c) 1999-2005 Fernando Henrique Ferraz Pereira da Rosa. É dada permiss~ao para copiar, distribuir e/ou modificar este documento sob os termos da Licença de Documentaç~ao Livre GNU (GFDL), vers~ao 1.2, publicada pela Free Software Foundation; Uma cópia da licença em está inclusa na seç~ao intitulada "Sobre / Licença de Uso". 13