med_mov <- function(x, unilateral = TRUE, r = 2){
v1 <- rep(NA, length(x))
if(unilateral == TRUE){
k <- 1
for(i in r:length(x)){
v1[i] <- mean(x[k:i])
k <- k+1 } }
else{
r1 <- ifelse(r%%2 == 0, r/2, (r-1)/2)
r2 <- ifelse(r%%2 == 0, (r/2-1), (r-1)/2)
for(i in (r1+1):(length(x)-r2)){
v1[i] <- mean(x[(i-r1):(i+r2)]) } }
return(v1)}
library(TSstudio) #Contiene bd USVSales
plot(USVSales, main = "Ventas mensuales totales de vehículos en USA",
ylab = "Miles de unidades",
xlab = "Año")
med_movma_uni1 <- med_mov(USVSales, r = 12, unilateral = TRUE)
ts_ma_uni1 <- ts(ma_uni1, start = 1976, frequency = 12)
ma_bi1 <- med_mov(USVSales, r = 12, unilateral = FALSE)
ts_ma_bi1 <- ts(ma_bi1, start = 1976, frequency = 12)
plot(USVSales, main = "Ventas mensuales totales de vehículos en USA",
ylab = "Miles de unidades",
xlab = "Año")
lines(ts_ma_uni1, col = "blue", lwd = 2)
lines (ts_ma_bi1, col = "red", lwd = 2)
¿Qué es un ciclo?: Pueden entenderse como eventos que se repiten a lo largo del tiempo y, por lo general, un ciclo comienza con un mínimo local de la serie y termina en el siguiente mínimo local, el cual a su vez es el punto de partida del siguiente ciclo. No necesariamente ocurren en intervalos de la misma longitud, y esta puede variar de ciclo a ciclo.
library(forecast)
plot(USgas, main = "Consumo de gas natural en USA",
ylab = "billones de pìes cúbicos",
xlab = "Año")
forecastggseasonplot(USgas, year.labels = TRUE, continuous = TRUE)
Es una variación repetida en la serie, que está relacionada con unidades de frecuencia de la serie (meses para una serie mensual). Por ejemplo los hábitos de consumo son diferentes a mitad de año que en diciembre, o los fines de semana se observan comportamientos diferentes a los que se observan en semana.
TSstudiots_seasonal(USgas, type = "box") #Esta función hace uso de plotly
ggseasonplot(USgas, polar = TRUE)
ts_heatmap(USgas, color = "Reds")
La base de datos pertenece a las estadísticas de cemento gris del dane, puede buscarla en el sitio, o descargarlas haciendo click AQUÍ.
library(readxl) #read_xlsx
library(dplyr)
library(zoo) #na.locf()
library(janitor) #clean_names
library(tidyr) #unite()
library(lubridate) #ym()
cemento <- read_xlsx("Anexos_ECG_may22.xlsx", sheet = 2, skip = 8) %>%
clean_names() %>% select(c(x1, x3, produccion, despachos_nacionales))
cemento$x1 <- na.locf(na.locf(cemento$x1), fromLast = TRUE) #LLenando NA de x1
cemento <- cemento %>% mutate(x1 = as.numeric(x1)) %>%
rename(year = x1, month = x3) %>%
unite(year, month, col = "fecha", sep = "-") %>%
mutate(fecha = ym(fecha)) %>% na.omit()
cemento_a6 <- read_xlsx("Anexos_ECG_may22.xlsx", sheet = 7, skip = 7) %>%
clean_names() %>% rename(depto = x3, year = x1, month = x2) %>%
mutate(year = as.numeric(year)) %>% na.omit() %>%
unite(year, month, col = "fecha", sep = "-") %>%
mutate(fecha = ym(fecha))
library(ggplot2)
cemento %>% ggplot(aes(x = fecha, y = produccion)) +
geom_line() + labs(y = "Producción (ton)") +
scale_x_date("fecha", date_breaks = "2 year")
cemento %>% ggplot(aes(x = fecha, y = despachos_nacionales)) +
geom_line() + labs(y = "Despachos nacionales (ton)") +
scale_x_date("fecha", date_breaks = "2 year")
cemento_a6 %>% filter(depto == "ANTIOQUIA") %>% na.omit() %>%
ggplot(aes(x = fecha, y = total)) + geom_line() +
labs(y = "Despachos totales (ton)",
title = "Despachos nacionales de cemento gris",
subtitle = "Departamento de Antioquia") +
scale_x_date("fecha", date_breaks = "2 year")
cemento_a6 %>% filter(depto == "BOLÍVAR") %>% na.omit() %>%
ggplot(aes(x = fecha, y = total)) + geom_line() +
labs(y = "Despachos totales (ton)",
title = "Despachos nacionales de cemento gris",
subtitle = "Departamento de Bolívar") +
scale_x_date("fecha", date_breaks = "2 year")