1. #-----------------------------------------#
  2. # R in Action (2nd ed): Chapter 15 #
  3. # Time series #
  4. # requires forecast, tseries packages #
  5. # install.packages("forecast", "tseries") #
  6. #-----------------------------------------#
  7.  
  8. par(ask=TRUE)
  9.  
  10. # Listing 15.1 - Creating a time series object in R
  11. sales <- c(18, 33, 41, 7, 34, 35, 24, 25, 24, 21, 25, 20,
  12. 22, 31, 40, 29, 25, 21, 22, 54, 31, 25, 26, 35)
  13. tsales <- ts(sales, start=c(2003, 1), frequency=12)
  14. tsales
  15. plot(tsales)
  16.  
  17. start(tsales)
  18. end(tsales)
  19. frequency(tsales)
  20.  
  21. tsales.subset <- window(tsales, start=c(2003, 5), end=c(2004, 6))
  22. tsales.subset
  23.  
  24. # Listing 15.2 - Simple moving averages
  25. library(forecast)
  26. opar <- par(no.readonly=TRUE)
  27. par(mfrow=c(2,2))
  28. ylim <- c(min(Nile), max(Nile))
  29. plot(Nile, main="Raw time series")
  30. plot(ma(Nile, 3), main="Simple Moving Averages (k=3)", ylim=ylim)
  31. plot(ma(Nile, 7), main="Simple Moving Averages (k=7)", ylim=ylim)
  32. plot(ma(Nile, 15), main="Simple Moving Averages (k=15)", ylim=ylim)
  33. par(opar)
  34.  
  35. # Listing 15.3 - Seasonal decomposition using slt()
  36. plot(AirPassengers)
  37. lAirPassengers <- log(AirPassengers)
  38. plot(lAirPassengers, ylab="log(AirPassengers)")
  39. fit <- stl(lAirPassengers, s.window="period")
  40. plot(fit)
  41. fit$time.series
  42. exp(fit$time.series)
  43.  
  44. par(mfrow=c(2,1))
  45. library(forecast)
  46. monthplot(AirPassengers, xlab="", ylab="")
  47. seasonplot(AirPassengers, year.labels="TRUE", main="")
  48. par(opar)
  49.  
  50. # Listing 15.4 - Simple exponential smoothing
  51. library(forecast)
  52. fit <- HoltWinters(nhtemp, beta=FALSE, gamma=FALSE)
  53. fit
  54.  
  55. forecast(fit, 1)
  56.  
  57. plot(forecast(fit, 1), xlab="Year",
  58. ylab=expression(paste("Temperature (", degree*F,")",)),
  59. main="New Haven Annual Mean Temperature")
  60.  
  61. accuracy(fit)
  62.  
  63. # Listing 15.5 - Exponential smoothing with level, slope, and seasonal components
  64. fit <- HoltWinters(log(AirPassengers))
  65. fit
  66.  
  67. accuracy(fit)
  68.  
  69. pred <- forecast(fit, 5)
  70. pred
  71. plot(pred, main="Forecast for Air Travel",
  72. ylab="Log(AirPassengers)", xlab="Time")
  73. pred$mean <- exp(pred$mean)
  74. pred$lower <- exp(pred$lower)
  75. pred$upper <- exp(pred$upper)
  76. p <- cbind(pred$mean, pred$lower, pred$upper)
  77. dimnames(p)[[2]] <- c("mean", "Lo 80", "Lo 95", "Hi 80", "Hi 95")
  78. p
  79.  
  80. # Listing 15.6 - Automatic exponential forecasting with ets()
  81. library(forecast)
  82. fit <- ets(JohnsonJohnson)
  83. fit
  84. plot(forecast(fit), main="Johnson and Johnson Forecasts",
  85. ylab="Quarterly Earnings (Dollars)", xlab="Time")
  86.  
  87. # Listing 15.7 - Transforming the time series and assessing stationarity
  88. library(forecast)
  89. library(tseries)
  90. plot(Nile)
  91. ndiffs(Nile)
  92. dNile <- diff(Nile)
  93. plot(dNile)
  94. adf.test(dNile)
  95.  
  96. # Listing 15.8 - Fit an ARIMA model
  97. fit <- arima(Nile, order=c(0,1,1))
  98. fit
  99. accuracy(fit)
  100.  
  101. # Listing 15.9 - Evaluating the model fit
  102. qqnorm(fit$residuals)
  103. qqline(fit$residuals)
  104. Box.test(fit$residuals, type="Ljung-Box")
  105.  
  106. # Listing 15.10 - Forecasting with an ARIMA model
  107. forecast(fit, 3)
  108. plot(forecast(fit, 3), xlab="Year", ylab="Annual Flow")
  109.  
  110. # Listing 15.11 - Automated ARIMA forecasting
  111. library(forecast)
  112. fit <- auto.arima(sunspots)
  113. fit
  114. forecast(fit, 3)
  115. accuracy(fit)

吴裕雄--天生自然 R语言开发学习:时间序列(续二)的更多相关文章

  1. 吴裕雄--天生自然 R语言开发学习:R语言的安装与配置

    下载R语言和开发工具RStudio安装包 先安装R

  2. 吴裕雄--天生自然 R语言开发学习:数据集和数据结构

    数据集的概念 数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量.表2-1提供了一个假想的病例数据集. 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和 ...

  3. 吴裕雄--天生自然 R语言开发学习:导入数据

    2.3.6 导入 SPSS 数据 IBM SPSS数据集可以通过foreign包中的函数read.spss()导入到R中,也可以使用Hmisc 包中的spss.get()函数.函数spss.get() ...

  4. 吴裕雄--天生自然 R语言开发学习:使用键盘、带分隔符的文本文件输入数据

    R可从键盘.文本文件.Microsoft Excel和Access.流行的统计软件.特殊格 式的文件.多种关系型数据库管理系统.专业数据库.网站和在线服务中导入数据. 使用键盘了.有两种常见的方式:用 ...

  5. 吴裕雄--天生自然 R语言开发学习:R语言的简单介绍和使用

    假设我们正在研究生理发育问 题,并收集了10名婴儿在出生后一年内的月龄和体重数据(见表1-).我们感兴趣的是体重的分 布及体重和月龄的关系. 可以使用函数c()以向量的形式输入月龄和体重数据,此函 数 ...

  6. 吴裕雄--天生自然 R语言开发学习:基础知识

    1.基础数据结构 1.1 向量 # 创建向量a a <- c(1,2,3) print(a) 1.2 矩阵 #创建矩阵 mymat <- matrix(c(1:10), nrow=2, n ...

  7. 吴裕雄--天生自然 R语言开发学习:图形初阶(续二)

    # ----------------------------------------------------# # R in Action (2nd ed): Chapter 3 # # Gettin ...

  8. 吴裕雄--天生自然 R语言开发学习:图形初阶(续一)

    # ----------------------------------------------------# # R in Action (2nd ed): Chapter 3 # # Gettin ...

  9. 吴裕雄--天生自然 R语言开发学习:图形初阶

    # ----------------------------------------------------# # R in Action (2nd ed): Chapter 3 # # Gettin ...

  10. 吴裕雄--天生自然 R语言开发学习:基本图形(续二)

    #---------------------------------------------------------------# # R in Action (2nd ed): Chapter 6 ...

随机推荐

  1. 专业程序设计part2

    05tue 乘以1.0使得int*int!=0 today:缩放 和计算机图形学关联 已知:currentdataset ask for:两个方向的缩放比例.保存路径.重采样方法(necessary) ...

  2. C++概要简介

    从C到C++ 新类型 bool类型 新的输入输出方式 con cout 新的内存存储方式 new delete 引用& 用于传参 函数 内敛函数inline 通过代码区膨胀 减少函数的跳转时间 ...

  3. [AC自动机]玄武密码

    题目描述 一个长度为\(N\)的母串,有四个元素分别是:N,S,W,N. 有M个长度为100的模式串. 现在要求每个模式串的前缀与母串匹配最长长度. 输入样例 7 3 SNNSSNS NNSS NNN ...

  4. Oracle之纵向数据转换横向数据

    资源二  来源  http://www.cnblogs.com/gkl0818/archive/2009/02/25/1398078.html 1.固定列数的行列转换如student subject ...

  5. Kafka、RabbitMQ、RocketMQ等消息中间件的介绍和对比

    本博客强烈推荐: Java电子书高清PDF集合免费下载 https://www.cnblogs.com/yuxiang1/p/12099324.html 前言 在分布式系统中,我们广泛运用消息中间件进 ...

  6. python+selenium自动化--参数化(paramunittest)

    unnittest的参数化模块-paramunittest paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例 两种用法 import unit ...

  7. Codeforces 1295D Same GCDs

    题目链接 link Solution 这是一道结论题,有两个做法,分别用了欧拉函数或一点点莫比乌斯反演 (这里只放欧拉函数的做法) 设\(d=gcd(m,a)\) \[gcd(\frac{a}{d}, ...

  8. OpenSSL EVP_Digest系列函数的一个样例

    #include <stdio.h>     #include <openssl/evp.h>         main(int argc, char *argv[])     ...

  9. python将当前时间加上7天

    datetime.datetime.now() + datetime.timedelta(days = 7)).strftime("%Y-%m-%d"

  10. Log4J基础

    Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式.日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度: ...