【问题标题】:MATLAB: rolling z-scoreMATLAB:滚动 z 分数
【发布时间】:2011-11-21 18:34:46
【问题描述】:

我有一个从 2000 年 1 月 1 日到 2010 年 12 月 31 日升序排列的时间序列数据的 3650x1 列向量。这意味着观测值在行中,2000 年 1 月 1 日的观测值位于第一行,2010 年 12 月 31 日的观测值位于最后一行。

我还有一个偏移量行向量和一个名为z_scores的空矩阵:

offsets = [5 10 15 20]
z_scores = nan(3650, 4)

我正在尝试填充 z_scoresz_scores 中的每一列对应于一系列offset z-scores。

例如,z_scores 的第一列将包含 5 个句点的 z 分数。 z_scores 的第二列将包含 10 个周期的 z 分数等。z_scores 的第一个 offset 指标将在每列中为 NaN

目前,我循环访问offsets,这很好。但是,如果可能的话,我更喜欢在offset 的每次迭代中使用矢量化解决方案。

for i=1:length(offset)

    z_scores(:, i) = (data() - mean()) / std() % help!

end

我拥有所有工具箱,因此我可以使用内置函数。如果有人想提出一个非矢量化的解决方案,我会很高兴看到它!

【问题讨论】:

    标签: matlab


    【解决方案1】:
    for i=1:length(offsets)
        N = offsets(i);
        z_scores(1:N, i) = zscore(data(1:N));
    end
    

    【讨论】:

      猜你喜欢
      • 2020-04-23
      • 2023-04-01
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多