时间序列分析作业 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]
|
若取 , 可得置信区间为