如何生成移动平均线模型

时间:2014-08-15 17:30:32

标签: matlab moving-average autoregressive-models

为了生成自回归模型,我们有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);

2 个答案:

答案 0 :(得分:1)

您可以使用filter使用一行代码执行此操作。

让我们谈谈拉普拉斯域中的AR和MA。假设你有一个传递函数H = B / A,其中B和A是多项式。 B具有MA的系数,A将具有您的AR系数。在等式中:

enter image description here

因此,根据输入信号x,您可以使用Matlab的y=filter(B,A,x)生成AR,MA和ARMA流程。有关filter的文档为here。对于纯MA模型的特定情况,只需将B = 1,将A作为具有20个元素的向量。

您可能已经知道这一点,但为了以防万一并帮助未来的读者here是一个关于如何将您的差分方程转换为拉普拉斯域的评论的链接。 TL; DR:enter image description here

答案 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)流程') 等等