Адаптация кода из односторонних р-значений к двусторонним - PullRequest
1 голос
/ 22 мая 2019

У меня есть некоторый код от Rapach, Strauss and Zhou (2013), Журнал финансов.

Он вычисляет загрузочные p-значения для односторонних проверок гипотез,

H0: B=0 against H1: B>0

Isдля меня возможно адаптировать этот код для вычисления проверки гипотезы:

H0: B=0 against H1: B\=0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Computing statistics for wild bootstrapped pseudo samples
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

stats_boot=zeros(N+1,N,B);
for b=1:B;
    for j=1:N;
        [results_j_star,R_squared_j_star]=...
            Estimate_Granger_pairwise_GMM(Y_star(:,:,b),...
            Y_star(:,:,b),X_1_star(:,:,b),X_2_star(:,:,b),j);
        for i=1:(N-1);
            if j==1;
                stats_boot(i+1,j,b)=results_j_star(i,2);
            else
                if i<j;
                    stats_boot(i,j,b)=results_j_star(i,2);
                else
                    stats_boot(i+1,j,b)=results_j_star(i,2);
                end;
            end;
        end;
        stats_boot(N+1,j,b)=results_j_star(end,2);
        disp([b j]);
    end;
end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Computing wild bootstrapped p-values
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

for j=1:N;
    for i=1:N+1;
        stats_boot_i_j=stats_boot(i,j,:);
        stats_p_i_j=stats_boot_i_j>results_all(2,j,i);
        results_all(3,j,i)=sum(stats_p_i_j)/B;
    end;
end;

Ответы [ 2 ]

3 голосов
/ 22 мая 2019

В исходном коде строка stats_p_i_j=stats_boot_i_j>results_all(2,j,i); идентифицирует все значения, где результаты начальной загрузки больше, чем фактические результаты.Это обычный способ сделать односторонний тест.Вам нужно сделать двусторонний тест, который соответствует H0: B=0 against H1: B\=0.Чтобы преобразовать в двусторонний тест, нам просто нужно подсчитать все загруженные значения, которые больше или меньше (в основном не равны) фактических результатов.

Следовательно, в коде вместо использования>, вы используете ~=.Измененный код будет выглядеть так:

for j=1:N;
    for i=1:N+1;
        stats_boot_i_j=stats_boot(i,j,:);
        %changes begin here
        stats_p_i_j=stats_boot_i_j~=results_all(2,j,i);
        %changes end here
        results_all(3,j,i)=sum(stats_p_i_j)/B;
    end;
end;
1 голос
/ 27 мая 2019

Я полагаю, что исходный ответ неверен.

Если мы подумаем о проверке гипотезы для двустороннего ответа:

H0: b=0, HA:b\=0

Тогда приведенный выше ответ говорит нам только тогда, когдане равно критическому значению, которое будет в основном все время.

Но подумайте о t-тесте,

Двусторонний должен быть,

Reject H0 is |t|>t_(alpha/2)

Таким образом, ОП должен изменить код, чтобы учесть это.

Это должен быть комментарий, а не ответ, но у меня менее 1 представителя!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...