在命令行识别时间序列模型
这个例子展示了如何模拟时间序列,并使用参数和非参数方法来估计和比较时间序列模型。
生成模型和模拟模型输出
通过创建和模拟自回归(AR)多项式模型生成时间序列数据ts_orig
形式的
,在那里
为随机高斯噪声。该噪声表示模型的未测量输入。由于模型是时间序列,因此没有测量输入。
在计算之前 ,初始化随机数生成器种子,使噪声值可重复。
Ts_orig = idpoly([1 -1.75 0.9]);rng (“默认”) e = idinput(300,“该公司”);
模拟观察到的输出y_obs
这个模型和转换y_obs
到一个iddata
对象y
默认采样时间为1秒。将模型输出与输入噪声绘制在一起。
Y_obs = sim(ts_orig,e);Y = iddata(y_obs);情节(e)在情节(y_obs)标题(“输入噪声和原始模型输出”)传说(“该噪声”,模型输出的)举行从
估计模型和比较光谱
的函数etfe
而且水疗中心
提供两种进行光谱分析的非参数技术。比较估计的功率谱etfe
而且水疗中心
原来的模型。
Ts_etfe = etfe(y);Ts_spa = spa(y);谱(ts_etfe ts_spa ts_orig);传奇(“ts_ {etfe}’,“ts_ {spa}’,“ts_{源自}’)
现在用AR结构估计一个参数化模型。估计一个二阶AR模型,并将其频谱与原始模型进行比较水疗中心
估计。
Ts_ar = ar(y,2);谱(ts_spa ts_ar ts_orig);传奇(“ts_ {spa}’,“ts_ {ar}’,“ts_{源自}’)
AR模型的谱比非参数模型更能拟合原始模型谱。
估计和比较协方差
计算原始模型和AR模型的协方差函数,方法是将每个模型输出与自身进行卷积。
Ir_orig = sim(ts_orig,[1; 0 (24,1)]);Ry_orig = conv(ir_orig,ir_orig(25:-1:1));Ir_ar = sim(ts_ar,[1; 0 (24,1)]);Ry_ar = conv(ir_ar,ir_ar(25:-1:1));
同时估计协方差变化中
直接从观察到的输出y
使用xcorr
.
Ry = xcorr(y.y,24,“有偏见的”);
绘制并比较原始和估计的协方差。
情节(24:24”* (1,3),[Ry_orig, Ry_ar, Ry]);传奇(“Ry_{源自}’,“Ry_ {ar}’,“办法”)
估计AR模型的协方差,Ry_ar
,更接近原始协方差Ry_orig
.
预测和比较模型输出
使用函数比较原始模型和AR模型的三步预测精度或拟合百分比比较
.在这里,比较
计算的预测响应ts_orig
而且ts_ar
模型与原始模型输出数据y
,假设输入未测量
是零。第四个论点,3.
,是要预测的步数。
比较(y, ts_orig ts_ar 3);
图例中的百分比为拟合百分比,表示拟合优度。即使是原始模型,由于模型输入未测量,预测精度也远达不到100% 在预测过程中没有考虑到。估计AR模型的拟合值与原始模型接近,说明该AR模型是一个很好的估计。