r语言结构方程模型可视化_R语言时间序列分析(二):ts对象及其可视化

作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言数据高效处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。

R语言具有深厚的统计学渊源,因此基本包中有一种数据类型专门是为时间序列设计的,那就是ts。直观地思考,一个时间序列数据,其实就是一个数值型向量而已。那么时间序列的数值型向量有什么不同的地方呢?如果能够理解这一点,就能够迅速掌握ts的数据结构。

每一个向量,其实都需要有一个时刻与之对应,而这个时间是我们都能认同的时间系统,即可。比如我们现在要定义1到10这个向量,分别是2001年到2010年的数据。可以这么操作:

ts(data = 1:10,start = 2001,end = 2010)

Time Series:
Start = 2001 
End = 2010 
Frequency = 1 
 [1]  1  2  3  4  5  6  7  8  9 10

这里定义了起止年份,其实也可以只定义起点就可以了,因为默认的周期是1。也就是说上面的代码其实默认参数frequency = 1。如果不是1会出现什么状况?我们定义为4试试看:

ts(data = 1:10,start = 2001,frequency = 4)

     Qtr1 Qtr2 Qtr3 Qtr4
2001    1    2    3    4
2002    5    6    7    8
2003    9   10    

那么就默认数据是1年有4个季节的数据。同理,如果向量中是连续的月份数值,那么frequency应该设置为12,周则为52,日则为365。比如我们的数据是从2001年2月1日开始的,然后我们拥有的是日尺度的数据,一共有连续400天的数据,那么应该这样设置:

ts(data = 1:400,start = c(2001,2,1),frequency = 365)

Time Series:
Start = c(2001, 2) 
End = c(2002, 36) 
Frequency = 365 
  [1]   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]  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]  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]  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]  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] 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] 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
[169] 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
[193] 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
[217] 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240
[241] 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264
[265] 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288
[289] 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
[313] 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336
[337] 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
[361] 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384
[385] 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400

总体而言,如果start放的是年份,frequency就是一年你有多少个这种数值(多少天、多少周、多少月)。其实start也可以放其他东西,只要心中有数,一个是步长,一个是频率即可。

至于时间序列的可视化,基本包的plot肯定是没有问题的,不过这里推荐使用fpp2这个包,是专门针对我们之前所用教程的,它是基于ggplot2的。下面我们就用这个包来试试:

library(pacman)
p_load(fpp2)

autoplot(a10)

b504f5884513991f3ee90452aac90bca.png

这个包会有很多很多的便捷之处,有待我们后面慢慢探索。先给出包的链接:

CRAN - Package fpp2​cran.r-project.org
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值