Función de la tendencia de una serie de tiempo
La siguiente función regresa la tendencia de una serie de tiempo contenida en un objeto de clase ts, así como su grafica a través del tiempo. La función sólo toma dos parámetros:
Serie: la cual es una serie de tiempo.
p: los cuales son el número de pasos con los que se quiere calcular las medias móviles.
El código de la función es el siguiente:
grafica_tendencia<-function(serie,p) {
if(class(serie)=="ts"){
serie<-as.numeric(serie)
medmov<-c()
for (i in 1:floor(length(serie)/p)) {
medmov[i]<-mean(serie[(p*(i-1)):(p*i)] %>% t() %>% as.vector(), na.rm = T)
}
if(medmov[1]<medmov[length(medmov)]){tendencia <-"La tendencia es creciente"
} else if(medmov[1]>medmov[length(medmov)]){tendencia <- "La tendencia es decreciente"
}else{ tendencia<-"La tendencias es constante"}
g1<-ggplot()+geom_line(aes(x=c(1:length(serie)), y=serie), color="#FA8072",size = 1)+
geom_smooth(aes(x=seq(from=round(p/2), to=length(serie), by=p), y=medmov), color="#DA70D6", size =2)+
geom_point(aes(x=c(1:length(serie)), y=serie), size = 2, pch = 21, colour= "#CD5C5C",
bg = "#CD5C5C" )+ labs(x="Tiempo", y="Serie", title = "Serie de Tiempo")+
theme_light()
return(list(g1, tendencia))
}else{
stop('class(s1) is not ts')
}
}
Ejemplos
A continuacion se presentan tres ejemplos usando distintas bases de datos que se encuentran en el paquete ‘datasets’ de R.
Ejemplo 1
La primer base usada es “UKDriverDeaths”, la cual es una serie de tiempo que muestra los totales mensuales de conductores de automóviles en Gran Bretaña que murieron o resultaron gravemente heridos desde enero de 1969 hasta diciembre de 1984.
grafica_tendencia(UKDriverDeaths, 10)
## [[1]]
##
## [[2]]
## [1] "La tendencia es decreciente"
Ejemplo 2
La segunda base usada es “AirPassengers”, la cual es una serie de tiempo que contiene los de la aerolínea Box & Jenkins, totales mensuales de pasajeros de aerolíneas internacionales, de 1949 a 1960.
grafica_tendencia(AirPassengers,9)
## [[1]]
##
## [[2]]
## [1] "La tendencia es creciente"
Ejemplo 3
En el último ejemplo se utilizó la base de datos “USAccDeaths”, que es una serie de tiempo que muestra los totales mensuales de muertes accidentales en los Estados Unidos. Que van desde Enero de 1973 hasta 1978.
grafica_tendencia(USAccDeaths,7)
## [[1]]
##
## [[2]]
## [1] "La tendencia es decreciente"