为 `rsav` 文件中的时间序列数据编写 AR(2) 模型的 R 代码
Write R code of AR(2) model for a time serie data from `rsav` file
我需要编写 R 代码来为 rsav
文件中的时间序列数据建模。下面是问题的详细信息:
文件 “file.rsav”
(可以使用 load(“file.rsav”)
加载到 R 中)包含一个时间序列 (“xx”
)。该系列是 “demeaned”
月收入流(以百万计
美元)的公司。有 n = 96
个观察结果。
该系列已经“demeaned”
;通常这意味着我们从每个数据点中减去 $\bar{X}$,但现在假装我们确切地知道均值 $miu$,所以我们从每个数据点中减去 µ,所以新的系列正好(理论上) 表示 0
。 (但因此它的样本均值并不精确 0
。)
我们将考虑 $X_t$ 系列可能的 ARMA
型号。我们假设对应的白噪声是高斯分布的(所以X_t
是高斯分布的)。我们将首先考虑 AR(2)
模型。我们假设我们完全知道真实模型:$X_t = .1.34X_{t-1} - .48X_{t-2} + W_t, W_t \ sim iid N(0, σ^2)$.
我被要求使用模型计算预测回溯,最多 25
个时间步长的未来和过去。
编写代码以手动进行预测(即不使用 predict()
函数)。绘制数据、预测和 95%
预测区间 [假设高斯分布](全部在一个图上)。 (注意:您不需要对预测区间进行多重校正。)
代码:
load('./file.rsav')
str(xx)
xx
输出:
Time-Series [1:96] from 1 to 8.92: 2.45 2.18 0.389 -1.44 -1.47 ...
Jan Feb Mar Apr May Jun Jul
1 2.45017780 2.17955829 0.38874020 -1.43979552 -1.47049807 -2.25233354 -0.82580703
2 1.92378321 1.87944208 1.07382472 1.01933130 1.88660307 -0.31109156 -0.25732342
3 0.60732330 1.53185399 1.58614371 0.63922270 0.82728407 0.28910411 -1.18154941
4 0.41375543 1.96633332 1.97402973 4.16058136 5.15474250 5.71865844 3.93136013
5 -1.51228022 -3.03396294 -3.65446772 -4.69589618 -3.51276584 -2.97682246 -3.08655352
6 3.43027017 4.68909032 6.55598795 4.95816124 4.87626503 3.17103291 0.79093946
7 -0.62481997 -0.94469455 -2.13648402 -3.64364158 -2.07214317 -3.26793808 -3.38573375
8 0.67823828 1.09908274 0.93832242 0.08791237 1.77322327 2.01201710 3.70197246
Aug Sep Oct Nov Dec
1 0.53048061 1.31994246 0.69306401 1.25916404 1.53363966
2 -0.47154459 0.52849630 0.90548093 0.71783457 0.86908457
3 -0.52525201 -0.40335058 0.73415310 0.58501633 0.29875228
4 2.50242432 1.69408297 0.96230124 0.53164036 -0.64480235
5 -1.60735865 -0.20500888 -0.44508903 -0.01443040 1.71087427
6 -0.09975821 -0.85972650 -0.41557374 -0.99876068 0.52620555
7 -2.25968715 -0.91700127 -0.49302872 -1.44275203 -0.66221559
8 4.62724761 4.17549847 3.43992950 3.15302462 4.17300576
我不太了解 rsav
扩展文件,有人可以帮我解决这个问题或给我一些提示吗?提前致谢。
我认为“回溯”是指适合最后 25 个观测值的样本内数据。要从 AR(2)
模型进行预测,您只需要下一步的最后 2 个观察值。
型号为:x_t = ar1 * x_{t-1} + ar2 * x_{t-2} + error
现在我们只需要插入估计的 ar 参数和 x_{t-1}
和 x_{t-2}
的观测值。对于下一步,我们需要预测步骤和最后一次观察:
x_{t+1} = ar1 * x_{t} + ar2 * x_{t-1} + error
这是我们重复 25 次的内容。假定误差项服从正态分布,因此预计为零。
我们对“回溯”做同样的事情,样本内拟合,但这里我们只需要时间序列的观察。
forecast<-numeric(25)
backcast<-numeric(25)
forecast[1]<-0.134*xx[length(xx)]+0.48*xx[length(xx)-1]
forecast[2]<-0.134*forecast[1]+0.48*xx[length(xx)]
for(i in 3:25)
{
forecast[i]<-0.134*forecast[i-1]+0.48*forecast[i-2]
}
for(i in 1:25)
{
backcast[i]<-0.134*xx[length(xx)-i-1]+0.48*xx[length(xx)-i-2]
}
ts.plot(xx)
我需要编写 R 代码来为 rsav
文件中的时间序列数据建模。下面是问题的详细信息:
文件 “file.rsav”
(可以使用 load(“file.rsav”)
加载到 R 中)包含一个时间序列 (“xx”
)。该系列是 “demeaned”
月收入流(以百万计
美元)的公司。有 n = 96
个观察结果。
该系列已经“demeaned”
;通常这意味着我们从每个数据点中减去 $\bar{X}$,但现在假装我们确切地知道均值 $miu$,所以我们从每个数据点中减去 µ,所以新的系列正好(理论上) 表示 0
。 (但因此它的样本均值并不精确 0
。)
我们将考虑 $X_t$ 系列可能的 ARMA
型号。我们假设对应的白噪声是高斯分布的(所以X_t
是高斯分布的)。我们将首先考虑 AR(2)
模型。我们假设我们完全知道真实模型:$X_t = .1.34X_{t-1} - .48X_{t-2} + W_t, W_t \ sim iid N(0, σ^2)$.
我被要求使用模型计算预测回溯,最多 25
个时间步长的未来和过去。
编写代码以手动进行预测(即不使用 predict()
函数)。绘制数据、预测和 95%
预测区间 [假设高斯分布](全部在一个图上)。 (注意:您不需要对预测区间进行多重校正。)
代码:
load('./file.rsav')
str(xx)
xx
输出:
Time-Series [1:96] from 1 to 8.92: 2.45 2.18 0.389 -1.44 -1.47 ...
Jan Feb Mar Apr May Jun Jul
1 2.45017780 2.17955829 0.38874020 -1.43979552 -1.47049807 -2.25233354 -0.82580703
2 1.92378321 1.87944208 1.07382472 1.01933130 1.88660307 -0.31109156 -0.25732342
3 0.60732330 1.53185399 1.58614371 0.63922270 0.82728407 0.28910411 -1.18154941
4 0.41375543 1.96633332 1.97402973 4.16058136 5.15474250 5.71865844 3.93136013
5 -1.51228022 -3.03396294 -3.65446772 -4.69589618 -3.51276584 -2.97682246 -3.08655352
6 3.43027017 4.68909032 6.55598795 4.95816124 4.87626503 3.17103291 0.79093946
7 -0.62481997 -0.94469455 -2.13648402 -3.64364158 -2.07214317 -3.26793808 -3.38573375
8 0.67823828 1.09908274 0.93832242 0.08791237 1.77322327 2.01201710 3.70197246
Aug Sep Oct Nov Dec
1 0.53048061 1.31994246 0.69306401 1.25916404 1.53363966
2 -0.47154459 0.52849630 0.90548093 0.71783457 0.86908457
3 -0.52525201 -0.40335058 0.73415310 0.58501633 0.29875228
4 2.50242432 1.69408297 0.96230124 0.53164036 -0.64480235
5 -1.60735865 -0.20500888 -0.44508903 -0.01443040 1.71087427
6 -0.09975821 -0.85972650 -0.41557374 -0.99876068 0.52620555
7 -2.25968715 -0.91700127 -0.49302872 -1.44275203 -0.66221559
8 4.62724761 4.17549847 3.43992950 3.15302462 4.17300576
我不太了解 rsav
扩展文件,有人可以帮我解决这个问题或给我一些提示吗?提前致谢。
我认为“回溯”是指适合最后 25 个观测值的样本内数据。要从 AR(2)
模型进行预测,您只需要下一步的最后 2 个观察值。
型号为:x_t = ar1 * x_{t-1} + ar2 * x_{t-2} + error
现在我们只需要插入估计的 ar 参数和 x_{t-1}
和 x_{t-2}
的观测值。对于下一步,我们需要预测步骤和最后一次观察:
x_{t+1} = ar1 * x_{t} + ar2 * x_{t-1} + error
这是我们重复 25 次的内容。假定误差项服从正态分布,因此预计为零。
我们对“回溯”做同样的事情,样本内拟合,但这里我们只需要时间序列的观察。
forecast<-numeric(25)
backcast<-numeric(25)
forecast[1]<-0.134*xx[length(xx)]+0.48*xx[length(xx)-1]
forecast[2]<-0.134*forecast[1]+0.48*xx[length(xx)]
for(i in 3:25)
{
forecast[i]<-0.134*forecast[i-1]+0.48*forecast[i-2]
}
for(i in 1:25)
{
backcast[i]<-0.134*xx[length(xx)-i-1]+0.48*xx[length(xx)-i-2]
}
ts.plot(xx)