MATLAB:滚动z-score
我有一个从2000年1月1日到2010年12月31日按升序排列的时间序列数据的MATLAB:滚动z-score,matlab,Matlab,我有一个从2000年1月1日到2010年12月31日按升序排列的时间序列数据的3650x1列向量。这意味着观测值是成行的,2000年1月1日的观测值在第一行,2010年12月31日的观测值在最后一行 我还有一个偏移的行向量和一个称为z_分数的空矩阵: offsets = [5 10 15 20] z_scores = nan(3650, 4) 我正在尝试填充z_分数。z_分数中的每一列对应一系列的offsetz分数 例如,z_分数的第一列将包含5个时段的z分数。z_分数的第二列将包含10个周期
3650x1
列向量。这意味着观测值是成行的,2000年1月1日的观测值在第一行,2010年12月31日的观测值在最后一行
我还有一个偏移的行向量和一个称为z_分数的空矩阵:
offsets = [5 10 15 20]
z_scores = nan(3650, 4)
我正在尝试填充z_分数
。z_分数
中的每一列对应一系列的offset
z分数
例如,z_分数的第一列将包含5个时段的z分数。z_分数的第二列
将包含10个周期的z分数,以此类推。每列中z_分数的第一个offset
标记将为NaN
目前,我循环通过偏移量
,这很好。然而,如果可能的话,我希望在每次迭代offset
时使用矢量化解决方案
for i=1:length(offset)
z_scores(:, i) = (data() - mean()) / std() % help!
end
我有所有的工具箱,所以我可以使用内置函数。如果有人想建议一个非矢量化的解决方案,我很乐意看到它
for i=1:length(offsets)
N = offsets(i);
z_scores(1:N, i) = zscore(data(1:N));
end