发布于  更新于 

时间序列分析作业 1

时间序列

Problem 1

首先计算自协方差函数. 记

比较系数

得到

时, 自协方差函数满足

有两个一重根 . 通解

满足边界条件

解得

直接求解 Yule-Walker 方程组

解得

Problem 2

1
2
3
4
model = ARMAProcess[{0.1, 0.12}, {-0.6, 0.7}, 1];
SeedRandom[42];
data = RandomFunction[model, {1001, 2000}]
ListPlot[data, Filling -> Axis]
动态数据散布图
动态数据散布图

计算自协方差值

1
2
3
4
gamma = CovarianceFunction[data, {10}];
Normal[gamma]
ListPlot[{gamma, CovarianceFunction[model, {10}]}, Filling -> Axis,
PlotLegends -> {"模拟数据", "理论"}]
1
2
3
{{0, 2.04243}, {1, -1.01932}, {2, 0.918475}, {3, -0.0514594}, {4, 
0.0929306}, {5, -0.0248783}, {6, 0.0382432}, {7, -0.124687}, {8,
0.0575548}, {9, -0.129289}, {10, 0.0371609}}
自相关图
自相关图

计算偏相关系数

1
2
3
4
phi = PartialCorrelationFunction[data, {10}];
Normal[phi]
ListPlot[{phi, PartialCorrelationFunction[model, {10}]},
Filling -> Axis, PlotLegends -> {"模拟数据", "理论"}]
1
2
3
{{1, -0.49907}, {2, 0.267171}, {3, 0.390937}, {4, 
0.0750153}, {5, -0.228319}, {6, -0.165794}, {7, -0.0293216}, {8,
0.095243}, {9, 0.0337099}, {10, -0.0334262}}
偏相关图
偏相关图

Problem 3

1
2
3
4
model = ARProcess[{1.4833, -0.8483, 0.2350, -0.0317, 0.0017}, 1];
SeedRandom[42];
data = RandomFunction[model, {501, 1000}];
ListPlot[data, Filling -> Axis]
数据散布图
数据散布图

估计自回归系数

1
2
eproc = EstimatedProcess[data, 
ARProcess[{\[Phi]1, \[Phi]2, \[Phi]3, \[Phi]4, \[Phi]5}, \[Sigma]]]
1
2
ARProcess[{1.45937, -0.847174, 0.238211, 
0.00292631, -0.0436659}, 1.0762]

近似认为 时,

取出错概率为, 则自回归系数的置信区间为

1
Quantile[NormalDistribution[0, Sqrt[1/N]], 1 - \[Alpha]/2]

若取 , 可得置信区间为

根据此判据认为估计的 AR 模型 应取 3. 但原模型中本身 较小, 为了得到更可信而准确的结果, 应加大模拟时长或模拟更多路径的数据.

Problem 4

1
2
3
4
model = MAProcess[{-0.6, 0.7}, 1];
SeedRandom[42];
data = RandomFunction[model, {1001, 2000}];
ListPlot[data, Filling -> Axis]
数据散布图
数据散布图

矩估计

二阶 MA 模型, 认为

数值求解方程组

1
2
3
4
5
6
7
8
\[Gamma] = CovarianceFunction[data, {2}];
sys = {
\[Gamma][0] == \[Sigma]^2 (1 + \[Theta]1^2 + \[Theta]2^2),
\[Gamma][1] == \[Sigma]^2 (\[Theta]1 + \[Theta]1 \[Theta]2),
\[Gamma][2] == \[Sigma]^2 \[Theta]2,
\[Sigma] >= 0
};
NSolve[sys, {\[Sigma], \[Theta]1, \[Theta]2}, Reals]

得到的两组解都满足弱平稳条件, 其中第一组解更接近理论模型.

逆相关函数

首先利用 Y-W 方程估计二阶 AR 模型参数

1
2
3
4
5
\[Gamma] = CovarianceFunction[data, {2}];
\[Phi] =
LinearSolve[{{\[Gamma][0], \[Gamma][1]}, {\[Gamma][1], \[Gamma][
0]}}, {\[Gamma][1], \[Gamma][2]}]
\[Sigma]2 = \[Gamma][0] - \[Phi] . {\[Gamma][1], \[Gamma][2]}

然后计算逆相关函数

1
2
3
\[Gamma]0 = 1/\[Sigma]2 (1 + \[Phi][[1]]^2 + \[Phi][[2]]^2)
\[Gamma]1 = 1/\[Sigma]2 (-\[Phi][[1]] + \[Phi][[1]] \[Phi][[2]])
\[Gamma]2 = -(1/\[Sigma]2) \[Phi][[2]]

求解 Y-W 方程得二阶 MA 模型参数

1
2
3
4
\[Theta] = 
LinearSolve[{{\[Gamma]0, \[Gamma]1}, {\[Gamma]1, \[Gamma]0}}, {\
\[Gamma]1, \[Gamma]2}]
\[Sigma]2 = \[Gamma]0 - \[Theta] . {\[Gamma]1, \[Gamma]2}

极大似然估计

1
2
3
eproc = EstimatedProcess[data, 
MAProcess[{\[Theta]1, \[Theta]2}, \[Sigma]],
ProcessEstimator -> "MaximumLikelihood"]
1
MAProcess[{-0.617286, 0.712392}, 1.06552]

置信区间为

1
Quantile[NormalDistribution[0, Sqrt[1/N]], 1 - \[Alpha]/2]

若取 , 可得置信区间为