为了生成自回归模型,我们有aryule()命令,我们也可以使用过滤器Estimating AR model。但是我如何生成MA模型?例如,有人可以展示如何生成MA(20)模型吗?我找不到任何合适的技术来做到这一点。噪声由非线性映射生成
epsilon(1) = 0.01;
for i =1 : N
epsilon(i+1) = 4*epsilon(i)*(1-epsilon(i));
end
因此,MA模型将在epsilon
条件下回归。
Q1:如果MA模型的代码和功能形式最好使用上述噪声模型显示MA(20),那将非常有用。
Q2:这就是我使用随机噪声生成AR(20)的方法,但不知道如何使用上面的等式作为噪声,而不是使用rand进行MA和AR
%Generate sine wave = A*sin(2*pi*f*t + phi)
t = linspace(0,1,1000);
A = 5;
f = 2;
phi = pi/8;
sinewave = A*sin(2*pi*f*t + phi);
noisy_sine=sinewave+0.5*randn(size(t));
subplot(1,2,1);
plot(t, sinewave)
hold on;
subplot(1,2,2);
plot(t,noisy_sine);
%Generate AR model(20)
order =20;
ARCoeff = aryule(noisy_sine,order);
答案 0 :(得分:1)
您可以使用filter
使用一行代码执行此操作。
让我们谈谈拉普拉斯域中的AR和MA。假设你有一个传递函数H = B / A,其中B和A是多项式。 B具有MA的系数,A将具有您的AR系数。在等式中:
因此,根据输入信号x
,您可以使用Matlab的y=filter(B,A,x)
生成AR,MA和ARMA流程。有关filter
的文档为here。对于纯MA模型的特定情况,只需将B = 1,将A作为具有20个元素的向量。
您可能已经知道这一点,但为了以防万一并帮助未来的读者here是一个关于如何将您的差分方程转换为拉普拉斯域的评论的链接。 TL; DR:
答案 1 :(得分:1)
我遇到了同样的问题。以下链接可以提供帮助:
https://www.mathworks.com/examples/econometrics/mw/econ-ex18477389-simulate-an-ma-process
模拟MA流程
此示例显示如何在不指定预抽样观察的情况下模拟来自静态MA(12)过程的样本路径。
内容 步骤1.指定模型。 步骤2.生成样本路径。 步骤3.绘制模拟方差。 步骤4.生成更多样本路径。 步骤1.指定模型。 指定MA(12)模型
$$ {y_t} = 0.5 + {\ varepsilon _t} + 0.8 {\ varepsilon _ {t - 1}} + 0.2 {\ varepsilon _ {t - 12}},$$
创新分布为高斯,方差为0.2。
model = arima(' Constant',0.5,' MA',{0.8,0.2},... ' MALags',[1,12],'方差',0.2); 步骤2.生成样本路径。 生成200个样本路径,每个路径有60个观察值。
RNG('默认') Y =模拟(模型,60,' NumPaths',200);
图 情节(Y,'颜色' [85,0.85,0.85]) 坚持,稍等 h =图(平均值(Y,2),' k',' LineWidth',2) 图例(h,'模拟均值','位置',' NorthWest') 标题(' MA(12)流程') 等等