Monitor: Leandro Valter
leandro.vvalter@gmail.com
Professor: Silvio fernando
profsilviofernando@gmail.com
Universidade Estadual da Paraíba
Centro de Ciência e Tecnologia
Departamento de Estatística
library(TSA)
O arquivo wages dispõe dos valores mensais das médias dos salários médios por hora (em dólares) para os trabalhadores nos EUA no período de Julho de 1981 até Junho de 1987.
data(wages)
plot(wages,ylab='Média mensal dos salários',type='o')
O gráfico mostra uma tendência crescente da série,ou seja, a cada mês a média cresce alterando o nível da série
horas.modelolm<-lm(wages~time(wages));horas.modelolm
##
## Call:
## lm(formula = wages ~ time(wages))
##
## Coefficients:
## (Intercept) time(wages)
## -549.0061 0.2811
summary(horas.modelolm)
##
## Call:
## lm(formula = wages ~ time(wages))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.23828 -0.04981 0.01942 0.05845 0.13136
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.490e+02 1.115e+01 -49.24 <2e-16 ***
## time(wages) 2.811e-01 5.618e-03 50.03 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.08257 on 70 degrees of freedom
## Multiple R-squared: 0.9728, Adjusted R-squared: 0.9724
## F-statistic: 2503 on 1 and 70 DF, p-value: < 2.2e-16
y=rstudent(horas.modelolm)
O ajuste parece explicar bem os dados, tem-se um coeficiente de determinação (\(R^{2}\)) de 97%
plot(y, x=as.vector(time(wages)),type='l',ylab='Resíduos Padronizados')
abline(h =c(-2,2),col="red")
points(y, x=as.vector(time(wages)),pch=as.vector(season(wages)))
Os resíduos são muito suaves para parecerem aleatórios.
horas.modelolm2=lm(wages~time(wages)+I(time(wages)^2))
summary(horas.modelolm2)
##
## Call:
## lm(formula = wages ~ time(wages) + I(time(wages)^2))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.148318 -0.041440 0.001563 0.050089 0.139839
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -8.495e+04 1.019e+04 -8.336 4.87e-12 ***
## time(wages) 8.534e+01 1.027e+01 8.309 5.44e-12 ***
## I(time(wages)^2) -2.143e-02 2.588e-03 -8.282 6.10e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.05889 on 69 degrees of freedom
## Multiple R-squared: 0.9864, Adjusted R-squared: 0.986
## F-statistic: 2494 on 2 and 69 DF, p-value: < 2.2e-16
y=rstudent(horas.modelolm2)
O modelo com o ajuste quadrático da tendência parece explicar melhor os dados, tem-se um coeficiente de determinação (\(R^{2}\)) de 98,6%
plot(y,x=as.vector(time(wages)),ylab='Resíduos Padronizados',type='o')
Os resíduos ainda são muito suaves para parecerem aleatórios.
Esboce as funções de autocorrelação para os modelos MA(2) com os seguintes parâmetros:
CUIDADO COM OS MODELOS MA! OS PARÂMENTROS TEM O SINAL TROCADO NA HORA DE PASSAR PARA O R!!
ACF=ARMAacf(ma=list(-.5,-.4),lag.max = 10)
plot(y=ACF[-1],x=1:10,xlab='Lag',ylab='ACF',type='h'); abline(h=0)
Calcule e esboce as funções de autocorrelação para cada um dos modelos AR(1) abaixo.
ACF=ARMAacf(ar=.7,lag.max=10)
plot(y=ACF[-1],x=1:10,xlab='Lag',ylab='ACF',type='h'); abline(h=0)
ACF=ARMAacf(ar=-0.7,lag.max=10)
plot(y=ACF[-1],x=1:10,xlab='Lag',ylab='ACF',type='h',ylim=c(-1,1)); abline(h=0)
Esboce as funções de autocorrelação para os modelos ARMA abaixo.
Modelos ARIMA não estacionários podem ser simulados através de modelos ARMA estacionários através de ‘integrações’. Use o R para simular uma variedade de IMA(1,1); IMA(1,2) com uma variedade de parâmetros. Perceba se há tendência estocástica nas séries simuladas.
ima1.1=arima.sim(model=list(order=c(0,1,1),ma=0.5),n=100)
plot(ima1.1,type='o',ylab='')
- \(IMA(1,2)\)
ima1.2=arima.sim(model=list(order=c(0,1,2),ma=c(0.5,-0.8)),n=100)
plot(ima1.2,type='o',ylab='')
Repita o exercício anterior com os modelos ARI(1,1) e ARI(2,2).
CUIDADO COM OS MODELOS AR! OS PARÂMENTROS NÃO PODEM SOMAR 1
ari1.1=arima.sim(model=list(order=c(1,1,0),ar=0.5),n=100)
plot(ari1.1,type='o',ylab='')
ari2.2=arima.sim(model=list(order=c(2,2,0),ar=c(0.5,0.4)),n=100)
plot(ari2.2,type='o',ylab='')
Carregue o arquivo winnebago e resolva os itens abaixo:
data(winnebago)
plot(winnebago,type='o',ylab='Vendas mensais')
O “plot” mostra uma tendência crescente ao logo do tempo e parece que a variância não é constante ao longo do tempo.
AS TRASFORMAÇÕES VÃO SER ÚTEIS PARA SUAVIZAR A VARIAÇÃO DOS DADOS. CUIDADO COM O TRANSFORMAÇÃO, POIS DEPENDENDO DO TIPO DE DADO A TRANSFORMAÇÃO PODE SER INADEQUADA!!
plot(log(winnebago),type='o',ylab='Log(Vendas mensais)')
Com a transformação logarítmica a série parece suavizar a variância ao longo do tempo.
A DIFERENÇA NA SÉRIE SERVE PARA DEIXAR A SÉRIE EM UM COMPORTAMENTO ESTACIONÁRIO. NO MÁXIMO USE ATÉ A 2ª DIFERENÇA!!
plot(x=diff(log(winnebago)),xlab='Diferença dos Logs')
Após a 1ª diferença a série parece apresentar um comportamento estacionário.