Giá trị P bằng 0 trong phép thử hoán vị


15

Tôi có hai bộ dữ liệu và tôi muốn biết liệu chúng có khác nhau đáng kể hay không (điều này xuất phát từ " Hai nhóm có khác nhau đáng kể không? Thử nghiệm để sử dụng ").

Tôi quyết định sử dụng thử nghiệm hoán vị, thực hiện như sau trong R:

permutation.test <- function(coding, lncrna) {
    coding <- coding[,1] # dataset1
    lncrna <- lncrna[,1] # dataset2

    ### Under null hyphotesis, both datasets would be the same. So:
    d <- c(coding, lncrna)

    # Observed difference
    diff.observed = mean(coding) - mean(lncrna)
    number_of_permutations = 5000
    diff.random = NULL

    for (i in 1:number_of_permutations) {
        # Sample from the combined dataset
        a.random = sample (d, length(coding), TRUE)
        b.random = sample (d, length(lncrna), TRUE)
        # Null (permuated) difference
        diff.random[i] = mean(b.random) - mean(a.random)
    }

    # P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
    pvalue = sum(abs(diff.random) >= abs(diff.observed)) / number_of_permutations
    pvalue
}

Tuy nhiên, giá trị p không được bằng 0 theo bài viết này: http://www.statsci.org/smyth/pub/permp.pdf

Bạn khuyên tôi nên làm gì? Đây có phải là cách tính giá trị p:

pvalue = sum(abs(diff.random) >= abs(diff.observed)) / number_of_permutations

một cách tốt? Hoặc là tốt hơn làm sau đây?

pvalue = sum(abs(diff.random) >= abs(diff.observed)) + 1 / number_of_permutations + 1

1a.randomb.randomb.randoma.randomcodinglncrna

Bởi vì giá trị p là tập hợp các giá trị ít nhất là cực trị như quan sát được, nếu người ta đánh giá phân phối hoán vị, thì thống kê quan sát được nằm trong "hoán vị" được tính. Khi thực hiện ngẫu nhiên, thông thường sẽ tính số liệu thống kê quan sát được trong số các thống kê hoán vị được xem xét (vì lý do tương tự).
Glen_b -Reinstate Monica

Câu trả lời:


15

Thảo luận

Thử nghiệm hoán vị tạo ra tất cả các hoán vị có liên quan của bộ dữ liệu, tính toán thống kê thử nghiệm được chỉ định cho từng hoán vị đó và đánh giá thống kê thử nghiệm thực tế trong bối cảnh phân phối hoán vị kết quả của thống kê. Một cách phổ biến để đánh giá nó là báo cáo tỷ lệ thống kê (theo một cách nào đó) "như hoặc cực đoan" hơn so với thống kê thực tế. Điều này thường được gọi là "giá trị p."

Bởi vì tập dữ liệu thực tế là một trong những hoán vị đó, nên thống kê của nó sẽ nhất thiết phải nằm trong số những dữ liệu được tìm thấy trong phân phối hoán vị. Do đó, giá trị p không bao giờ có thể bằng không.

Trừ khi tập dữ liệu rất nhỏ (thông thường ít hơn khoảng 20-30 số) hoặc thống kê kiểm tra có dạng toán học đặc biệt tốt, không thể thực hiện được tất cả các hoán vị. (Một ví dụ trong đó tất cả các hoán vị được tạo ra xuất hiện tại Kiểm tra hoán vị trong R. ) Do đó, việc triển khai máy tính của các phép thử hoán vị thường lấy mẫu từ phân phối hoán vị. Họ làm như vậy bằng cách tạo ra một số hoán vị ngẫu nhiên độc lập và hy vọng rằng kết quả là một mẫu đại diện cho tất cả các hoán vị.

Do đó, bất kỳ số nào (chẳng hạn như "giá trị p") có nguồn gốc từ một mẫu như vậy chỉ là ước tính của các thuộc tính của phân phối hoán vị. Hoàn toàn có thể - và thường xảy ra khi hiệu ứng lớn - giá trị p ước tính bằng không. Không có gì sai với điều đó, nhưng nó ngay lập tức đặt ra vấn đề bị bỏ qua ở đây về giá trị p ước tính có thể khác bao nhiêu so với giá trị đúng? Bởi vì phân phối lấy mẫu của một tỷ lệ (chẳng hạn như giá trị p ước tính) là Binomial, độ không đảm bảo này có thể được giải quyết với khoảng tin cậy Binomial .


Ngành kiến ​​trúc

Một triển khai được xây dựng tốt sẽ theo sát các cuộc thảo luận trong tất cả các khía cạnh. Nó sẽ bắt đầu với một thói quen để tính toán thống kê kiểm tra, vì điều này để so sánh phương tiện của hai nhóm:

diff.means <- function(control, treatment) mean(treatment) - mean(control)

Viết một thói quen khác để tạo ra một hoán vị ngẫu nhiên của tập dữ liệu và áp dụng thống kê kiểm tra. Giao diện này cho phép người gọi cung cấp số liệu thống kê kiểm tra làm đối số. Nó sẽ so sánh các mphần tử đầu tiên của một mảng (được coi là nhóm tham chiếu) với các phần tử còn lại (nhóm "điều trị").

f <- function(..., sample, m, statistic) {
  s <- sample(sample)
  statistic(s[1:m], s[-(1:m)])
}

Thử nghiệm hoán vị được thực hiện trước tiên bằng cách tìm số liệu thống kê cho dữ liệu thực tế (giả sử ở đây được lưu trữ trong hai mảng controltreatment) và sau đó tìm số liệu thống kê cho nhiều hoán vị ngẫu nhiên độc lập:

z <- stat(control, treatment) # Test statistic for the observed data
sim<- sapply(1:1e4, f, sample=c(control,treatment), m=length(control), statistic=diff.means)

Bây giờ hãy tính ước tính nhị thức của giá trị p và khoảng tin cậy cho nó. Một phương thức sử dụng binconfthủ tục tích hợp trong HMiscgói:

require(Hmisc)                                    # Exports `binconf`
k <- sum(abs(sim) >= abs(z))                      # Two-tailed test
zapsmall(binconf(k, length(sim), method='exact')) # 95% CI by default

Một ý tưởng không tồi để so sánh kết quả với một thử nghiệm khác, ngay cả khi điều đó được biết là không hoàn toàn có thể áp dụng: ít nhất bạn có thể nhận được một thứ tự ý nghĩa về mức độ mà kết quả phải nằm. Trong ví dụ này (so sánh các phương tiện), bài kiểm tra t Student thường cho kết quả tốt:

t.test(treatment, control)

Kiến trúc này được minh họa trong một tình huống phức tạp hơn, với Rmã làm việc , tại Kiểm tra xem các biến có tuân theo phân phối tương tự hay không .


Thí dụ

100201,5

set.seed(17)
control <- rnorm(10)
treatment <- rnorm(20, 1.5)

Sau khi sử dụng mã trước để chạy thử nghiệm hoán vị, tôi đã vẽ mẫu phân phối hoán vị cùng với một đường thẳng đứng màu đỏ để đánh dấu thống kê thực tế:

h <- hist(c(z, sim), plot=FALSE)
hist(sim, breaks=h$breaks)
abline(v = stat(control, treatment), col="Red")

Nhân vật

Tính toán giới hạn tin cậy Binomial dẫn đến

 PointEst Lower        Upper
        0     0 0.0003688199

00,000373.16e-050,000370,000370,050,010,001


Bình luận

kN k/N(k+1)/(N+1)N

10102=1000.0000051.611,7phần triệu: nhỏ hơn một chút so với bài kiểm tra t Student đã báo cáo. Mặc dù dữ liệu được tạo bằng các trình tạo số ngẫu nhiên bình thường, sẽ chứng minh bằng cách sử dụng kiểm tra t Student, kết quả kiểm tra hoán vị khác với kết quả kiểm tra t của Student vì các phân phối trong mỗi nhóm quan sát không hoàn toàn bình thường.


Bài viết của Smyth & Phipson được trích dẫn ở trên cho thấy rõ tại sao k / N là một lựa chọn kém cho công cụ ước tính giá trị p. Tóm lại, đối với các mức ý nghĩa liên quan như alpha = 0,05, P ((k / N) <alpha | H0) có thể lớn hơn đáng ngạc nhiên so với alpha. Điều này có nghĩa là một phép thử hoán vị ngẫu nhiên sử dụng k / N làm công cụ ước tính giá trị p của nó và 0,05 làm ngưỡng loại bỏ của nó sẽ từ chối giả thuyết null hơn 5% số lần! Giá trị p bằng 0 là một trường hợp cực đoan của vấn đề này - với tiêu chí alpha = 0, chúng tôi hy vọng sẽ không bao giờ từ chối null, nhưng b / m có thể bằng 0 dưới null, dẫn đến từ chối sai.
Trisoloriansunscreen

1
@Tal "Một sự lựa chọn nghèo nàn" cho một mục đích cụ thể. Điều khác biệt chúng tôi với tư cách là nhà thống kê so với những người khác là sự hiểu biết của chúng tôi về vai trò của tính biến đổi trong phân tích dữ liệu và ra quyết định, cùng với khả năng của chúng tôi để định lượng sự biến đổi đó một cách thích hợp. Đó là cách tiếp cận được minh họa (và ngầm ủng hộ) trong câu trả lời của tôi ở đây. Khi nó được thực hiện, không có vấn đề như bạn mô tả, bởi vì người sử dụng thủ tục hoán vị được dẫn đến để hiểu những hạn chế và điểm mạnh của nó và sẽ có quyền tự do hành động theo mục tiêu của mình.
whuber

13

BMB+1M+1

(B là số lượng hoán vị ngẫu nhiên trong đó một thống kê lớn hơn hoặc bằng giá trị quan sát được lấy và M là tổng số hoán vị ngẫu nhiên được lấy mẫu).

BM ) trở nên quan trọng trong nhiều cài đặt so sánh, trong đó ước tính giá trị p rất nhỏ được lấy và sau đó được sửa bằng cách nhân với một yếu tố. Ước tính giá trị p bằng 0 dưới giá trị đặc biệt là thảm họa trong các cài đặt này, vì giá trị này bằng 0 bất kể điều chỉnh được áp dụng.


1
+1 Đây là một bản tóm tắt tốt về điểm chính của bài báo. Tôi đặc biệt đánh giá cao sự chú ý của bạn về sự khác biệt giữa giá trị p ước tính và giá trị p hoán vị thực sự.
whuber
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.