การกระจายการเปลี่ยนแปลงของสถิติการทดสอบของคุณไม่รับประกันว่าจะสมมาตรดังนั้นคุณจึงไม่สามารถทำเช่นนั้นได้ คุณเพิ่มทั้งสองหางแทน ในกรณีของคุณจากตัวอย่างอิสระสองตัวอย่างสมมติฐานว่างคือพารามิเตอร์ตำแหน่งสองตัวนั้นเท่ากัน สมมติว่าการกระจายอย่างต่อเนื่องและการแพร่กระจายอย่างเท่าเทียมกันในทั้งสองกลุ่มเรามีการแลกเปลี่ยนภายใต้สมมติฐานว่าง สถิติการทดสอบคือความแตกต่างของค่าเฉลี่ยโดยภายใต้ค่า nullTE( T) = 0
ค่าสำหรับในกลุ่มตัวอย่างเดิมคือและค่านิยมสำหรับพีชคณิตดาว} ย่อมาจาก "number of" something เช่นคือจำนวนสถิติการทดสอบการเปลี่ยนแปลง จากนั้นสำหรับสมมติฐานสองด้านคือโดยที่TTEMPT⋆♯ ( ⋅ )♯ ( T⋆)พีพีทีเอส= pซ้าย+ pขวา
พีซ้าย= ♯ ( T⋆< =นาที( TEMP, - TEMP) )♯ ( T⋆)
พีขวา= ♯ ( T⋆> =สูงสุด( 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
ตอนนี้คำนวณค่า value และตรวจสอบโซลูชันที่เสนอกับการใช้งานในแพ็คเกจของ R สังเกตว่าดังนั้นมันเป็นเรื่องสำคัญที่ทางคุณคำนวณ{TS}พีcoin
พีซ้าย≠ หน้าขวาพีt s
> (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
ป.ล. สำหรับกรณี Monte-Carlo ที่เราสุ่มตัวอย่างจากการกระจายการเปลี่ยนแปลงเท่านั้นค่า value จะถูกกำหนดดังนี้:พี
พีซ้าย= ♯ ( T⋆< =นาที( TEMP, - TEMP) ) + 1♯ ( T⋆)+1
พีขวา= ♯ ( T⋆> =สูงสุด( TEMP, - TEMP) ) + 1♯ ( T⋆)+1
พีทีเอส= ♯ ( abs ( T)⋆)> =เอบีเอส( TEMP) )+1♯ ( T⋆) + 1
เหตุผลในการเพิ่มกรณีการเปลี่ยนแปลงที่รุนแรงมากขึ้นอย่างสังหรณ์ใจคือเราต้องนับตัวอย่างเชิงประจักษ์ด้วย มิฉะนั้นการเปลี่ยนแปลงอาจเป็น 0 ซึ่งไม่สามารถเกิดขึ้นได้ในกรณีต่อเนื่อง (ดูที่นี่หมายเหตุ: ข้อความบางข้อความแนะนำการแก้ไขนี้บางคนไม่ได้)พี