5.10 练习

  1. 2014年澳大利亚维多利亚州的每日耗电量包含在 elecdaily 中。前20天的日度耗电量数据可以通过如下方式获得。

    daily20 <- head(elecdaily, 20)
    1. 绘制上述数据的时序图并将温度作为解释变量对日度耗电量建模。为什么是它们之间是正向相关关系?

    2. 绘制残差图。模型是否充分?是否存在异常值点和强影响点?

    3. 若明日最高温度为\(15^\circ\),利用模型预测当天的耗电量。并与最高温度为\(35^\circ\)时的预测结果进行比较。你觉得预测结果可信吗?

    4. 写出模型预测值的预测区间。以下R代码将帮助你入门:

      autoplot(daily20, facets=TRUE)
      daily20 %>%
        as.data.frame() %>%
        ggplot(aes(x=Temperature, y=Demand)) +
        geom_point() +
        geom_smooth(method="lm", se=FALSE)
      fit <- tslm(Demand ~ Temperature, data=daily20)
      checkresiduals(fit)
      forecast(fit, newdata=data.frame(Temperature=c(15,35)))
    5. 利用 elecdaily 中的所有数据,绘制日度耗电量和温度的关系图。你对你的模型有什么认识?

  2. 数据集 mens400 中包含了从1896年到2016年间,奥运会男子400米冠军得主的成绩(秒)。

    1. 绘制成绩的时间序列图。描述图中反应出的主要信息。
    2. 利用线性模型拟合数据。显然冠军所用时间是随年份下降的,但是每年的平均下降速率是怎样的?
    3. 绘制模型的残差图。这表明拟合线是否合适?
    4. 预测2020年奥运会男子400米冠军得主成绩。并给出预测值的预测区间。在计算中,你都做出了哪些假设?
  3. 输入 easter(ausbeer) 并解释你所得到的内容。

  4. 弹性系数是被预测变量(\(y\))的百分比变化与预测变量(\(x\))的百分比变化之比。在数学中,弹性系数被定义为 \((dy/dx)\times(x/y)\) 。考虑双对数模型: \[ \log y=\beta_0+\beta_1 \log x + \varepsilon. \]\(y\)\(x\) 表示,并证明 \(\beta_1\) 是弹性系数。

  5. 数据集 fancy 包含1987年一月开始,礼物、纪念品和新奇商品的销量。该商店位于澳大利亚昆士兰州海滩度假小镇的码头上。销售量随季节性游客人数而变化。圣诞节期间以及自1988年以来每年三月举办的冲浪节都有大量的游客涌入。并且随着时间的推移,商店扩大了其场地,产品范围和员工数量。

    1. 生成数据的时间图并描述图中反应出的特点。识别出时间序列中的异常波动。
    2. 解释为什么在拟合模型之前需对数据进行对数变换处理。
    3. 使用R将回归模型拟合销售数据的对数值,并采用线性趋势,季节性虚拟变量和“冲浪节”虚拟变量。
    4. 根据时间和拟合值绘制残差。 这些图是否显示模型存在任何问题?
    5. 绘制每个月残差的箱线图。 这是否揭示了模型的任何问题?
    6. 系数值代表不同变量怎样的含义?
    7. 从 Breusch-Godfrey 测试结果中能得到关于模型的什么信息?
    8. 使用回归模型预测1994年,1995年和1996年的月度销售额,宁对每个预测值生成预测区间。
    9. 变换预测值和预测区间以获取原始数据的预测值和预测区间。
    10. 如何通过修改模型来改进这些预测?
  6. 数据集 gasoline 中包含1991年2月2日至2017年1月20日美国成品汽油产品供应的每周数据。单位为“每天百万桶”。仅考虑截止到2004年底的数据。

    1. 根据数据的趋势拟合谐波回归。尝试更改傅立叶变换值。绘制观察到的汽油和拟合值,并对所看到的结果进行评价。

    2. 通过最小化AICc或CV值来选择要适当数量的傅里叶项。

    3. 利用checkresiduals()函数检验最终模型的残差。尽管残差未通过相关性测试,但对结果影响不大,不会对预测值和预测区间产生太大影响。(请注意,即使相关性很重要,但此处相关性相对较小。)

    4. 要使用谐波回归进行预测,需要生成傅立叶项的未来值。 可以通过如下代码完成。

      fc <- forecast(fit, newdata=data.frame(fourier(x, K, h)))

      其中, fit 是使用 tslm() 的模型拟合值, K 是傅里叶项数, h 是预测步长。

    5. 预测2005年预测值并与其真实值比较,你发现了什么?

  7. 数据集 huron 中包含了1875–1972年间休伦湖的水位数据。

    1. 绘制数据并对其特点进行评价。
    2. 将线性拟合回归结果与在1915年处分段线性回归结果进行比较分析。
    3. 通过上述两个模型,预测1980年之前休伦湖的水位,并分析两个模型的预测结果。
  8. (适用于第5.7节的高阶读者)

利用矩阵可将模型表现为, \(\bm{y}=\bm{X}\bm{\beta}+\bm{\varepsilon}\) ,其中 \(\bm{e}\) 均值为0,方差为 \(\sigma^2\bm{I}\) ;估计系数为 \(\hat{\bm{\beta}}=(\bm{X}'\bm{X})^{-1}\bm{X}'\bm{y}\) ;预测值为 \(\hat{y}=\bm{x}^*\hat{\bm{\beta}}=\bm{x}^*(\bm{X}'\bm{X})^{-1}\bm{X}'\bm{y}\) ,其中 \(\bm{x}^*\) 为原始向量(和 \(\bm{X}\) 具有相同格式);预测值的方差为 \(var(\hat{y})=\sigma^2 \left[1+\bm{x}^*(\bm{X}'\bm{X})^{-1}(\bm{x}^*)'\right]\)

考虑简单的时间趋势模型 \(y_t = \beta_0 + \beta_1t\) ,使用下列表达式: \[ \sum^{T}_{t=1}{t}=\frac{1}{2}T(T+1),\quad \sum^{T}_{t=1}{t^2}=\frac{1}{6}T(T+1)(2T+1) \] 证明下列表达式:

  1. \(\displaystyle\bm{X}'\bm{X}=\frac{1}{6}\left[ \begin{array}{cc} 6T & 3T(T+1) \\ 3T(T+1) & T(T+1)(2T+1) \\ \end{array} \right]\)

  2. \(\displaystyle(\bm{X}'\bm{X})^{-1}=\frac{2}{T(T^2-1)}\left[ \begin{array}{cc} (T+1)(2T+1) & -3(T+1) \\ -3(T+1) & 6 \\ \end{array} \right]\)

  3. \(\displaystyle\hat{\beta}_0=\frac{2}{T(T-1)}\left[(2T+1)\sum^T_{t=1}y_t-3\sum^T_{t=1}ty_t \right]\)

    \(\displaystyle\hat{\beta}_1=\frac{6}{T(T^2-1)}\left[2\sum^T_{t=1}ty_t-(T+1)\sum^T_{t=1}y_t \right]\)

  4. \(\displaystyle\text{Var}(\hat{y}_{t})=\hat{\sigma}^2\left[1+\frac{2}{T(T-1)}\left(1-4T-6h+6\frac{(T+h)^2}{T+1}\right)\right]\)