Matlab:与滞后的相关操作相关的混淆

时间:2014-11-21 01:09:25

标签: matlab time-series correlation matrix-inverse

我有一个时间序列模型y(t)= h^T y(t-1) + n(t),其中n(t)是一种激发并驱动过程的白高斯噪声。 yt = 1,2,...的线性回归模型的输出,表示数据点的数量。

问题:如果相关矩阵为Ryy = E[y(t)*y(t)^T],,则可以计算滞后随机变量的相关性,例如

 [E[y(t-1)*y(t-1)']]

通常,这些运算符和表达式也可在以下位置找到:

Slide2提到了自相关矩阵。在公式中,有Expectation运算符。那么如何在不使用内置命令的情况下实现滞后随机变量与其自身和其他类似表达式的乘积的期望呢?

我无法实现这些公式。请帮忙。

感谢您的任何解释!

更新:在对本课题进行多次修订后,已经归结为另一个问题Matlab: Calculating Correlation of time series。所以,这两个问题已经重复了。

以下是示例代码

y = randn(10,1);

for t = 1:10
disp(y(t));
end

Expectation_y =  sum(y(1:end))/10 % this give a scalar

Mean_y = mean(y); % This returns 10 values 

1 个答案:

答案 0 :(得分:1)

你可能会混淆随机向量的相关矩阵(多变量随机变量)和随机过程的自相关矩阵(随机过程)......

因此,如果你的系列是一个阶数为1的向量自回归模型(它似乎是h'是你的系数矩阵),那么确实E[y(t-1)*y(t-1)']是有意义的,并且是相关矩阵随机向量本身。

现在,在保持稳定性的情况下,您可以通过检查x_i的根det(I - h'*x) = 0是否在单位圆之外(模数大于1)来检查,然后{{{}的统计属性1}}等同于y[t_1]对于所有y[t_2]足够大的t_1, t_2。所以实际上:

E[y(t-1)*y(t-1)'] = E[y(t)*y(t)']

如果您的过程不是静止的,那么您就遇到了麻烦,因为现在您的相关矩阵取决于t_0的边界条件...

然而,您可能正在寻找的表达方式如下:

E[y(t)*y(t-1)'] = E[(h'*y(t-1) + n(t))*y(t-1)']

但是我不知道在E[y(t)*y(t)']的功能中是否存在这些的分析性表示...您可以在线进行研究,或者在幻灯片提供的参考文献中进行研究......

修改

由于OP已经提到这是一个简单的自回归模型而不是向量自回归模型,所以事情大大简化了。

对于静止的AR(1)模型,有均值,方差和自协方差(因此自相关)的很好的解析表示,我将在这里给出更一般的模型:y(t) = c + h*y(t-1) + n(t)

E[y(t)] = c/(1-h) --> so in your case: 0
Var[y(t)] = Var[n(t)]/(1-h^2) --> this is equal to the E[y(t)y(t)] or E[y(t-1)y(t-1)] that you are looking for
Cov[y(t)y(t-j)] = Var[n(t)]*h^j/(1-h^2)
Corr[y(t)y(t-j)] = h^j --> this is the autocorrelation in function of the timedifference j

您可以在参考书中或法语维基百科页面上找到所有这些数学推导,或者在法语维基百科页面上找到:here,在“Moments d'un processus AR(1)”

部分中找到

现在真的归结为你正在寻找的东西... E[y(t-1)y(t-1)]根据平稳性的定义简单等于E[y(t)y(t)],也许你真的在寻找E[y(t)y(t-1)]的推导,我将在这里发展:

 E[y(t)y(t-1)] = E[(h*y(t-1) + n(t))*y(t-1)] = E[(h*y(t-1))*y(t-1)] + E[n(t)*y(t-1)]

既然n(t)是t中的白噪声,它与y(t-1)不相关,所以E[n(t)*y(t-1)] = 0,所以我们有:

E[y(t)y(t-1)] = E[(h*y(t-1))*y(t-1)] = h*E[(y(t-1))*y(t-1)] = h*Var[y(t)] = h*Var[N(t)]/(1-h^2)

与上面给出的Cov[y(t)y(t-j)]的定义完全匹配......

希望这有帮助。