Адаптация кода от односторонних p-значений к двусторонним

У меня есть код из Rapach, Strauss and Zhou (2013), Journal of Finance.

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

H0: B=0 against H1: B>0

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

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;
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
0
89
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В исходном коде строка 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;

@TonyChivers Я отредактировал ответ, включив в него свои аргументы в пользу изменения. Спасибо, что указали на это.

ammportal 22.05.2019 18:25

Как вы думаете, ваш ответ неверен после другого ответа?

Tony Chivers 05.08.2019 08:51

Позволю себе не согласиться. В другом ответе говорится о том, как определить значимость полученного p-значения, тогда как ОП специально спрашивал, как рассчитать требуемое p-значение. Расчет не зависит от теста на значимость. В ttest также расчеты t-значения независимы, тогда как значимость рассчитывается с использованием метода, представленного во втором ответе.

ammportal 07.08.2019 13:55

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

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

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

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

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

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

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

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

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

В вашем ответе говорится о том, как определить значимость полученного p-значения, тогда как ОП специально спрашивал, как рассчитать требуемое p-значение. Расчет не зависит от теста на значимость. В ttest также расчеты t-значения независимы, тогда как значимость рассчитывается с использованием метода, представленного в вашем ответе.

ammportal 07.08.2019 13:56

Кроме того, аргумент в пользу включения alpha применим и к односторонним тестам. Поскольку исходный код не предусматривал этого, я подозреваю, что в данном случае это не требуется.

ammportal 08.08.2019 10:36

Согласен, но можем ли мы все согласиться с тем, что другой ответ неверен и его следует удалить. Смотрите мой ответ как длинный комментарий.

Francis Origi 27.08.2019 12:39

Другие вопросы по теме