Tại sao việc dừng thử nghiệm A / B trước khi đạt được kích thước mẫu tối ưu là sai?


13

Tôi chịu trách nhiệm trình bày kết quả kiểm tra A / B (chạy trên các biến thể của trang web) tại công ty của tôi. Chúng tôi chạy thử nghiệm trong một tháng và sau đó kiểm tra các giá trị p đều đặn cho đến khi chúng tôi đạt được mức ý nghĩa (hoặc từ bỏ nếu không đạt được tầm quan trọng sau khi chạy thử nghiệm trong một thời gian dài), điều mà bây giờ tôi phát hiện ra là một thực tế sai lầm .

Tôi muốn dừng thực hành này ngay bây giờ, nhưng để làm điều đó, tôi muốn hiểu TẠI SAO điều này là sai. Tôi hiểu rằng kích thước hiệu ứng, kích thước mẫu (N), tiêu chí có ý nghĩa alpha (α) và sức mạnh thống kê hoặc beta được chọn hoặc ngụ ý (β) có liên quan về mặt toán học. Nhưng điều gì chính xác thay đổi khi chúng tôi dừng thử nghiệm trước khi chúng tôi đạt được kích thước mẫu yêu cầu?

Tôi đã đọc một vài bài đăng ở đây (cụ thể là cái này , cái nàycái này ), và họ nói với tôi rằng ước tính của tôi sẽ bị sai lệch và tỷ lệ lỗi Loại 1 của tôi tăng lên đáng kể. Nhưng làm thế nào điều đó xảy ra? Tôi đang tìm kiếm một lời giải thích toán học , một cái gì đó sẽ cho thấy rõ những ảnh hưởng của cỡ mẫu đến kết quả. Tôi đoán nó có liên quan đến các mối quan hệ giữa các yếu tố tôi đã đề cập ở trên, nhưng tôi không thể tìm ra các công thức chính xác và tự mình giải quyết chúng.

Ví dụ: dừng thử nghiệm sớm làm tăng tỷ lệ lỗi Loại 1. Ổn thỏa. Nhưng tại sao? Điều gì xảy ra để tăng tỷ lệ lỗi loại 1? Tôi đang thiếu trực giác ở đây.

Xin hãy giúp đỡ.



1
Có tôi đã đi qua liên kết này, nhưng tôi không hiểu ví dụ đưa ra.
sgk

xin lỗi Gopalakrishnan - đã không thấy rằng liên kết đầu tiên của bạn đã chỉ ra điều đó rồi.
seanv507

1
Bạn có thể giải thích những gì bạn không hiểu. Toán học / trực giác có vẻ khá rõ ràng: nó không dừng lại quá nhiều trước cỡ mẫu yêu cầu, nhưng liên tục kiểm tra. , vì vậy bạn không thể sử dụng thử nghiệm được thiết kế để kiểm tra một lần nhiều lần. P(i1Nxi>θ)P(xN>θ)
seanv507

@GopalakrishnanShanker giải thích toán học được đưa ra trong câu trả lời của tôi
tomka

Câu trả lời:


4

Các thử nghiệm A / B chỉ đơn giản là kiểm tra lặp lại trên cùng một dữ liệu với mức lỗi loại 1 ( ) cố định là thiếu sót cơ bản. Có ít nhất hai lý do tại sao điều này là như vậy. Đầu tiên, các thử nghiệm lặp lại có tương quan nhưng các thử nghiệm được tiến hành độc lập. Thứ hai, cố định không tính đến các thử nghiệm được tiến hành nhân lên dẫn đến lạm phát lỗi loại 1.αα

Để xem cái đầu tiên, giả sử rằng trên mỗi quan sát mới, bạn tiến hành một thử nghiệm mới. Rõ ràng bất kỳ hai giá trị p tiếp theo sẽ tương quan vì trường hợp không thay đổi giữa hai thử nghiệm. Do đó, chúng ta thấy một xu hướng trong âm mưu của @ Bernhard thể hiện sự tương quan của các giá trị p này.n1

Để xem lần thứ hai, chúng tôi lưu ý rằng ngay cả khi các thử nghiệm độc lập, xác suất có giá trị p dưới tăng theo số lượng thử nghiệm trong đó là sự kiện của một giả thuyết null bị từ chối sai. Vì vậy, xác suất để có ít nhất một kết quả xét nghiệm dương tính đi ngược lại khi bạn lặp lại thử nghiệm a / b. Nếu sau đó bạn chỉ cần dừng lại sau kết quả dương tính đầu tiên, bạn sẽ chỉ cho thấy tính chính xác của công thức này. Đặt khác đi, ngay cả khi giả thuyết null là đúng, cuối cùng bạn sẽ từ chối nó. Do đó, kiểm tra a / b là cách cuối cùng để tìm hiệu ứng trong trường hợp không có.αt

P(A)=1(1α)t,
A1

Vì trong tình huống này cả hai mối tương quan và nhiều thử nghiệm giữ cùng một lúc, giá trị p của thử nghiệm phụ thuộc vào giá trị p của . Vì vậy, nếu cuối cùng bạn đạt được , bạn có thể sẽ ở lại khu vực này một thời gian. Bạn cũng có thể thấy điều này trong âm mưu của @ Bernhard trong khu vực 2500 đến 3500 và 4000 đến 5000.t+1tp<α

Nhiều thử nghiệm mỗi lần là hợp pháp, nhưng thử nghiệm đối với một cố định thì không. Có nhiều quy trình xử lý cả quy trình thử nghiệm và thử nghiệm tương quan. Một họ sửa lỗi thử nghiệm được gọi là kiểm soát tỷ lệ lỗi khôn ngoan của gia đình . Những gì họ làm là đảm bảoα

P(A)α.

Điều chỉnh nổi tiếng nhất (do tính đơn giản của nó) là Bonferroni. Ở đây chúng tôi đặt theo đó có thể dễ dàng thấy rằng nếu số lượng thử nghiệm độc lập lớn. Nếu các xét nghiệm có tương quan thì có khả năng là bảo thủ, . Vì vậy, điều chỉnh dễ dàng nhất bạn có thể thực hiện là chia mức alpha của bạn cho số lượng thử nghiệm bạn đã thực hiện.

αadj=α/t,
P(A)αP(A)<α0.05

Nếu chúng tôi áp dụng Bonferroni cho mô phỏng của @ Bernhard và phóng to khoảng trên trục y, chúng tôi sẽ tìm thấy âm mưu bên dưới. Để rõ ràng, tôi giả định rằng chúng tôi không kiểm tra sau mỗi lần lật đồng xu (thử nghiệm) mà chỉ mỗi phần trăm. Đường đứt nét màu đen là tiêu chuẩn và đường đứt nét màu đỏ là điều chỉnh Bonferroni.(0,0.1)α=0.05

nhập mô tả hình ảnh ở đây

Như chúng ta có thể thấy việc điều chỉnh là rất hiệu quả và chứng minh mức độ triệt để chúng ta phải thay đổi giá trị p để kiểm soát tỷ lệ lỗi khôn ngoan của gia đình. Cụ thể bây giờ chúng tôi không tìm thấy bất kỳ thử nghiệm quan trọng nào nữa, vì lẽ đó là do giả thuyết khống của @ Berhard là đúng.

Đã làm điều này, chúng tôi lưu ý rằng Bonferroni rất bảo thủ trong tình huống này do các bài kiểm tra tương quan. Có những thử nghiệm ưu việt sẽ hữu ích hơn trong tình huống này theo nghĩa là có , chẳng hạn như thử nghiệm hoán vị . Ngoài ra có nhiều điều để nói về thử nghiệm hơn là chỉ đề cập đến Bonferroni (ví dụ: tra cứu tỷ lệ phát hiện sai và các kỹ thuật Bayes liên quan). Tuy nhiên, điều này trả lời câu hỏi của bạn với một lượng toán tối thiểu.P(A)α


Đây là mã:

set.seed(1)
n=10000
toss <- sample(1:2, n, TRUE)

p.values <- numeric(n)
for (i in 5:n){
  p.values[i] <- binom.test(table(toss[1:i]))$p.value
}
p.values = p.values[-(1:6)]
plot(p.values[seq(1, length(p.values), 100)], type="l", ylim=c(0,0.1),ylab='p-values')
abline(h=0.05, lty="dashed")
abline(v=0)
abline(h=0)
curve(0.05/x,add=TRUE, col="red", lty="dashed")

2
Điều này làm việc cho tôi. Bây giờ tôi sẽ phải dịch bài này sang bài phát biểu kinh doanh để nói lên quan điểm của mình với các tiền bối, nhưng đó là vấn đề của riêng tôi. Cảm ơn bạn rất nhiều
sgk

8

Nếu giả thuyết null là đúng, thì mọi người thường kỳ vọng giá trị p sẽ rất cao. Đây không phải là sự thật. Nếu giả thuyết null là đúng, thì p là biến ngẫu nhiên phân bố đồng đều. Có nghĩa là theo thời gian sẽ dưới 0,05 chỉ là ngẫu nhiên. Nếu bạn nhìn vào rất nhiều mẫu phụ khác nhau, đôi khi giá trị p sẽ dưới 0,05.

Để dễ dàng nắm bắt hơn, đây là một mô phỏng nhỏ trong R:

Điều này sẽ ném một đồng xu 10.000 lần và chúng tôi biết, đó là một đồng tiền công bằng:

set.seed(1)
n=10000
toss <- sample(1:2, n, TRUE)

Bắt đầu từ lần ném thứ 5, điều này sẽ thực hiện kiểm tra nhị thức cho sự công bằng sau mỗi lần ném và lưu các giá trị p:

p.values <- numeric(n)
for (i in 5:n){
     p.values[i] <- binom.test(table(toss[1:i]))$p.value
}

Và cái này sẽ vẽ các giá trị p lần lượt:

plot(p.values, type="l")
abline(h=0.05)

nhập mô tả hình ảnh ở đây

Như bạn có thể thấy, giá trị p giảm xuống dưới 0,05 một vài lần chỉ để phục hồi và cuối cùng kết thúc là vượt xa p = 0,05. Nếu chúng tôi dừng thử nghiệm bất cứ lúc nào p là "đáng kể", chúng tôi sẽ đi đến kết luận sai. Người ta có thể lập luận "Chúng tôi có một mẫu gồm hơn 4000 thử nghiệm iid và p dưới 0,05. Chúng tôi có thể ngừng lấy mẫu một cách an toàn hơn nữa". Bạn càng thường xuyên kiểm tra giá trị p, bạn càng có nhiều khả năng kiểm tra khi nhúng ngẫu nhiên. Trong trường hợp này, chúng tôi đã tạo dữ liệu theo và biết rằng là đúng.H 0H0H0

(Chỉ cần mở hoàn toàn, tôi đã thử nhiều hơn một hạt giống cho trình tạo số trước khi rõ ràng như ví dụ này, nhưng đó là công bằng cho mục đích giáo dục. Nếu bạn đã Rcài đặt và chạy, bạn có thể dễ dàng chơi với các số .)


Cảm ơn các thí nghiệm đơn giản. Nhưng nói rằng tôi đã dừng thử nghiệm ở một giai đoạn như vậy (khi giá trị p <0,05), kết quả của tôi sẽ có ý nghĩa gì? (khác với thực tế là nó sai). Tôi có thể bồi thường bằng cách giảm ngưỡng giá trị p không?
sgk

+1 Lưu ý các bài kiểm tra tương quan và bài toán nhiều bài kiểm tra liên quan. Xem câu trả lời mở rộng của tôi với các tùy chọn điều chỉnh bên dưới, dựa trên ví dụ (rất tốt) của bạn.
tomka

Bạn không thể bù lại bằng cách giảm ngưỡng giá trị p . Chọn luôn là một sự thỏa hiệp trong phạm vi xung đột giữa lỗi loại I và lỗi loại II, còn được gọi là lỗi alpha và lỗi beta. Tất nhiên bạn có thể bù đắp cho một trong số họ hoàn toàn hoặc cho từng người trong số họ, nhưng cuối cùng cuộc xung đột này ngày càng trở nên khó khăn hơn khi bạn thường xuyên kiểm tra. Tôi đã đọc rằng Baysian tuyên bố họ ít gặp vấn đề với điều đó nhưng với ít kiến ​​thức tôi nghĩ rằng điều này chỉ đúng với mô hình tin vào giá trị của một thống kê và không có trong các quyết định có / không. alphaαα
Bernhard

Quan điểm chính của tôi là kiểm soát tỷ lệ lỗi thông minh trong gia đình (FWER) hoặc tỷ lệ phát hiện sai (FDR) cả lỗi nhắm mục tiêu loại 1. Kiểm soát lỗi loại 2 ít xảy ra sự cố trong các thử nghiệm a / b do các mẫu thường rất lớn.
tomka

@GopalakrishnanShanker nếu bạn dừng lại ở đầu tiên, điều đó có nghĩa là bạn có dương tính giả. Xem câu trả lời dưới đây, cũng để điều chỉnhp=0.05
tomka 8/11/2016
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.