El Test o Prueba de Dickey Fuller es una forma para determinar si existen raíces unitarias en las series de tiempo y por tanto comprobar la existencia de ESTACIONARIEDAD.

En este tutorial vamos a explicar teóricamente cómo se crea la prueba,su sentido, y luego haremos un ejemplo práctico usando las funciones de R.

Además pinchando en el botón puedes descargar el esquema-resumen que uso en el vídeo. También más abajo tienes el código R.

Codigo R

#video dickey fuller

#install.packages(«quantmod»)
library(quantmod)
#install.packages(«tseries»)
library(tseries)
#install.packages(«fImport»)
library(fImport)

library(«httr»)

library(RCurl)

library(rjson)
#install.packages(«parsedate»)
library(parsedate)
require(tseries)

library(urca)

getSymbols(«LTC-USD»,quote=»Close»,from =»2016-01-01″,periodicity = «daily»)
getSymbols(«BTC-USD»,quote=»Close»,from =»2016-01-01″,periodicity = «daily»)
getSymbols(«ETH-USD»,quote=»Close»,from =»2016-01-01″,periodicity = «daily»)
getSymbols(«THETA-USD»,quote=»Close»,from =»2016-01-01″,periodicity = «daily»)

getSymbols(«ADA-USD»,quote=»Close»,from =»2016-01-01″,periodicity = «daily»)
getSymbols(«ETH-USD»,quote=»Close»,from =»2016-01-01″,periodicity = «daily»)


plot(`BTC-USD`[,4],type=»l»)
plot(`ETH-USD`[,4],type=»l»)
plot(`LTC-USD`[,4],type=»l»)

plot(`ADA-USD`[,4],type=»l»)
plot(`THETA-USD`[,4],type=»l»)

 

#### TEST DE DICKEY FULLER STANDARD


p_litecoin<- na.omit(`LTC-USD`[,4])

adf.test(p_litecoin,k=0) #type 2 cont +tend


?adf.test


# número de datos 1982 +500
# valor critico -3.413 al 5%
# valor t -2.7863


#compara el valor critico con el t

# t> v_crit

#Prueba de Dickey-Fuller


#Con intercepto y constante

y=ur.df(p_litecoin,type=»trend»,lags=0)
summary(y)

y@teststat
y@cval

?ur.df

### retornos la de serie

d_litecoin<- na.omit(diff(log(p_litecoin)))

plot(d_litecoin,type=»l»)

y_ret=ur.df(d_litecoin,type=»trend»,lags=0)
summary(y_ret)

adf.test(d_litecoin,k=0)

#con intercepto


y_intercept=ur.df(p_litecoin, type=»drift»,lags=0)
summary(y_intercept)


#Sin tendencia y sin intercepto

y_nada=ur.df(p_litecoin, type=»none»,lags=0)
summary(y_nada)