Arrays Matlab中的成对自举

Arrays Matlab中的成对自举,arrays,matlab,random,statistics-bootstrap,Arrays,Matlab,Random,Statistics Bootstrap,我想将“单变量bootstrapping”扩展为“多变量bootsrapping”,这意味着在第一步中,我使用以下代码从一维向量中随机抽取替换: s = RandStream.getGlobalStream(); reset(s) n = 100000; % # of independent random trials h = 52; % horizon T = size(Resid_standard, 1); Res

我想将“单变量bootstrapping”扩展为“多变量bootsrapping”,这意味着在第一步中,我使用以下代码从一维向量中随机抽取替换:

s = RandStream.getGlobalStream();
reset(s)

n = 100000;                  % # of independent random trials
h = 52;                     % horizon
T = size(Resid_standard, 1);

Resid_bootstrapped = Resid_standard(unidrnd(T, h, n));
现在,基本向量剩余标准不是一维向量,而是Tx2矩阵,我不仅要画随机数,还要画随机对

  • 我必须如何修改代码才能实现这一点
  • 单变量情况下的输出为10000x50矩阵。二维情况的输出将是三维的。我如何存储我的结果
一种解决方案是存储索引向量,利用线性索引,并连接结果:

r_ind = unidrnd(T, h, n);
Resid_bootstrapped = cat(3, Resid_standard(r_ind), Resid_standard(r_ind + T));
Resid\u bootstrapped
将是一个
h
×
n
×2矩阵

这甚至可以缩短为一个衬里:

Resid_bootstrapped = reshape(Resid_standard(unidrnd(T, h, n), [1,2]), h, n, 2);

如果合适的话,你可能想把这个问题重新提出来(我自己会做,但我不熟悉你问题的主题,所以我不确定它是否正确)。