-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1. Gráficos de series de tiempo.R
158 lines (108 loc) · 4.49 KB
/
1. Gráficos de series de tiempo.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#========================================#
#= Forecasting: Principles and Practice =#
#== Jose Rodney Menezes De la Cruz ==#
#========================================#
#### Cap 2 - Graficos de series temporales ####
# ===================================== #
#Paquetes que se utilizará
install.packages("ggplot2")
install.packages("fpp2")
install.packages("forecast")
install.packages("GGally")
library(forecast)
library(ggplot2)
library(fpp2)
library(GGally)
## 2.1: ts objetos ##
# ***************** #
# convertimos los datos a una serie de tiempo:
y <- ts(c(123,39,78,52,110), start=2012) #con frecuencia anual
# Observaciones con frecuencia mensual
y <- ts(z, start=2003, frequency=12)
#Frecuendia de Datos: (los casos mas comunes)
#--------------------------------------------
#Datos frecuencia
#Anual 1
#Trimestral 4
#Mensual 12
#Semanal 52
## 2.2: Gráficos de tiempo ##
# ************************* #
autoplot(melsyd[,"Economy.Class"]) +
ggtitle("Economy class passengers: Melbourne-Sydney") +
xlab("Year") +
ylab("Thousands")
autoplot(a10) +
ggtitle("Antidiabetic drug sales") +
ylab("$ million") +
xlab("Year")
## 2.3: Patrones de series de tiempo ##
# *********************************** #
# * Tendencia
# * Estacional
# * Cíclico
## 2.4: Parcelas estacionales ##
# **************************** #
# Grafica estacional.
ggseasonplot(a10, year.labels=TRUE, year.labels.left=TRUE) +
ylab("$ million") +
ggtitle("Seasonal plot: antidiabetic drug sales")
# Grafica estacional en coordenadas polares.
ggseasonplot(a10, polar=TRUE) +
ylab("$ million") +
ggtitle("Polar seasonal plot: antidiabetic drug sales")
## 2.5: Gráficos de subseries estacionales ##
# ***************************************** #
ggsubseriesplot(a10) +
ylab("$ million") +
ggtitle("Seasonal subseries plot: antidiabetic drug sales")
#Nota: Las líneas horizontales indican las medias para cada mes.
# Es especialmente útil para identificar cambios dentro de estaciones particulares.
## 2.6: Diagramas de dispersión ##
# ****************************** #
# Son útiles para explorar las relaciones entre series de tiempo.
# Comparar series individuales:
autoplot(elecdemand[,c("Demand","Temperature")], facets=TRUE) +
xlab("Year: 2014") + ylab("") +
ggtitle("Half-hourly electricity demand: Victoria, Australia")
# Comparar series una contra la otra:
qplot(Temperature, Demand, data=as.data.frame(elecdemand)) +
ylab("Demand (GW)") + xlab("Temperature (Celsius)")
# Comparar varias series individuales:
autoplot(visnights[,1:5], facets=TRUE) +
ylab("Number of visitor nights each quarter (millions)")
# Matrices de diagrama de dispersión:
GGally::ggpairs(as.data.frame(visnights[,1:5]))
## 2.7: Gráficos de retraso ##
# ************************** #
beer2 <- window(ausbeer, start=1992)
gglagplot(beer2)
#Nota: Aquí los colores indican el cuarto de la variable en el eje vertical.
#Las líneas conectan puntos en orden cronológico. La relación es muy positiva
#en los rezagos 4 y 8, lo que refleja la fuerte estacionalidad en los datos.
#La relación negativa observada para los rezagos 2 y 6 ocurre porque
#los picos (en Q4) se trazan contra los canales (en Q2)
## 2.8: Autocorrelación ##
# ********************** #
# función de autocorrelación o ACF o correlograma:
ggAcf(beer2)
# Tendencia y estacionalidad en parcelas ACF:
aelec <- window(elec, start=1980) #cargamos datos
autoplot(aelec) + xlab("Year") + ylab("GWh") #graficamos serie de tiempo
ggAcf(aelec, lag=48) #ACF
#Nota: La lenta disminución en el ACF a medida que aumentan los retrasos se debe a la tendencia,
#mientras que la forma "festoneada" se debe a la estacionalidad.
## 2.9: Ruido blanco ##
# ******************* #
#Nota: Las series de tiempo que no muestran autocorrelación se llaman ruido blanco
set.seed(30) #ponemos semilla
y <- ts(rnorm(50)) #creamos data set
autoplot(y) + ggtitle("White noise") #graficamos datos
ggAcf(y) #ACF
#Nota:
#Para las series de ruido blanco, esperamos que cada autocorrelación sea cercana a cero.
#Para una serie de ruido blanco, esperamos que el 95% de los picos en el ACF
#se encuentren dentro de donde es la longitud de la serie de tiempo.
#Si uno o más picos grandes están fuera de estos límites, o si sustancialmente
#más del 5% de los picos están fuera de estos límites,
#entonces la serie probablemente no sea ruido blanco.