Phân phối hoán vị của thống kê kiểm tra của bạn không được đảm bảo đối xứng, vì vậy bạn không thể làm theo cách đó. Thay vào đó, bạn thêm cả hai đuôi. Trong trường hợp của bạn có hai mẫu độc lập, giả thuyết null là hai tham số vị trí bằng nhau. Giả sử phân phối liên tục và trải đều ở cả hai nhóm, chúng ta có khả năng trao đổi theo giả thuyết null. Kiểm tra thống kê là sự khác biệt về phương tiện, với dưới giá trị null.TE(T)=0
Giá trị cho trong mẫu ban đầu là và các giá trị của nó cho hoán vị . là viết tắt của "số lượng" một cái gì đó, ví dụ: là số lượng thống kê kiểm tra hoán vị. Khi đó, giá trị cho giả thuyết hai mặt là , trong đóTTempT⋆♯(⋅)♯(T⋆)ppts=pleft+pright
pleft=♯(T⋆<=min(Temp,−Temp))♯(T⋆)
pright=♯(T⋆>=max(Temp,−Temp))♯(T⋆)
(giả sử chúng ta có phân phối hoán vị hoàn chỉnh). Chúng ta hãy so sánh cả hai cách tiếp cận cho trường hợp của hai mẫu độc lập khi chúng ta có thể tính toán phân phối hoán vị chính xác (hoàn chỉnh).
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
Bây giờ hãy tính giá trị và xác nhận giải pháp được đề xuất với việc triển khai trong gói R. Quan sát rằng , vì vậy vấn đề là cách bạn tính .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 Đối với trường hợp Monte-Carlo nơi chúng tôi chỉ lấy mẫu từ phân phối hoán vị, giá trị sẽ được định nghĩa như sau: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
Lý do để thêm một trường hợp hoán vị cực đoan bằng trực giác là chúng ta cũng cần phải đếm mẫu thực nghiệm. Mặt khác, giá trị hoán vị có thể là 0 không thể xảy ra trong trường hợp liên tục (xem tại đây , lưu ý: một số văn bản khuyến nghị điều chỉnh này, một số thì không).p