2016-07-10 2 views
2

Я хотел бы выразить «одномерную самонастройку» на «многомерный bootsrapping», то есть на первом этапе я рисую случайно с заменой из одномерного вектора, используя этот код:Бутстрапирования пар в Matlab

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)); 

Теперь основной вектор Resid_standard не является одномерным вектором, а матрицей Tx2, и я хочу не только нарисовать случайные числа, но и случайные пары.

  • Как мне изменить код для этого?
  • Выход в одномерном корпусе составляет матрицу 100000x50. Выход для двумерного случая будет трехмерным. Как я могу сохранить результаты?
+0

Вы могли бы хотеть RET-AG на вопрос [теги: статистика-бутстраповские], если это необходимо (я бы сделать это сам, но я «Я не знаком с темой вашего вопроса, и поэтому я не уверен, что это правильно». –

ответ

0

Одно из решений состоят в сохранении вектора индекса, использовать линейную индексацию и конкатенацию результаты:

r_ind = unidrnd(T, h, n); 
Resid_bootstrapped = cat(3, Resid_standard(r_ind), Resid_standard(r_ind + T)); 

Resid_bootstrapped будет тогда матрица h × n × 2.

Это даже может быть сокращен в однострочника:

Resid_bootstrapped = reshape(Resid_standard(unidrnd(T, h, n), [1,2]), h, n, 2); 
Смежные вопросы