#===========================================+=================
# Gerando uma serie temporal ruído branco - Normal( mu, sig^2)

n   <- 200              # Tamanho da ST
mu  <- 5.0              # Média da normal 
sig <- 2.0              # Desvio-Padrão da Normal
x   <- rnorm(n,mu,sig)  # Gerando da normal
par(mfrow=c(2,2))       # 4 gráficos em uma janela
ts.plot(x)              # Gráfico da ST
acf(x,lag.max=20)       # Função de Autocorrelação
pacf(x,lag.max=20)      # Função de Autocorrelação Parcial

fit = lm(x~1)
plot(fit)
summary(fit)

#+============================================================
# Gerando uma serie temporal ruído branco - t-Student( nu )

n   <- 200              # Tamanho da ST
nu  <- 3.0              # Graus de Liberdade da t-Student
x   <- rt(n, nu)        # Gerando da t-Student
par(mfrow=c(2,2))       # 4 gráficos em uma janela
ts.plot(x)              # Gráfico da ST
acf(x,lag.max=20)       # Função de Autocorrelação
pacf(x,lag.max=20)      # Função de Autocorrelação Parcial

fit = lm(x~1)
plot(fit)
summary(fit)


#=============================================================
# Gerando um passeio aleatório - Normal( mu, sig^2)

n   <- 200              # Tamanho da ST
mu  <- 0.0              # Média da normal 
sig <- 2.0              # Desvio-Padrão da Normal
x   <- rnorm(n,mu,sig)  # Gerando da normal 
s   <- rep(0,(n+1))
for( i in 1:n)
{
 s[i+1] <- s[i] + x[i] 
}
par(mfrow=c(2,2))
ts.plot(s)              # Gráfico da ST
acf(s,lag.max=20)       # Função de Autocorrelação
pacf(s,lag.max=20)      # Função de Autocorrelação Parcial

fit = ar(s)
fit
predict(fit,n.ahead=10)


#============================================================
# Modelos com tendência e sazonalidade

#============================================================
# Somente com tendência                 

x  <- uspop             # Populations Recorded by the US Census
par(mfrow=c(2,2))
ts.plot(x)              # Gráfico da ST
acf(x,lag.max=20)       # Função de Autocorrelação
pacf(x,lag.max=20)      # Função de Autocorrelação Parcial

#============================================================
m  <- length(x)
t  <- seq(1,m,1)
t2 <- t^2

fit1  <- lm( x ~ t )
fit1$coef 
AIC(fit1)

fit2  <- lm( x ~ t + t2)
fit2$coef
AIC(fit2) 

#============================================================
# Somente com sazonalidade 

library(MASS)
x  <- deaths            # Monthly Deaths from Lung Diseases in the UK
par(mfrow=c(2,2))
ts.plot(x)              # Gráfico da ST
acf(x,lag.max=20)       # Função de Autocorrelação
pacf(x,lag.max=20)      # Função de Autocorrelação Parcial
fit = ar(x,aic=T)
fit
fit$aic

predict(fit,n.ahead=10)

#============================================================
# Com tendência e sazonalidade 

x <- AirPassengers      # Monthly Airline Passenger Numbers 1949-1960
par(mfrow=c(2,2))
ts.plot(x)              # Gráfico da ST
acf(x,lag.max=20)       # Função de Autocorrelação
pacf(x,lag.max=20)      # Função de Autocorrelação Parcial

fit = ar(x)
fit

# Ajuste: Serie anual sunspots
plot(sunspot.year)
sunspot.ar <- ar(sunspot.year)
sunspot.ar$aic
sunspot.ar

predict(sunspot.ar, n.ahead=25)

#============================================================
# Removendo tendência: usando o método de médias moveis 


help("decompose")

# Série airpassengers
x  <- AirPassengers

# Método aditivo:
x.a<-decompose(x,type="addit")
x.a
plot(x.a)

# Método multiplicativo:
x.m<-decompose(x,type="mult")
x.m
plot(x.m)


ss <- decompose(y,type="additive")$seasonal
td <- decompose(y,type="additive")$trend
rm <- decompose(y,type="additive")$random

ts.plot( ss, type="o" )
ts.plot( td, type="l" )
ts.plot( rm, type="o" )
