Почему сбор данных до получения значительного результата увеличивает частоту появления ошибок типа I?


60

Мне было интересно, почему именно сбор данных, пока не будет получен значительный результат (например, ) (т. Е. P-хакерство), увеличивает частоту ошибок типа I?p<.05

Я также был бы очень признателен за Rдемонстрацию этого явления.


6
Вы, вероятно, имеете в виду «р-хакерство», потому что «хакинг» относится к «гипотезе после того, как результаты известны», и, хотя это можно считать связанным грехом, это не то, о чем вы, кажется, спрашиваете.
whuber

2
Еще раз, xkcd отвечает на хороший вопрос с картинками. xkcd.com/882
Джейсон

7
@ Джейсон, я должен не согласиться с твоей ссылкой; это не говорит о совокупном сборе данных. Тот факт, что даже кумулятивный сбор данных об одном и том же и использование всех данных, которые вы должны вычислить значением, является неправильным, гораздо более нетривиален, чем случай в этом xkcd. p
JiK

1
@ JiK, честный звонок. Я был сосредоточен на аспекте «продолжай пытаться, пока мы не получим результат, который нам нравится», но ты абсолютно прав, в этом вопросе гораздо больше этого.
Джейсон

@whuber и user163778 дали очень похожие ответы, как обсуждалось для практически идентичного случая «A / B (последовательное) тестирование» в этой теме: stats.stackexchange.com/questions/244646/… Там мы спорили в терминах Family Wise Error скорости и необходимость корректировки значения p при повторном тестировании. Этот вопрос фактически может рассматриваться как повторяющаяся проблема тестирования!
Томка

Ответы:


87

Проблема в том, что вы даете себе слишком много шансов пройти тест. Это просто модная версия этого диалога:

Я переверну тебя, чтобы увидеть, кто платит за ужин.

Хорошо, я называю головы.

Крысы, ты победил. Лучшие два из трех?


Чтобы лучше это понять, рассмотрим упрощенную, но реалистичную модель этой последовательной процедуры . Предположим, вы начнете с «пробного запуска» определенного количества наблюдений, но готовы продолжить эксперименты дольше, чтобы получить значение р менее . Нулевая гипотеза состоит в том, что каждое наблюдение происходит (независимо) от стандартного нормального распределения. Альтернатива состоит в том, что приходят независимо от нормального распределения единичной дисперсии с ненулевым средним. Статистика теста будет представлять собой среднее значение всех наблюдений, , деленное на их стандартную ошибку, . Для двустороннего теста критическими значениями являютсяX i X i n ˉ X 1 / 0.05XiXinX¯ 0,0250,975Zα=±1,961/n0.025 и процентных пункта от стандартного нормального распределения, приблизительно.0.975Zα=±1.96

Это хороший тест - для одного эксперимента с фиксированным размером выборки . У него есть ровно вероятности отклонить нулевую гипотезу, независимо от того, каким может быть .5 % nn5%n

Давайте алгебраически преобразуем это в эквивалентный тест, основанный на сумме всех значений,С п = Х 1 + Х 2 + + Х п = п ˉ Х .n

Sn=X1+X2++Xn=nX¯.

Таким образом, данные являются "значительными", когда

|Zα||X¯1/n|=|Snn/n|=|Sn|/n;

это,

(1)|Zα|n|Sn|.

Если мы умны, мы сократим наши потери и сдадимся, как только станет очень большим, а данные все еще не поступят в критическую область.n

Это описывает случайную прогулку . Формула сводится к возведению изогнутого параболического «забора» или барьера вокруг графика случайного блуждания : результат является «значительным», если любая точка случайного блуждания попадает в забор.Sn(1)(n,Sn)

Это свойство случайных прогулок, поэтому , если мы будем ждать достаточно долго, очень вероятно, что в какой-то момент результат будет выглядеть значительным.

Вот 20 независимых симуляций с пределом выборок. Все они начинают тестирование при выборках, после чего мы проверяем, находится ли каждая точка вне барьеров, которые были нарисованы в соответствии с формулой . Начиная с того момента, когда статистический тест является первым «значимым», моделируемые данные окрашиваются в красный цвет.n=5000n=30(1)

фигура

Вы можете видеть, что происходит: случайное блуждание все больше и больше поднимается и опускается с ростом . Барьеры разносятся примерно с одинаковой скоростью, но не всегда достаточно быстро, чтобы избежать случайного блуждания.n

В 20% этих симуляций была обнаружена «значительная» разница - обычно довольно рано - даже при том, что в каждой из них нулевая гипотеза абсолютно верна! Выполнение большего количества симуляций этого типа указывает на то, что истинный размер теста близок к а не к предполагаемому значению : то есть ваша готовность продолжать искать «значимость» до размера выборки дает вам шанс отклонить ноль, даже если ноль имеет значение true.25%α=5%500025%

Обратите внимание, что во всех четырех «значимых» случаях по мере продолжения тестирования данные перестали выглядеть значимыми в некоторых точках. В реальной жизни экспериментатор, который останавливается рано, теряет возможность наблюдать такие «реверсии». Эта избирательность путем необязательной остановки смещает результаты.

В последовательных тестах честности и добродетели барьеры - это линии. Они распространяются быстрее, чем изогнутые барьеры, показанные здесь.

library(data.table)
library(ggplot2)

alpha <- 0.05   # Test size
n.sim <- 20     # Number of simulated experiments
n.buffer <- 5e3 # Maximum experiment length
i.min <- 30     # Initial number of observations
#
# Generate data.
#
set.seed(17)
X <- data.table(
  n = rep(0:n.buffer, n.sim),
  Iteration = rep(1:n.sim, each=n.buffer+1),
  X = rnorm((1+n.buffer)*n.sim)
)
#
# Perform the testing.
#
Z.alpha <- -qnorm(alpha/2)
X[, Z := Z.alpha * sqrt(n)]
X[, S := c(0, cumsum(X))[-(n.buffer+1)], by=Iteration]
X[, Trigger := abs(S) >= Z & n >= i.min]
X[, Significant := cumsum(Trigger) > 0, by=Iteration]
#
# Plot the results.
#
ggplot(X, aes(n, S, group=Iteration)) +
  geom_path(aes(n,Z)) + geom_path(aes(n,-Z)) +
  geom_point(aes(color=!Significant), size=1/2) +
  facet_wrap(~ Iteration)

12
+1. Пересекает ли в конечном итоге случайное блуждание с вероятностью 1? Я знаю, что ожидаемое расстояние после шагов равно и теперь я посмотрел, что константа пропорциональности равна , что меньше 1,96. Но я не уверен, что с этим делать. nO(n)2/π
говорит амеба, восстанови Монику

10
@amoeba Это отличный вопрос, от которого я постарался уклониться :-). Если бы я мог быстро вычислить ответ (или знал бы его не по буквам), я бы опубликовал его. К сожалению, я слишком занят, чтобы анализировать это прямо сейчас. Самая длинная симуляция, которую я сделал, была 1000 итераций, смотрящих на с . Доля «значимых» результатов, по-видимому, стабилизируется около . n=5,000,000α=0.051/4
whuber

4
Интересен вопрос о вероятности попадания на границу . Я полагаю, что теория броуновского движения Эйнштейна, связавшая ее с уравнением диффузии, могла бы быть интересной точкой зрения. У нас есть функция распределения, распространяющаяся со скоростью и «потерей частиц», равной половине значения функции распределения на этой границе (половина отходит от нуля, через границу, другая половина Идет назад). По мере того, как эта функция распределения распространяется и становится тоньше, «потери» становятся меньше. Я предполагаю, что это эффективно создаст лимит, то есть это 1/4. α=0.05n
Секст Эмпирик

6
Интуитивно понятная причина, почему вы получите в какой-то момент почти наверняка: пусть и . Значение после первых испытаний практически не зависит от значения после первых испытаний . Таким образом, у вас будет бесконечное число «почти» независимых значений, поэтому одно из них гарантированно будет . Конечно, реальная конвергенция намного быстрее, чем говорит этот аргумент. (А если вам не нравится , вы можете попробовать или ...)p<0.05n1=10nk+1=10nkpnk+1pnkp<0.0510nkA(nk)BB(nk)
JiK

10
@CL. Я ожидал вашего возражения несколько лет назад: 17 - мое публичное семя. Фактически, в ранних (гораздо более длительных) исследованиях я постоянно получал более высокие показатели значимости, значительно превышающие 20%. Я установил семя на 17 для создания окончательного изображения и был разочарован тем, что эффект не был таким драматичным. Такова жизнь. Соответствующий пост (иллюстрирующий вашу точку зрения) находится по адресу stats.stackexchange.com/a/38067/919 .
whuber

18

Люди, которые плохо знакомы с проверкой гипотез, склонны думать, что, как только значение ap опустится ниже 0,05, добавление большего количества участников приведет только к дальнейшему снижению значения p. Но это не правда. Согласно нулевой гипотезе, значение ap равномерно распределяется между 0 и 1 и может колебаться в этом диапазоне совсем немного.

Я смоделировал некоторые данные в R (мои навыки R довольно просты). В этой симуляции я собираю 5 точек данных - каждая со случайно выбранным членством в группе (0 или 1) и каждая со случайно выбранной конечной мерой ~ N (0,1). Начиная с участника 6, я провожу t-тест на каждой итерации.

for (i in 6:150) {
  df[i,1] = round(runif(1))
  df[i,2] = rnorm(1)
  p = t.test(df[ , 2] ~ df[ , 1], data = df)$p.value
  df[i,3] = p
}

Значения p приведены на этом рисунке. Обратите внимание, что я нахожу значительные результаты, когда размер выборки составляет около 70-75. Если я остановлюсь там, я в конечном итоге буду полагать, что мои выводы важны, потому что я упустил тот факт, что мои значения р подскочили назад с большей выборкой (это на самом деле произошло со мной однажды с реальными данными). Поскольку я знаю, что обе популяции имеют среднее значение 0, это должно быть ложным положительным результатом. Это проблема с добавлением данных до p <.05. Если вы добавите достаточное количество тестов, p в конечном итоге переступит порог 0,05, и вы сможете обнаружить значительный эффект для любого набора данных.

введите описание изображения здесь


1
Спасибо, но ваш Rкод не работает вообще.
Реза

3
@Reza, который вы должны создать в dfпервую очередь (желательно в окончательном размере). Поскольку код начинает писать в строке 6, подразумевается (что соответствует тексту ответа), что df уже существует с 5 уже заполненными строками. Может быть, что-то вроде этого было задумано: n150<-vector("numeric",150); df<-data.frame(gp=n150,val=n150,pval=n150); init<-1:5; df[init,1]<-c(0,1,0,1,0); df[init,2]<-rnorm(5)(затем запустите код выше), тогда, возможно: plot(df$pv[6:150])
Glen_b

@ user263778 очень сфокусированный полезный и уместный ответ. Но слишком много путаницы в интерпретации так называемого p-значения - танцующей красоты.
Субхаш С. Давар

@ user163778 - вы должны включить код, чтобы тоже все инициализировать
Дейсон

17

Этот ответ касается только вероятности окончательного получения «значимого» результата и распределения времени до этого события по модели @ whuber.

Как и в модели @whuber, пусть обозначает значение статистики теста после того, как наблюдений было собрано, и предположим, что наблюдения являются стандартными нормальными , Тогда , что ведет себя как стандартное броуновское движение с непрерывным временем, если мы на данный момент игнорируем тот факт, что у нас есть процесс с дискретным временем (левый график ниже).S(t)=X1+X2++XttX1,X2,

(1)S(t+h)|S(t)=s0N(s0,h),
S(t)

Обозначим через первое время прохождения через зависящие от времени барьеры (количество наблюдений, необходимое до того, как тест станет значительным).TS(t)±zα/2t

Рассмотрим преобразованный процесс полученный путем масштабирования на его стандартное отклонение в момент времени и позволяя новому масштабу времени , чтобы Из (1) и (2) следует, что обычно распределяется с и Y(τ)S(t)tτ=lnt

(2)Y(τ)=S(t(τ))t(τ)=eτ/2S(eτ).
Y(τ+δ)
E(Y(τ+δ)|Y(τ)=y0)=E(e(τ+δ)/2S(eτ+δ)|S(eτ)=y0eτ/2)(3)=y0eδ/2
Var(Y(τ+δ)|Y(τ)=y0)=Var(e(τ+δ)/2S(eτ+δ)|S(eτ)=y0eτ/2)(4)=1eδ,
то есть - это процесс Орнштейна-Уленбека (OU) с нулевым средним с постоянной дисперсией 1 и временем возврата 2 (правый график ниже).Y(τ)

введите описание изображения здесь

Для преобразованной модели барьеры становятся независимыми от времени константами, равными . Тогда известно ( Nobile et. Al. 1985 ; Ricciardi & Sato, 1988 ), что первое время прохождения OU-процесса через эти барьеры приблизительно экспоненциально распределено с некоторым параметром (в зависимости от барьеров в ) (оценивается как для ниже). Существует также дополнительная точечная масса размера в . «Отказ» от±zα/2TY(τ)λ±zα/2λ^=0.125α=0.05τ = 0 H 0 T = e T E T 1 + ( 1 - α ) 0 e τ λ e - λ τ d τ . T λ > 1 αατ=0H0в конечном итоге происходит с вероятностью 1. Следовательно, (число наблюдений, которое необходимо собрать, прежде чем получить «значительный» результат), приблизительно соответствует логарифмическому экспоненциальному распределению с ожидаемым значением Таким образом, имеет конечное ожидание, только если (для достаточно большие уровни значимости ).T=eT

(5)ET1+(1α)0eτλeλτdτ.
Tλ>1α

Вышесказанное игнорирует тот факт, что для реальной модели является дискретным и что реальный процесс является дискретным, а не непрерывным временем. Следовательно, вышеупомянутая модель переоценивает вероятность того, что барьер был пересечен (и недооценивает ), потому что путь выборки с непрерывным временем может пересекать барьер только временно между двумя соседними дискретными моментами времени и . Но такие события должны иметь незначительную вероятность для больших . Е Т т т + 1 тTETtt+1t

На следующем рисунке показана оценка Каплана-Мейера в логарифмическом масштабе вместе с кривой выживания для экспоненциального приближения с непрерывным временем (красная линия).P(T>t)

введите описание изображения здесь

Код R:

# Fig 1
par(mfrow=c(1,2),mar=c(4,4,.5,.5))
set.seed(16)
n <- 20
npoints <- n*100 + 1
t <- seq(1,n,len=npoints)
subset <- 1:n*100-99
deltat <- c(1,diff(t))
z <- qnorm(.975)
s <- cumsum(rnorm(npoints,sd=sqrt(deltat)))
plot(t,s,type="l",ylim=c(-1,1)*z*sqrt(n),ylab="S(t)",col="grey")
points(t[subset],s[subset],pch="+")
curve(sqrt(t)*z,xname="t",add=TRUE)
curve(-sqrt(t)*z,xname="t",add=TRUE)
tau <- log(t)
y <- s/sqrt(t)
plot(tau,y,type="l",ylim=c(-2.5,2.5),col="grey",xlab=expression(tau),ylab=expression(Y(tau)))
points(tau[subset],y[subset],pch="+")
abline(h=c(-z,z))

# Fig 2
nmax <- 1e+3
nsim <- 1e+5
alpha <- .05
t <- numeric(nsim)
n <- 1:nmax
for (i in 1:nsim) {
  s <- cumsum(rnorm(nmax))
  t[i] <- which(abs(s) > qnorm(1-alpha/2)*sqrt(n))[1]
}
delta <- ifelse(is.na(t),0,1)
t[delta==0] <- nmax + 1
library(survival)
par(mfrow=c(1,1),mar=c(4,4,.5,.5))
plot(survfit(Surv(t,delta)~1),log="xy",xlab="t",ylab="P(T>t)",conf.int=FALSE)
curve((1-alpha)*exp(-.125*(log(x))),add=TRUE,col="red",from=1,to=nmax)

Спасибо! Есть ли у вас (стандартные) ссылки на эти результаты? Например, почему Y-процесс является процессом Орнштейна-Уленбека и где мы можем найти заявленный результат времени прохождения?
Грасси

1
Я не видел такого преобразования нигде, но я считаю, что (3) и (4) легко следует из (1) и (2), а нормальность полностью характеризует процесс OU. Исследователь Google выдает много результатов о приблизительной экспоненциальности распределения времени первого прохождения для процесса OU. Но я полагаю, что в этом случае (в приближении непрерывного времени) точно экспоненциально распределен (за исключением дополнительной точечной массы в ), потому что происходит от стационарного распределения процесса , τ = 0 Y ( 0 )Tτ=0Y(0)
Ярле Туфто


@Grassie На самом деле, мой аргумент, основанный на отсутствии памяти, был ошибочным. Продолжительность экскурсий вне границ экспоненциально не распределена. Следовательно, основываясь на том же аргументе, что и в stats.stackexchange.com/questions/298828/… , хотя исходит из стационарного распределения, время первого прохождения не точно распределено экспоненциально. Y(0)
Ярле Туфто

5

Нужно сказать, что приведенное выше обсуждение относится к частому мировоззрению, для которого множественность исходит из шансов, которые вы предоставляете, чтобы данные были более экстремальными, а не из шансов, которые вы даете эффекту на существование. Коренная причина проблемы заключается в том, что в p-значениях и ошибках типа I используется обратный поток информации об обратном времени, что делает важным «как вы сюда попали» и что могло произойти вместо этого. С другой стороны, байесовская парадигма кодирует скептицизм в отношении влияния на сам параметр, а не на данные. Это позволяет интерпретировать каждую последующую вероятность независимо от того, вычислили ли вы другую последнюю вероятность эффекта 5 минут назад или нет. Более подробную информацию и простую симуляцию можно найти по адресу http://www.fharrell.com/2017/10/continuous-learning-from-data-no.


1
Давайте представим лабораторию, возглавляемую доктором Б., который является набожным байесовцем. Лаборатория изучает социальное грунтование и выпустила постоянный поток статей, показывающих различные эффекты грунтовки, каждый раз поддерживаемые байесовским фактором BF> 10. Если они никогда не проводят последовательное тестирование, это выглядит довольно убедительно. Но допустим, я узнал, что они всегда проводят последовательное тестирование и продолжают получать новых предметов, пока не получат BF> 10 в пользу эффектов грунтовки . Тогда ясно, что весь этот труд бесполезен. Тот факт, что они проводят последовательное тестирование + отбор, имеет огромное значение, независимо от того, основаны ли они на p-значениях BF.
говорит амеба, восстанови Монику

1
Я не использую факторы Байеса. Но если бы они использовали апостериорные вероятности и проводили каждый эксперимент до апостериорной вероятности положительного эффекта , с этими вероятностями не было бы абсолютно ничего плохого. Посмотрите на цитату в начале моей статьи в блоге - смотрите ссылку в моем ответе выше. Степень уверенности в отношении эффекта грунтовки зависит от данных и предыдущего убеждения. Если вы (как и я) очень сомневаетесь в таких эффектах прайминга, вам лучше использовать довольно скептически настроенный априор при вычислении апостериорных вероятностей. Вот и все. 0.95
Фрэнк Харрелл

1
Я прочитал ваш пост в блоге, заметил цитату и посмотрел на похожую статью ( необязательный останов: для байесовцев нет проблем ), на которую кто-то еще ссылался в комментариях к другому ответу. Я до сих пор не понимаю. Если «null» (отсутствие эффектов праймирования) истинно, то, если доктор B желает отбирать пробы достаточно долго, он сможет получать апостериорную вероятность> 0,95 каждый раз, когда он запускает эксперимент (именно так, как доктор F мог бы получить р <0,05 каждый раз). Если это «абсолютно ничего плохого», тогда я не знаю, что это такое.
говорит амеба, восстанови Монику

2
Ну, я оспариваю эту "большую точку зрения". Я не думаю, что это правда. Как я повторяю, под нулевым нулевым эффектом и с любым заданным априором (скажем, некоторым широким непрерывным априором с центром в нуле) повторная выборка всегда рано или поздно даст> 0,98 апостериорной вероятности, сконцентрированной выше нуля. Человек, который пробует, пока это не произойдет (т.е. применяет это правило остановки), будет ошибаться каждый раз . Как вы можете сказать, что этот человек будет неправ только в 0,02 раза? Я не понимаю При этих конкретных обстоятельствах он не будет, он всегда будет неправ.
говорит амеба, восстанови Монику

2
Я так не думаю. Моя главная мысль заключается в том, что несправедливо и непоследовательно обвинять частые процедуры в том, что они страдают от последовательного тестирования, и защищать байесовские процедуры, которые не были затронуты последовательным тестированием. Моя точка зрения (которая является математическим фактом) состоит в том, что на них обоих влияют одинаково, а это означает, что последовательное тестирование может увеличить ошибку байесовского типа I до 100%. Конечно, если вы говорите, что в принципе вас не интересуют коэффициенты ошибок типа I, это не имеет значения. Но тогда частые процедуры не должны быть обвинены в этом либо.
говорит амеба: восстанови Монику

3

Мы считаем, что исследователь собирает выборку размером , , чтобы проверить некоторую гипотезу . Он отклоняет, если подходящая тестовая статистика превышает ее критическое значение уровня . Если это не так, он собирает другую выборку размером , и отклоняет ее, если тест отклоняет для объединенной выборки . Если он по-прежнему не получает отказа, он поступает таким образом, всего до раз.x 1 θ = θ 0 t α c n x 2 ( x 1 , x 2 ) Knx1θ=θ0tαcnx2(x1,x2)K

Эта проблема, по-видимому, уже была рассмотрена П. Армитиджем, К. К. Макферсоном и BC Роу (1969), Журнал Королевского статистического общества. Серия A (132), 2, 235-244: «Повторные проверки значимости накапливающихся данных» .

Байесовская точка зрения по этому вопросу, также обсуждаемая здесь, кстати, обсуждается в Berger and Wolpert (1988), «Принцип правдоподобия» , раздел 4.2.

Вот частичная репликация результатов Armitage et al (код ниже), которая показывает, как повышаются уровни значимости при , а также возможные поправочные коэффициенты для восстановления критических значений уровня- . Обратите внимание, что поиск по сетке занимает некоторое время - реализация может быть довольно неэффективной.αK>1α

Размер стандартного правила отклонения как функция количества попытокK

введите описание изображения здесь

Размер как функция увеличения критических значений для разныхK

введите описание изображения здесь

Скорректированные критические значения для восстановления 5% тестов в зависимости отK

введите описание изображения здесь

reps <- 50000

K <- c(1:5, seq(10,50,5), seq(60,100,10)) # the number of attempts a researcher gives herself
alpha <- 0.05
cv <- qnorm(1-alpha/2)

grid.scale.cv <- cv*seq(1,1.5,by=.01) # scaled critical values over which we check rejection rates
max.g <- length(grid.scale.cv)
results <- matrix(NA, nrow = length(K), ncol=max.g)

for (kk in 1:length(K)){
  g <- 1
  dev <- 0
  K.act <- K[kk]
  while (dev > -0.01 & g <= max.g){
    rej <- rep(NA,reps)
    for (i in 1:reps){
      k <- 1
      accept <- 1
      x <- rnorm(K.act)
      while(k <= K.act & accept==1){
        # each of our test statistics for "samples" of size n are N(0,1) under H0, so just scaling their sum by sqrt(k) gives another N(0,1) test statistic
        rej[i] <- abs(1/sqrt(k)*sum(x[1:k])) > grid.scale.cv[g] 
        accept <- accept - rej[i]
        k <- k+1
      }
    }
    rej.rate <- mean(rej)
    dev <- rej.rate-alpha
    results[kk,g] <- rej.rate
    g <- g+1
  }
}
plot(K,results[,1], type="l")
matplot(grid.scale.cv,t(results), type="l")
abline(h=0.05)

cv.a <- data.frame(K,adjusted.cv=grid.scale.cv[apply(abs(results-alpha),1,which.min)])
plot(K,cv.a$adjusted.cv, type="l")
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.