Я использую пакет «boot» для вычисления приблизительного 2-стороннего загрузочного p-значения, но результат слишком далек от p-значения при использовании t.test. Я не могу понять, что я сделал неправильно в моем коде R. Может кто-нибудь, пожалуйста, дайте мне подсказку для этого
time = c(14,18,11,13,18,17,21,9,16,17,14,15,
12,12,14,13,6,18,14,16,10,7,15,10)
group=c(rep(1:2, each=12))
sleep = data.frame(time, group)
require(boot)
diff = function(d1,i){
d = d1[i,]
Mean= tapply(X=d$time, INDEX=d$group, mean)
Diff = Mean[1]-Mean[2]
Diff
}
set.seed(1234)
b3 = boot(data = sleep, statistic = diff, R = 5000, strata=sleep$group)
pvalue = mean(abs(b3$t) > abs(b3$t0))
pvalue
Двустороннее загрузочное p-значение (pvalue) = 0,4804, но двустороннее p-значение t.test составляет 0,04342. Оба значения р примерно в 11 раз больше. Как это может случиться?
mean(abs(b3$t0) < abs(b3$t-mean(b3$t)))
Ответы:
Вы используете загрузчик для генерации данных при эмпирическом распределении наблюдаемых данных. Это может быть полезно, чтобы дать доверительный интервал на разницу между этими двумя средствами:
Чтобы получить значение, вам нужно сгенерировать перестановки по нулевой гипотезе. Это можно сделать, например, так:п
В этом решении размер групп не является фиксированным, вы случайным образом переназначаете группу каждому индивиду, загружая ее из начального набора групп. Мне кажется законным, однако более классическое решение состоит в том, чтобы фиксировать количество людей в каждой группе, так что вы просто переставляете группы вместо начальной загрузки (это обычно мотивируется планированием эксперимента, где размеры групп заранее фиксируются заранее). ):
источник
Ответ Элвиса основан на перестановках, но, по моему мнению, он не дает четкого представления о том, что не так с оригинальным подходом начальной загрузки. Позвольте мне обсудить решение, основанное исключительно на начальной загрузке.
Основная проблема вашей оригинальной симуляции заключается в том, что bootstrap всегда предоставляет вам ИСТИННОЕ распределение статистики теста. Однако при вычислении p-значения необходимо сравнивать полученное значение тестовой статистики с ее распределением ПОД H0, т.е. не с истинным распределением!
[Давайте сделаем это ясно. Например, известно, что тестовая статистика T классического t-теста имеет классическое «центральное» t-распределение при H0 и нецентральное распределение в целом. Однако всем знаком тот факт, что наблюдаемое значение T сравнивается с классическим «центральным» t-распределением, то есть никто не пытается получить истинное [нецентральное] t-распределение для сравнения с T.]
Ваше значение p 0,4804 настолько велико, потому что наблюдаемое значение «t0» тестовой статистики Среднее [1] -Среднее [2] лежит очень близко к центру начальной загрузки образца «t». Это естественно и, как правило, так всегда [т.е. независимо от действительности H0], потому что загруженный образец «t» эмулирует АКТУАЛЬНОЕ распределение Mean [1] -Mean [2]. Но, как отмечено выше [и также Элвисом], вам действительно нужно распределение Mean [1] -Mean [2] ПОД H0. Очевидно, что
1) при H0 распределение Mean [1] -Mean [2] будет сосредоточено вокруг 0,
2) его форма не зависит от справедливости H0.
Эти две точки означают, что распределение Mean [1] -Mean [2] в H0 может эмулироваться загрузочным образцом «t» SHIFTED, так что он центрируется около 0. В R:
и соответствующее значение p будет:
что дает вам «очень хорошее» значение 0,0232. :-)
Позвольте мне заметить, что упомянутая выше точка «2) называется« переводной эквивалентностью »тестовой статистики, и она НЕ должна выполняться в целом! Т.е. для некоторых тестовых статистик смещение начальной загрузки "t" не дает вам достоверной оценки распределения тестовой статистики в соответствии с HO! Посмотрите на эту дискуссию и особенно на ответ П. Далгаарда: http://tolstoy.newcastle.edu.au/R/e6/help/09/04/11096.html
Ваша задача тестирования дает абсолютно симметричное распределение статистики теста, но имейте в виду, что существуют некоторые проблемы с получением ДВУСТОРОННИХ p-значений в случае перекошенного начального распределения статистики теста. Опять же, прочитайте приведенную выше ссылку.
[И, наконец, я бы использовал «чистый» тест перестановки в вашей ситуации; т.е. вторая половина Элвиса ответит. :-)]
источник
Существует множество способов расчета CI начальной загрузки и p-значений. Основная проблема заключается в том, что загрузчик не может генерировать данные при нулевой гипотезе. Тест на перестановку является жизнеспособной альтернативой этому. Чтобы использовать правильный загрузчик, вы должны сделать некоторые предположения о распределении выборки статистики теста.
нормальный бутстрап
Одним из подходов является нормальная начальная загрузка, где вы берете среднее и стандартное отклонение распределения начальной загрузки, вычисляете распределение выборки под нулевым значением, сдвигая распределение и используя нормальные процентили из нулевого распределения в точке оценки в исходной выборке начальной загрузки. , Это разумный подход, когда распределение начальной загрузки нормальное, обычно здесь достаточно визуального осмотра. Результаты, использующие этот подход, обычно очень близки к надежной или основанной на сэндвичах оценке ошибок, которая устойчива к предположениям о гетероскедастичности и / или конечной выборочной дисперсии. Допущение нормальной тестовой статистики является более сильным условием допущений в следующем тесте начальной загрузки, который я буду обсуждать.
процентиль бутстрап
Студенческий бутстрап
Пример программирования
В качестве примера я буду использовать
city
данные в пакете начальной загрузки. Доверительные интервалы начальной загрузки рассчитываются с помощью этого кода:и произвести этот вывод:
95% -й доверительный интервал для нормальной начальной загрузки получается путем вычисления:
Таким образом, p-значение получается:
Который соглашается, что 95% -й нормальный CI не включает нулевое значение отношения 1.
Процент CI получается (с некоторыми отличиями в связи с методами для связей):
И значение р для процентиля начальной загрузки:
Дает значение 0,035, которое также согласуется с доверительным интервалом с точки зрения исключения 1 из значения. В общем, мы не можем заметить, что, хотя ширина процентиля CI почти равна ширине нормального CI, и что процентиль CI дальше от нуля, что процентиль CI должен обеспечивать более низкие значения p. Это связано с тем, что форма распределения выборки, лежащего в основе CI для метода процентилей, является ненормальной.
источник
boot.ci
и использовать аргумент «тип» для выбора студенческого CI (вы также можете выбрать BCA CI). Тем не менее, как вы можете рассчитать р-значения? Вы используете оценку или статистику теста? У меня был похожий вопрос, ответ на который был бы очень признателен.