Sei sulla pagina 1di 7

#Series de tiempo con RStudio.

#Ejercicio con base de datos "uschange" desde el ambiente de #RStudio.


Pero antes, hay que cargar los paquetes necesarios #para la práctica:

library(ggplot2)
library(ggfortify)
library(tseries)
library(forecast)
library(githubinstall)
library(fpp2)
library(lmtest)

#NOTA: en caso de que salga un mensaje de este estilo “Error in


#library(“ggplot2”): there is no package called ‘ggplot2’”, #entonces hay
que instalar el paquete solicitado. Para ello hay #hacer click en la opción
Tools, ubicado en la barra de menú #principal de RStudio
#Una vez instalado el paquete hay que volver a llamarlo con el comando
#library(ggplot2), etc.

#Procedemos a llamar el archivo de datos "uschange", que contiene


información sobre los cambios porcentuales del #consumo personal,
ingreso personal disponible, producción, ahorros y desempleo en EEUU,
desde 1960 hasta 2016. Es una información trimestral.

data("uschange") #carga el archivo de datos


help("uschange") #proporciona información sobre la base de datos
View(uschange) #permite ver los datos como un dataframe
class(uschange) #indica si la información es una matriz, dataframe
mode(uschange) #indica que la información es de tipo numérica
str(uschange) #indica la estructura de la información
start(uschange) #año o momento en el que empieza la información
end(uschange) #año en el que termina
frequency(uschange) #frecuencia con que están tomados los datos
summary(uschange) #resumen de los datos
#Gráfico con todas las variables de la base de datos

plot(uschange)

#Gráfico de una sola variable de la muestra. Ejm, Consumo

plot(uschange[,c("Consumption")])

#Gráfico del Consumo con el Ingreso

plot(uschange[, c("Consumption", "Income" )], lty = c(3,1), plot.type =


"single", ylab ="")

legend("topleft", legend = c("consumo","ingreso"), lty = c(3,1), bty = "n")

#Gráfico del Consumo con el Ingreso, diferente

autoplot(uschange[,c("Consumption","Income")]) + ylab("% change") +


xlab("Year")

#Descomposición de la serie de tiempo


#Dos formas:
#Descomposición aditiva, donde se supone que los componentes se
#relacionan aditivamente, por lo que la serie original resulta ser la suma
#de todos sus componentes. Bajo este supuesto, todos los componentes
#vienen expresados en las mismas unidades que la serie original.
# Y[t]=T[t]+S[t]+I[t]

decompA <- decompose(uschange[,c("Consumption")], type="additive")

plot(decompA)

#Descomposición de todas las variables de la base de datos

decompus<- decompose(uschange, type="additive")

autoplot(decompus)

#Descomposición multiplicativa, donde se supone que los componentes


#actúan entre sí de forma multiplicativa, por lo que la serie original
#resultará de la multiplicación de sus componentes.

# Y[t]=T[t]*S[t]*I[t]
decompM <- decompose(uschange[,c("Consumption")],
type="multiplicative")

plot(decompM)

#Debido a la forma en que incrementa la serie, se puede inferir que una


#descomposición multiplicativa resulta mejor para esta serie.

#TAREA: DESCOMPONER LAS OTRAS VARIABLES DE LA BASE DE DATOS DE


#FORMA ADITIVA Y MULTIPLICATIVA Y EXPLIQUE LAS POSIBLES
#DIFERENCIAS ENTRE LAS DOS FORMAS
#NOTA: use los comandos sin modificar. Solo se puede modificar lo que
#está antes de los signos de asignación (<-) y lo que está en comillas

###Prueba de estacionariedad de la Serie temporal

#Una serie es estocástica y estacionaria si su media, varianza son


#constantes en el tiempo y si el valor de la covarianza entre dos periodos
#depende sólo de la distancia o rezago entre estos dos periodos, y no del
#tiempo en el cual se calculó la covarianza. Lo ideal es que la serie de
#tiempo sea estacionaria, de lo contrario estaríamos ante un posible
#problema de correlación espuria.

#Dos métodos para verificar la estacionariedad de una serie temporal

#1) Mediante el gráfico de Autocorrelación

autoplot(acf(uschange[,c("Consumption")],plot=FALSE))+labs(title="Correl
ograma de Consumo de 1970-2016")

#1) Mediante el test Dickey-Fuller aumentado (ADF)


##La hipótesis nula del test es "la serie es no estacionaria"
##La hipótesis alternativa es "la serie es estacionaria"
#Como regla de rechazo, si el p-valor es menor que 5% (0.05), tenemos
#evidencia contra la hipótesis nula, de modo que se rechaza la hipótesis
#nula en favor de la alternativa y nuestra serie es estacionaria. Eso es lo
deseable.

adf.test(uschange[,c("Consumption")])
#TAREA: VERIFICAR LA ESTACIONARIEDAD DE LAS OTRAS VARIABLES DE LA
BASE DE DATOS

##Modelo de regresión lineal con el Consumo como variable dependiente

modelo<-tslm(Consumption~Income+Production+Unemployment,
data=uschange)

summary(modelo)

#obtener los residuos del modelo para realizar las pruebas

residuos<-modelo$residuals

#Gráficos de los residuos

checkresiduals(modelo)

#Detectar heteroscedasticidad mediante la prueba de Breusch-Pagan

bptest(modelo)

#¿Se rechaza o no se rechaza la H0 del test?


#Detectar Autocorrelación, mediante la prueba de Durbin-Watson

dwtest(modelo)
# ¿Existe autocorrelación en los residuos?

#Estacionariedad de los residuos


adf.test(residuos)

#¿Son estacionarios los residuos?

#TAREA: ESTIMAR UN MODELO DE REGRESIÓN LINEAL CON TODAS LAS


VARIABLES DE LA BASE DE DATOS “uschange” E INTERPRETAR LOS
RESULTADOS. VERIFICAR LA EXISTENCIA DE HETEROSCEDASTICIDAD,
AUTOCORRELACIÓN Y ESTACIONARIEDAD.