UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO
Series de tiempo
Marisol Arreola Silva
| 1 |
El objetivo de esta practica es crear una funcion que reciba como parametro un dataFrame que contenga series, un valor natural c que indice la columna en la cual comienzan las observaciones, un valor n que indice la serie deseada para graficar,Starting date el nombre de la columna en la cual tenemos las fechas de inicio y Type, la columna en la cual tenemos los periodos, si este es none se asume que es anual. Se asume que cada renglon es una serie. Esta funcion, extraerá una serie aleatoria y la imprimira, posteriormente elegira la serie n y la graficara.
|
require(readr)
require(tidyr)
require(readxl)
require(ggplot2)
require(gganimate)
require(anytime)
series<-read_excel("C:/Users/Sol/Downloads/MC1001.xls")
fseries<-function(series, c, n, `Starting date`, Type){
head(series)
serie1<-sample(1:length(series$Series),1)
nobs1<-as.integer(series[serie1, 2])
obs1<-c()
for(i in c:(nobs1+7)){
obs1<-c(obs1, as.integer(series[serie1,i]))
}
print(paste("serie YAF", (serie1+1)))
date1=c()
if(series$Type[serie1]=="MONTHLY"){
date=seq(as.Date(anydate(series$`Starting date`[serie1])), by = "month", length.out = nobs1)
}
if(series$Type[serie1]=="YEARLY"){
date=seq(as.Date(anydate(series$`Starting date`[serie1])), by = "year", length.out = nobs1)
}
if(series$Type[serie1]=="QUARTERLY"){
date=seq(as.Date(anydate(series$`Starting date`[serie1])), by = "quarter", length.out = nobs1)
}
df1<-data.frame(date, obs1)
print(df1)
serie<-n
nobs<-as.integer(series[serie, 2])
obs<-c()
for(i in c:(nobs+7)){
obs<-c(obs, as.integer(series[serie,i]))
}
date1=c()
if(series$Type[serie]=="MONTHLY"){
date1=seq(as.Date(anydate(series$`Starting date`[serie])), by = "month", length.out = nobs)
}
if(series$Type[serie]=="YEARLY"){
date1=seq(as.Date(anydate(series$`Starting date`[serie])), by = "year", length.out = nobs)
}
if(series$Type[serie]=="QUARTERLY"){
date1=seq(as.Date(anydate(series$`Starting date`[serie])), by = "quarter", length.out = nobs)
}
df2<-data.frame(date1, obs)
#df<-data.frame(periodo=c:(nobs+7), obs)
ggplot(df2)+geom_line( aes(x=df2$date1, y=df2$obs, col="red"))+theme_grey()+labs(x="Fechas", y="Observaciones")+ggtitle(paste("serie", serie))+ theme(legend.position="none")
}
\[\color{white}{Ejemplo 1}\]
fseries(series, 8, 999, `Starting date`)
## [1] "serie YAF 460"
## date obs1
## 1 1978-07-01 144
## 2 1978-08-01 134
## 3 1978-09-01 149
## 4 1978-10-01 139
## 5 1978-11-01 161
## 6 1978-12-01 151
## 7 1979-01-01 131
## 8 1979-02-01 142
## 9 1979-03-01 146
## 10 1979-04-01 149
## 11 1979-05-01 146
## 12 1979-06-01 157
## 13 1979-07-01 152
## 14 1979-08-01 151
## 15 1979-09-01 159
## 16 1979-10-01 152
## 17 1979-11-01 164
## 18 1979-12-01 159
## 19 1980-01-01 141
## 20 1980-02-01 154
## 21 1980-03-01 151
## 22 1980-04-01 159
## 23 1980-05-01 159
## 24 1980-06-01 156
## 25 1980-07-01 157
## 26 1980-08-01 136
## 27 1980-09-01 144
## 28 1980-10-01 156
## 29 1980-11-01 162
## 30 1980-12-01 156
## 31 1981-01-01 142
## 32 1981-02-01 164
## 33 1981-03-01 149
## 34 1981-04-01 170
## 35 1981-05-01 154
## 36 1981-06-01 149
## 37 1981-07-01 161
## 38 1981-08-01 157
## 39 1981-09-01 175
## 40 1981-10-01 164
## 41 1981-11-01 164
## 42 1981-12-01 175
## 43 1982-01-01 166
## 44 1982-02-01 177
## 45 1982-03-01 170
## 46 1982-04-01 180
## 47 1982-05-01 172
## 48 1982-06-01 170
## 49 1982-07-01 170
## 50 1982-08-01 134
## 51 1982-09-01 174
## 52 1982-10-01 151
## 53 1982-11-01 169
## 54 1982-12-01 167
## 55 1983-01-01 149
## 56 1983-02-01 177
## 57 1983-03-01 166
## 58 1983-04-01 185
## 59 1983-05-01 187
## 60 1983-06-01 189
## 61 1983-07-01 166
## 62 1983-08-01 169
## 63 1983-09-01 170
## 64 1983-10-01 167
## 65 1983-11-01 187
## 66 1983-12-01 185
## 67 1984-01-01 175
## 68 1984-02-01 193
## 69 1984-03-01 185
## 70 1984-04-01 197
## 71 1984-05-01 189
## 72 1984-06-01 175
## 73 1984-07-01 190
## 74 1984-08-01 174
## 75 1984-09-01 198
## 76 1984-10-01 177
## 77 1984-11-01 200
## 78 1984-12-01 203
## 79 1985-01-01 185
## 80 1985-02-01 218
## 81 1985-03-01 200
## 82 1985-04-01 223
## 83 1985-05-01 203
## 84 1985-06-01 203
## 85 1985-07-01 195
## 86 1985-08-01 180
## 87 1985-09-01 198
## 88 1985-10-01 202
## 89 1985-11-01 207
## 90 1985-12-01 210
## 91 1986-01-01 195
## 92 1986-02-01 213
## 93 1986-03-01 180
## 94 1986-04-01 212
## 95 1986-05-01 195
## 96 1986-06-01 162
## 97 1986-07-01 157
## 98 1986-08-01 124
## 99 1986-09-01 141
## 100 1986-10-01 144
## 101 1986-11-01 151
## 102 1986-12-01 138
## 103 1987-01-01 147
## 104 1987-02-01 166
## 105 1987-03-01 159
## 106 1987-04-01 200
## 107 1987-05-01 195
## 108 1987-06-01 189
## 109 1987-07-01 185
## 110 1987-08-01 180
## 111 1987-09-01 180
## 112 1987-10-01 187
## 113 1987-11-01 190
## 114 1987-12-01 182
## 115 1988-01-01 182
## 116 1988-02-01 187
## 117 1988-03-01 174
## 118 1988-04-01 195
## 119 1988-05-01 180
## 120 1988-06-01 174
## 121 1988-07-01 182
\[\color{white}{Ejemplo 2}\]
fseries(series, 8, 677, `Starting date`)
## [1] "serie YAF 455"
## date obs1
## 1 1977-11-01 2783
## 2 1977-12-01 3746
## 3 1978-01-01 6404
## 4 1978-02-01 5074
## 5 1978-03-01 4526
## 6 1978-04-01 3061
## 7 1978-05-01 2715
## 8 1978-06-01 1304
## 9 1978-07-01 4594
## 10 1978-08-01 6783
## 11 1978-09-01 7315
## 12 1978-10-01 4601
## 13 1978-11-01 4545
## 14 1978-12-01 4996
## 15 1979-01-01 6816
## 16 1979-02-01 6304
## 17 1979-03-01 7529
## 18 1979-04-01 6045
## 19 1979-05-01 2889
## 20 1979-06-01 1400
## 21 1979-07-01 5493
## 22 1979-08-01 7827
## 23 1979-09-01 7154
## 24 1979-10-01 5998
## 25 1979-11-01 4425
## 26 1979-12-01 5315
## 27 1980-01-01 7198
## 28 1980-02-01 8107
## 29 1980-03-01 8047
## 30 1980-04-01 6553
## 31 1980-05-01 2794
## 32 1980-06-01 1669
## 33 1980-07-01 6825
## 34 1980-08-01 8891
## 35 1980-09-01 7439
## 36 1980-10-01 6977
## 37 1980-11-01 5018
## 38 1980-12-01 6085
## 39 1981-01-01 10817
## 40 1981-02-01 7364
## 41 1981-03-01 9461
## 42 1981-04-01 8623
## 43 1981-05-01 3879
## 44 1981-06-01 2253
## 45 1981-07-01 7894
## 46 1981-08-01 10906
## 47 1981-09-01 8970
## 48 1981-10-01 8861
## 49 1981-11-01 4934
## 50 1981-12-01 6589
## 51 1982-01-01 10397
## 52 1982-02-01 9750
## 53 1982-03-01 10301
## 54 1982-04-01 9097
## 55 1982-05-01 4149
## 56 1982-06-01 2985
## 57 1982-07-01 8865
## 58 1982-08-01 12702
## 59 1982-09-01 11120
## 60 1982-10-01 9177
## 61 1982-11-01 6316
## 62 1982-12-01 7526
## 63 1983-01-01 10875
## 64 1983-02-01 10549
## 65 1983-03-01 12681
## 66 1983-04-01 10374
## 67 1983-05-01 4858
## 68 1983-06-01 3072
## 69 1983-07-01 9453
## 70 1983-08-01 13200
## 71 1983-09-01 12895
## 72 1983-10-01 10483
## 73 1983-11-01 6948
## 74 1983-12-01 8955
## 75 1984-01-01 13737
## 76 1984-02-01 11499
## 77 1984-03-01 13023
## 78 1984-04-01 12733
## 79 1984-05-01 6000
## 80 1984-06-01 3454
## 81 1984-07-01 10152
## 82 1984-08-01 13304
## 83 1984-09-01 11076
## 84 1984-10-01 12205
## 85 1984-11-01 8840
## 86 1984-12-01 10243
## 87 1985-01-01 12504
## 88 1985-02-01 14240
## 89 1985-03-01 14088
## 90 1985-04-01 12242
## 91 1985-05-01 6264
## 92 1985-06-01 4150
## 93 1985-07-01 11944
## 94 1985-08-01 17475
## 95 1985-09-01 14773
## 96 1985-10-01 13414
## 97 1985-11-01 10538
## 98 1985-12-01 11090
## 99 1986-01-01 15440
## 100 1986-02-01 14152
## 101 1986-03-01 17947
\[\color{white}{Ejemplo 3}\]
fseries(series, 8, 777, `Starting date`)
## [1] "serie YAF 585"
## date obs1
## 1 1977-01-01 2916
## 2 1977-02-01 2901
## 3 1977-03-01 3299
## 4 1977-04-01 2927
## 5 1977-05-01 2830
## 6 1977-06-01 2834
## 7 1977-07-01 2849
## 8 1977-08-01 2045
## 9 1977-09-01 2670
## 10 1977-10-01 3121
## 11 1977-11-01 2901
## 12 1977-12-01 2946
## 13 1978-01-01 2529
## 14 1978-02-01 2734
## 15 1978-03-01 3299
## 16 1978-04-01 3106
## 17 1978-05-01 2607
## 18 1978-06-01 2882
## 19 1978-07-01 2830
## 20 1978-08-01 2034
## 21 1978-09-01 2574
## 22 1978-10-01 3054
## 23 1978-11-01 2510
## 24 1978-12-01 3042
## 25 1979-01-01 2589
## 26 1979-02-01 2886
## 27 1979-03-01 2782
## 28 1979-04-01 2849
## 29 1979-05-01 2849
## 30 1979-06-01 2570
## 31 1979-07-01 2797
## 32 1979-08-01 2135
## 33 1979-09-01 2566
## 34 1979-10-01 2849
## 35 1979-11-01 3039
## 36 1979-12-01 2875
## 37 1980-01-01 2373
## 38 1980-02-01 2719
## 39 1980-03-01 3002
## 40 1980-04-01 2819
## 41 1980-05-01 3169
## 42 1980-06-01 2559
## 43 1980-07-01 2749
## 44 1980-08-01 2064
## 45 1980-09-01 2324
## 46 1980-10-01 2957
## 47 1980-11-01 2670
## 48 1980-12-01 3132
## 49 1981-01-01 2384
## 50 1981-02-01 2499
## 51 1981-03-01 3024
## 52 1981-04-01 2607
## 53 1981-05-01 2574
## 54 1981-06-01 2723
## 55 1981-07-01 2488
## 56 1981-08-01 1830
## 57 1981-09-01 2276
## 58 1981-10-01 2633
## 59 1981-11-01 2276
## 60 1981-12-01 2555
## 61 1982-01-01 1960
## 62 1982-02-01 2176
## 63 1982-03-01 2027
## 64 1982-04-01 2228
## 65 1982-05-01 2272
## 66 1982-06-01 1993
## 67 1982-07-01 2269
## 68 1982-08-01 1886
## 69 1982-09-01 2321
## 70 1982-10-01 2098
## 71 1982-11-01 1919
## 72 1982-12-01 2220
## 73 1983-01-01 2016
## 74 1983-02-01 2019
## 75 1983-03-01 1822
## 76 1983-04-01 2410
## 77 1983-05-01 2239
## 78 1983-06-01 2555
## 79 1983-07-01 1952