Series de Tiempo de Univariadas

Author

George Steven Vega

Published

03-2023

Series de tiempo

Una serie de tiempo esta definida como una coleccion de variables aleatorias \({X_t}\) indexadas en el tiempo. (Wayne A. Woodward 2022)

Proceso estocastico

Una coleccion de variables aleatorias se refiere generalmente como un proceso estocastico. Cuando el conjunto indexado es tiempo, nos podemos referir al proceso estocastico como una serie de tiempo. Cada tiempo \(t\) , esta asociado con su propia variable aleatoria \({X_t}\) (Wayne A. Woodward 2022)

Parametros de una serie de tiempo

Debido a que cada tiempo tiene su propia variable aleatoria \({X_t}\) . estas variables tienen su propia distribucion y es asi como poseen sus propios parametros(Wayne A. Woodward 2022)

  • La variable aleatoria \({X_t}\) tiene media \(\mu_t\)

  • La variable aleatoria \({X_t}\) tiene varianza \(\sigma^2_{X_t}\)

  • Entre dos variables aleatorias \(X_{t_1}\) y \(X_{t_2}\) existe covarianza \(\gamma_{X_{t_1},X_{t_2}}\) y correlacion \(\rho_{X_{t_1},X_{t_2}}\), en el caso de una serie de tiempo esto se denomina autocovarianza y autocorrelacion respectivamente

Nota:

Si \(t_1=t_2\) entonces \(\rho_{X_{t_1},X_{t_2}}\)=\(\rho_{X_{t_1},X_{t_1}}=1\)

Una realizacion de la serie de tiempo \({\{X_t\}}\), es un conjunto de salidas especificas del fenomeno aleatorio, normalmente la realizacion de \(n\) salidas se denota utilizando la notacion \(x_t\) donde \(t=1,..., n\)

Se tiene la serie de tiempo\({\{X_t\}}\) de la cual se tienen \(m\) realizaciones inpendientes \(x^{(1)}_t, x^{(2)}_t,...,x^{(m)}_t\), donde \(t=1,..., n\) Asi, \(x^ {(i)}_{1}, i=1,...,m\) son los varoles observados de la muestra aleatoria de la variable aleatoria \(X_{1}\), es decir La primera realizacion de cada observacion.

Series de tiempo estacionarias.

En la mayoria de escenarios donde se tienen series de tiempo de manera general se encuentra que solo existe una sola realizacion disponible para analisis, por lo que no se piede devolver el tiempo y obtener otras realizaciones. Si bien una cantidad grande de realizaciones poseen gran cantidad de informacion, a menudo es comun. La series de tiempo estacionarizas son un tipo de series de tiempo de las cuales se puede realizar un analisis significativo aun teniendo una sola relizacion.

En las series de tiempo estacionarias parece haber un tipo de equilibrio en el que el comportamiento basico de la serie no cambia con el tiempo. Teniendo en cuenta lo anterior la estacionariedad de una serie de tiempo esta definida si:

  1. \(\mu_{X_t}=\mu\) media contastante para todos los \(t\)

  2. \(\sigma^{2}_{X_t}=\sigma^{2}<\infty\) Varianza constante y finita para todos los t

    Los procesos que satisfacen esta condicion tienen un variabilidad que no cambia con el tiempo

  3. \(\gamma_{X_{t_{1}},X_{t_{2}}}\) y \(\rho_{X_{t_{1}},X_{t_{2}}}\) dependen solo de \(t_2 - t_1\)

    La autocorrelacion entre \(X_{t_{1}}\) y \(X_{t_{2}}\) depende en que tan lejos estan \(t_1\) y $t_2$$, no donde estan ellas en el tiempo. Si se satisface esta condicion se podria referiri a la autocovarianza y la autocorrelacion en el resago \(k\), donde \(k\) se define como $t_2-t_1$. Ademas sigue la propiedad que \(\gamma_k=\gamma_{-k}\) y \(\rho_{k}=\rho_{-k}\)

Proceso estocastico estacionario en el sentido debil

Proceso estocastico estacionario en el sentido estricto

Proyecto

Standar and Purse 500

list.of.packages <- c("zoo", "xts", "quantmod")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
lapply(list.of.packages, require, character.only = TRUE)
Loading required package: zoo

Attaching package: 'zoo'
The following objects are masked from 'package:base':

    as.Date, as.Date.numeric
Loading required package: xts
Loading required package: quantmod
Loading required package: TTR
Registered S3 method overwritten by 'quantmod':
  method            from
  as.zoo.data.frame zoo 
precios <- function(activos,fechai,fechaf,periodicidad){
    precios <- xts()
    for(i in 1:length(activos)){
        tmp <- Ad(getSymbols(activos[i],from=fechai,to=fechaf,periodicity=periodicidad,auto.assign=FALSE))
        precios <- cbind(precios,tmp)
        precios <- na.approx(precios,na.rm=FALSE)
    }
    colnames(precios) <- activos
    tclass(precios) <- "Date"
    return(precios)
}

## Acciones seleccionadas
activos <- c("^GSPC")
fechai <- '1943-08-19'
fechaf <- '2023-02-03'
periodicidad <- "monthly"   

precios.hist <- precios(activos,fechai,fechaf,periodicidad)
retornos <- diff(log(precios.hist))[-1,]

Visualización de datos

library(TSstudio)
plot(as.ts(precios.hist))

preciosts=ts(precios.hist,start=c(1981,09),frequency = 12)
plot(preciosts)
plot.ts(preciosts)

acf(preciosts, ci.type="ma")

acf(preciosts, type="partial")

str(preciosts)
 Time-Series [1:458, 1] from 1982 to 2020: 180 181 181 180 190 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr "^GSPC"
 - attr(*, "index")= num [1:458] 4.73e+08 4.76e+08 4.78e+08 4.81e+08 4.84e+08 ...
  ..- attr(*, "tclass")= chr "Date"
  ..- attr(*, "tzone")= chr "UTC"
head(time(preciosts),20)
 [1] 1981.667 1981.750 1981.833 1981.917 1982.000 1982.083 1982.167 1982.250
 [9] 1982.333 1982.417 1982.500 1982.583 1982.667 1982.750 1982.833 1982.917
[17] 1983.000 1983.083 1983.167 1983.250
head(cycle(preciosts),12)
 [1]  9 10 11 12  1  2  3  4  5  6  7  8
frequency(preciosts)
[1] 12
deltat(preciosts)
[1] 0.08333333
ts_info(preciosts)
 The preciosts series is a ts object with 1 variable and 458 observations
 Frequency: 12 
 Start time: 1981 9 
 End time: 2019 10 
TSstudio::ts_plot(preciosts,title = "",slider=TRUE)
#install.packages("dygraphs")
library(dygraphs)
Warning: package 'dygraphs' was built under R version 4.2.3
dygraph(preciosts)%>%dyRangeSelector()

Análisis de Tendencias.

par(mfrow=c(2,2))
plot(preciosts, log = "y")
plot(preciosts, log = "xy")

summary(fit<-lm(preciosts~time(preciosts), data=preciosts,na.action = NULL))

Call:
lm(formula = preciosts ~ time(preciosts), data = preciosts, na.action = NULL)

Residuals:
     Min       1Q   Median       3Q      Max 
-1038.00  -273.27   -29.63   227.33  1925.90 

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)     -165020.33    4062.09  -40.62   <2e-16 ***
time(preciosts)      83.16       2.03   40.96   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 478.7 on 456 degrees of freedom
Multiple R-squared:  0.7863,    Adjusted R-squared:  0.7858 
F-statistic:  1678 on 1 and 456 DF,  p-value: < 2.2e-16
plot(preciosts) + abline(fit, col = "blue")

integer(0)
x<-preciosts-predict(fit)
plot(x, main="Serie sin tendencia")

summary(fit1<-lm(log10(preciosts)~time(preciosts), data=preciosts,na.action = NULL))

Call:
lm(formula = log10(preciosts) ~ time(preciosts), data = preciosts, 
    na.action = NULL)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.28912 -0.06060 -0.01812  0.04727  0.29429 

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)     -58.496825   0.902409  -64.82   <2e-16 ***
time(preciosts)   0.030738   0.000451   68.15   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.1064 on 456 degrees of freedom
Multiple R-squared:  0.9106,    Adjusted R-squared:  0.9104 
F-statistic:  4644 on 1 and 456 DF,  p-value: < 2.2e-16
plot(preciosts, log = "y")+ abline(fit1, col="red")

integer(0)
x1<-log10(preciosts)-predict(fit1)
plot(x1, main="Serie en escala logaritmica removiendo tendencia")

acf(x1, lag.max = 457)

log

Descomposición

Filtros moviles

descom.precios.ts=decompose(preciosts)
plot(descom.precios.ts)

CPIH ANNUAL RATE

library(parsedate)
Warning: package 'parsedate' was built under R version 4.2.3
CPIH1 <- read.csv("CPIH1.csv")
Month<-parsedate::parse_date(CPIH1$CPIHMonth)
CPIH <-data.frame(Month=Month,CPIH=CPIH1$CPIHMonthly)
plot(as.ts(CPIH$CPIH))

CPIHts=ts(CPIH$CPIH,start=c(1989,01),frequency = 12)
plot(CPIHts)
plot.ts(CPIHts)

acf(CPIHts, ci.type="ma")

acf(CPIHts, type="partial")

str(CPIHts)
 Time-Series [1:409] from 1989 to 2023: 5.7 5.8 5.9 5.6 5.9 5.8 5.7 5.5 5.7 5.8 ...
head(time(CPIHts),20)
 [1] 1989.000 1989.083 1989.167 1989.250 1989.333 1989.417 1989.500 1989.583
 [9] 1989.667 1989.750 1989.833 1989.917 1990.000 1990.083 1990.167 1990.250
[17] 1990.333 1990.417 1990.500 1990.583
head(cycle(CPIHts),12)
 [1]  1  2  3  4  5  6  7  8  9 10 11 12
frequency(CPIHts)
[1] 12
deltat(CPIHts)
[1] 0.08333333
ts_info(CPIHts)
 The CPIHts series is a ts object with 1 variable and 409 observations
 Frequency: 12 
 Start time: 1989 1 
 End time: 2023 1 
#plot(as.ts(CPIH.Yearly))
#plot(as.ts(CPIH.Q))

CPIH CPIH Info

References

:::

References

Wayne A. Woodward, Stephen Robertson, Bivin Philip Sadler. 2022. Time Series for Data Science: Analysis and Forecasting. Chapman & Hall/CRC Texts in Statistical Science. CRC Press.