Matlab:计算时间序列的相关性

Matlab:计算时间序列的相关性,matlab,time-series,covariance,mean,Matlab,Time Series,Covariance,Mean,时间序列模型表示为 y(t) = 0.5 + 0.3y(t-1) + n(t) 在哪里 n(t) = 0.1*randn(500,1) for t=1,2,...,500 包含相关和协方差矩阵。相关公式为:E[y(t)*y(t)^t],可使用xcorr调用该公式。我想知道如何计算其滞后版本的单个相关矩阵E[y(t-1)*y(t-1)^t],而不使用内置命令,以便最终实现以下表达式 trace([E[y(t-1)*y(t-1)']]^-1) 更新 例如,让 y = randn(10,1)

时间序列模型表示为

y(t) = 0.5 + 0.3y(t-1) + n(t)
在哪里

n(t) = 0.1*randn(500,1) for t=1,2,...,500
包含相关和协方差矩阵。相关公式为:
E[y(t)*y(t)^t]
,可使用
xcorr
调用该公式。我想知道如何计算其滞后版本的单个相关矩阵
E[y(t-1)*y(t-1)^t]
,而不使用内置命令,以便最终实现以下表达式

 trace([E[y(t-1)*y(t-1)']]^-1) 
更新

例如,让

y = randn(10,1);

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

Expectation_y =  sum(y(1:end))/10
同样,我如何对滞后变量执行期望,然后实现公式=

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

我不确定我是否理解你问题的所有细节,但如果你只是想对信号的延迟版本进行操作,你可以这样做

%xcorr with a 1-sample shifted version of itself
[c,lags]=xcorr(t(1:end-1),t(2:end));  

%xcorr with a 2-sample shifted version of itself
[c,lags]=xcorr(t(1:end-2),t(3:end));

%etc

如果xcorr不是您想要的操作,您可以使用此创建信号时移版本的索引方法执行任何操作。

您的协方差表达式包含键入错误,它应该是cov=E[(y(t)-均值)^2](),您的表达式类似于自相关系数c1().您是在寻找均值和cov的显式表达式,还是AR(1)过程的符号表达式?实际上,我认为措辞是错误的-我想应该是
E[(y(t)-E[y(t)]*(y(t-1)-E[y(t-1])] >但我很困惑如何使用Buffix<代码> Meuts函数。对于这个问题,你所写的是(带有小的侥幸)有效的Matlab代码——那么它有什么问题?@ BDECAF:问题是我如何得到这个乘法=y(t-1)*y(t-1)的答案,t=1到1000(比如说)。?这将生成一个矩阵。然后我需要获取期望值,然后跟踪期望值。这与计算构成相关矩阵的单个元素“E[y(t)*y(t)^t]”非常相似。在当前问题中,我不知道如何实现分析表达式“E[y(t-1)*y(t-1)^t]”。如果“E[y*y^t]'是可行的,那么当然也可以实现滞后版本。有办法吗?请帮助。非常感谢!这部分回答了我的问题,但有一件事我不明白。请澄清一下。假设t是变量,在第一个语句xcorr(t(1:end-1),t(2:end)),这是否对应于t(I-1)*t(I-2)?问题的另一半是如何计算此操作结果的期望值。我想知道是否有索引规则。对于t=2,我发现y(t)写为y(2:end-1);y(t-1)=y(1:end-1)等等。我弄不清楚什么时候放end-1,什么是开始的索引。关于索引…如果我们假设
t
的长度为100,那么我们的时移向量
t(2:end)
的长度为99。为了与非移位向量
t
进行比较,我们需要将非移位向量缩短1…因此
t(1:end-1)
。另一个例子也是如此…
t(3:end)
的长度为98个元素,因此我们通过
t(1:end-2)缩短
t
使其长度为98,因此,在包含相同数量元素的上下文中,这两种书写方式意味着相同的权利。但是,t(3:end)不等于t(1:end-2)因为在前一种表示法中,我们不考虑前两个样本,而在后一种情况下,最后两个样本被丢弃。我们为什么要这样做来计算相关性?你能解释一下吗?我刚刚注意到了这一点。