Розподіл перестановки вашої тестової статистики не гарантується симетричним, тому ви не можете це зробити так. Натомість ви додаєте обидва хвоста. У вашому випадку двох незалежних зразків нульовою гіпотезою є те, що два параметри розташування рівні. Припускаючи безперервні розподіли та однакове поширення в обох групах, ми маємо обмінність під нульовою гіпотезою. Статистика тесту - різниця в засобах, при цьому під нулем.E ( T ) = 0TE(T)=0
Значення для у вихідному зразку становить , а його значення для перестановок . короткий для "число" чогось, наприклад, - кількість статистики тестування перестановки. Тоді -значення для двосторонньої гіпотези - , деT emp T ⋆ ♯ ( ⋅ ) ♯ ( T ⋆ ) p p ts = p вліво + p праворучTTempT⋆♯(⋅)♯(T⋆)ppts=pleft+pright
pleft=♯(T⋆<=min(Temp,−Temp))♯(T⋆)
pright=♯(T⋆>=max(Temp,−Temp))♯(T⋆)
(якщо ми маємо повний розподіл перестановки). Порівняємо обидва підходи для випадку двох незалежних вибірок, коли ми можемо обчислити точний (повний) розподіл перестановки.
set.seed(1234)
Nj <- c(9, 8) # group sizes
DVa <- rnorm(Nj[1], 5, 20)^2 # data group 1
DVb <- rnorm(Nj[2], 10, 20)^2 # data group 2
DVab <- c(DVa, DVb) # data from both groups
IV <- factor(rep(c("A", "B"), Nj)) # grouping factor
idx <- seq(along=DVab) # all indices
idxA <- combn(idx, Nj[1]) # all possible first groups
# function to calculate test statistic for a given permutation x
getDM <- function(x) { mean(DVab[x]) - mean(DVab[!(idx %in% x)]) }
resDM <- apply(idxA, 2, getDM) # test statistic for all permutations
diffM <- mean(DVa) - mean(DVb) # empirical stest statistic
Тепер обчисліть -значення та обґрунтуйте запропоноване рішення з реалізацією в пакеті R. Зауважте, що , тож має значення, яким способом обчислити .pcoin
pleft≠prightpts
> (pL <- sum(resDM <= min(diffM, -diffM)) / length(resDM)) # left p-value
[1] 0.1755245
> (pR <- sum(resDM >= max(diffM, -diffM)) / length(resDM)) # right p-value
[1] 0.1585356
> 2*pL # doubling left p-value
[1] 0.351049
> 2*pR # doubling right p-value
[1] 0.3170712
> pL+pR # two-sided p-value
[1] 0.3340601
> sum(abs(resDM) >= abs(diffM)) / length(resDM) # two-sided p-value (more concise)
[1] 0.3340601
# validate with coin implementation
> library(coin) # for oneway_test()
> oneway_test(DVab ~ IV, alternative="two.sided", distribution="exact")
Exact 2-Sample Permutation Test
data: DVab by IV (A, B)
Z = 1.0551, p-value = 0.3341
alternative hypothesis: true mu is not equal to 0
PS Для випадку Монте-Карло, де ми вибираємо лише з перестановки перестановки, -значення будуть визначені так:p
pleft=♯(T⋆<=min(Temp,−Temp))+1♯(T⋆)+1
pright=♯(T⋆>=max(Temp,−Temp))+1♯(T⋆)+1
pts=♯(abs(T⋆)>=abs(Temp))+1♯(T⋆)+1
Причиною інтуїтивного додавання ще одного екстремального випадку перестановки є те, що нам також потрібно порахувати емпіричний зразок. В іншому випадку перестановка -значення може бути 0, що не може відбуватися у безперервному випадку (див. Тут , зауважте: деякі тексти рекомендують це виправлення, інші - не).p