2.10 练习

  1. 使用帮助函数了解goldwoolyrnqgas时间序列

    1. 使用autoplot()分别绘制上述序列。
    2. 各个序列的频率是多少? 提示:运用frequency()函数。
    3. 使用which.max()函数找出gold序列的离群点。它是哪个观测点?
  2. OTexts.org/fpp2/extrafiles/tute1.csv 上下载文件tute1.csv,打开并查看内容。从B列到D列,是三组季度性序列。分别标记为:Sales、AdBudget 和 GDP。Sales是1981年至2005年期间小型公司的季度销售额。 AdBudget 是广告预算,GDP是国内生产总值。三组时间序列均已经剔除了通货膨胀的影响。

    1. 首先将数据读入R中,并初步观察数据形态:

      tute1 <- read.csv("tute1.csv", header=TRUE)
      View(tute1)
    2. 将数据转化为时间序列

      mytimeseries <- ts(tute1[,-1], start=1981, frequency=4)

      (使用[,-1]可以移除第一列的数据)

    3. 画出每个序列的时间序列图

      autoplot(mytimeseries, facets=TRUE)

      尝试不设置参数facets=TRUE

  3. OTexts.org/fpp2/extrafiles/retail.xlsx下载澳大利亚月度零售数据。这些代表不同澳大利亚各州的不同类别的零售额,并存储在MS-Excel文件中。

    1. 首先将数据读入R中:

      retaildata <- readxl::read_excel("retail.xlsx", skip=1)

      必须设置第二个参数skip=1

    2. 选择其中的一个时间序列:

      myts <- ts(retaildata[,"A3349873A"], frequency=12, start=c(1982,4))
    3. 使用下列函数观察时间序列:

      autoplot(), ggseasonplot(), ggsubseriesplot(), gglagplot(), ggAcf()

      你发现了趋势、季节性或者周期性吗?你对这个时间序列有什么认识?

  4. 画出以下时间序列的时间序列图:bicoal, chicken, dole, usdeaths, lynx, goog, writing, fancy, a10, h02

    • 使用help()函数找出每个时间序列的数据。
    • goog的时间序列图上,修改坐标轴名称和标题。
  5. 使用ggseasonplot()函数和ggsubseriesplot()函数来观察writingfancya10h02四个序列的季节性特征。

    • 你对时间序列的季节性有什么认识?
    • 你可以识别出异常的年份吗?
  6. 使用autoplot()ggseasonplot()ggsubseriesplot()gglagplot()ggAcf()这些画图函数,探索序列hsalesusdeathsbricksqsunspotareagasoline的特征。

    • 你可以发现季节性、周期性或者趋势吗?
    • 从这些序列中你发现了什么?
  7. arrivals数据包括从日本、新西兰、英国和美国到达澳大利亚的人数(千)。

    • 使用autoplot()ggseasonplot()ggsubseriesplot()函数比较四个国家到达澳大利亚人数的不同之处。
    • 你可以找出异常观测点吗?
  8. 下列时间序列图和ACF图分别对应四个不同的时间序列。你的任务是将第一行的时间序列图和第二行的ACF图分别对应。

  9. 数据集pigs是从1980年1月到1995年8月,维多利亚州每月屠宰猪的总量。使用mypigs <- window(pigs, start=1990)截取1990年之后的数据。运用autoplotggAcf函数分别画出mypigs及其ACF图,并将其结果与白噪声的结果(如图 2.172.18 所示)进行比较。

  10. 数据集dj包含了连续292个交易日的道琼斯指数。采用ddj <- diff(dj)来计算道琼斯指数的日变化量。画出ddj和它的ACF图。道琼斯指数的日变化类似一个白噪声吗?