Làm thế nào người ta có thể phát triển một quy tắc dừng trong phân tích sức mạnh của hai tỷ lệ độc lập?


18

Tôi là một nhà phát triển phần mềm làm việc trên các hệ thống thử nghiệm A / B. Tôi không có một nền tảng thống kê vững chắc nhưng đã tiếp thu kiến ​​thức trong vài tháng qua.

Một kịch bản thử nghiệm điển hình liên quan đến việc so sánh hai URL trên một trang web. Một lần khách truy cập LANDING_URLvà sau đó được chuyển tiếp đến một cách ngẫu nhiên một trong hai URL_CONTROLhoặc URL_EXPERIMENTAL. Một khách truy cập tạo thành một mẫu và điều kiện chiến thắng đạt được khi khách truy cập thực hiện một số hành động mong muốn trên trang web đó. Điều này tạo thành một chuyển đổi và tỷ lệ tỷ lệ chuyển đổi là tỷ lệ chuyển đổi (thường được biểu thị dưới dạng phần trăm). Tỷ lệ chuyển đổi điển hình cho một URL nhất định là một cái gì đó trong phạm vi 0,01% đến 0,08%. Chúng tôi chạy thử nghiệm để xác định cách URL mới so sánh với URL cũ. Nếu URL_EXPERIMENTALđược hiển thị tốt hơn URL_CONTROL, chúng tôi thay thế URL_CONTROLbằng URL_EXPERIMENTAL.

Chúng tôi đã phát triển một hệ thống sử dụng các kỹ thuật kiểm tra giả thuyết đơn giản. Tôi đã sử dụng các câu trả lời cho một câu hỏi CrossValidated khác ở đây để phát triển hệ thống này.

Một bài kiểm tra được thiết lập như sau:

  • Ước tính tỷ lệ chuyển đổi CRE_CONTROLcủa URL_CONTROLtính sử dụng dữ liệu lịch sử.
  • Tỷ lệ chuyển đổi mục tiêu mong muốn CRE_EXPERIMENTALcủa URL_EXPERIMENTALđược đặt.
  • Một mức ý nghĩa 0,95 thường được sử dụng.
  • Công suất 0,8 thường được sử dụng.

Cùng với nhau, tất cả các giá trị này được sử dụng để tính kích thước mẫu mong muốn. Tôi đang sử dụng hàm R power.prop.testđể lấy kích thước mẫu này.

Một thử nghiệm sẽ chạy cho đến khi tất cả các mẫu được thu thập. Tại thời điểm này, khoảng tin cậy cho CR_CONTROLCR_EXPERIMENTALđược tính toán. Nếu chúng không trùng nhau, thì một người chiến thắng có thể được tuyên bố với mức ý nghĩa 0,95 và sức mạnh là 0,8.

Tuy nhiên, người dùng thử nghiệm của chúng tôi có hai mối quan tâm chính:

1. Nếu, tại một số thời điểm trong quá trình thử nghiệm, đủ mẫu được thu thập để hiển thị người chiến thắng rõ ràng, thử nghiệm có thể bị dừng không?

2. Nếu không có người chiến thắng được tuyên bố vào cuối thử nghiệm, chúng ta có thể chạy thử nghiệm lâu hơn để xem liệu chúng ta có thể thu thập đủ mẫu để tìm ra người chiến thắng không?

Cần lưu ý rằng có nhiều công cụ thương mại ngoài kia cho phép người dùng của họ thực hiện chính xác những gì người dùng của chúng ta mong muốn. Tôi đã đọc được rằng có nhiều ngụy biện với những điều trên, nhưng tôi cũng nảy ra ý tưởng về quy tắc dừng và muốn khám phá khả năng sử dụng quy tắc như vậy trong các hệ thống của chúng ta.

Đây là hai cách tiếp cận chúng tôi muốn xem xét:

1. Sử dụng power.prop.test, so sánh tỷ lệ chuyển đổi được đo hiện tại với số lượng mẫu hiện tại và xem có đủ mẫu được thu thập để tuyên bố người chiến thắng hay không.

Ví dụ: Một thử nghiệm đã được thiết lập để xem liệu hành vi sau có tồn tại trong hệ thống của chúng tôi không:

  • CRE_CONTROL: 0,1
  • CRE_EXPERIMENTAL: 0,1 * 1,3
  • Với các tham số này, cỡ mẫu Nlà 1774.

Tuy nhiên, khi thử nghiệm tiến bộ và đạt tới 325 mẫu, CRM_CONTROL(tỷ lệ chuyển đổi được kiểm soát) là 0,08 và CRM_EXPERIMENTALlà 0,15. power.prop.testđược chạy trên các tỷ lệ chuyển đổi này và Nđược tìm thấy là 325. Chính xác số lượng mẫu cần thiết để tuyên bố CRM_EXPERIMENTALlà người chiến thắng! Tại thời điểm này, chúng tôi hy vọng rằng bài kiểm tra có thể kết thúc. Tương tự, nếu thử nghiệm đạt 1774 mẫu nhưng không tìm thấy người chiến thắng, nhưng sau đó nó đạt 2122 mẫu đủ để cho thấy CRM_CONTROL0,1 và CRM_EXPERIMENTAL0,125 là kết quả mà người chiến thắng có thể được tuyên bố.

Trong một câu hỏi liên quan, người dùng khuyên rằng một thử nghiệm như vậy ít đáng tin hơn do khuyến khích dừng sớm có ít mẫu hơn và cũng dễ bị sai lệch ước tính và số lỗi Loại I và Loại II tăng lên. Có một số cách để làm cho quy tắc dừng này hoạt động? Đây là cách tiếp cận ưa thích của chúng tôi vì nó có nghĩa là ít thời gian lập trình cho chúng tôi. Có lẽ quy tắc dừng này có thể hoạt động bằng cách cung cấp một số loại điểm số hoặc điểm số đo lường mức độ tin cậy của bài kiểm tra nên được dừng lại sớm?

2. Sử dụng phân tích tuần tự hoặc SPRT .

Các phương pháp kiểm tra này được thiết kế chính xác cho tình huống mà chúng tôi thấy: làm thế nào người dùng của chúng tôi có thể bắt đầu thử nghiệm và kết thúc thử nghiệm theo cách mà họ không lãng phí thời gian trong thử nghiệm? Chạy thử nghiệm quá lâu hoặc phải bắt đầu thử nghiệm với các thông số khác nhau.

Trong hai phương pháp trên, tôi ủng hộ SPRT vì toán học dễ nắm bắt hơn một chút và vì có vẻ như nó có thể dễ lập trình hơn. Tuy nhiên, tôi không hiểu cách sử dụng hàm khả năng trong ngữ cảnh này. Nếu ai đó có thể xây dựng một ví dụ về cách tính tỷ lệ khả năng, tổng tích lũy của tỷ lệ khả năng và tiếp tục thông qua một ví dụ minh họa một tình huống khi một người sẽ tiếp tục theo dõi, khi người ta chấp nhận giả thuyết khống và giả thuyết thay thế, điều đó sẽ giúp chúng tôi xác định xem SPRT có phải là hướng đi đúng đắn hay không.


2
Tôi khen bạn không dùng đến voodoo. Khi bạn đang sử dụng một công cụ và bạn không hiểu chính xác những gì nó đang làm hoặc cách thức hoạt động của nó, thì bạn không đủ điều kiện để giải thích kết quả của công cụ. Khi một phân tích thúc đẩy quyết định kinh doanh và bạn đang đặt thời gian và tiền bạc vào kết quả, nó sẽ thể hiện quyền sở hữu nếu bạn dành thời gian để hiểu nguồn dữ liệu. Đó là loại công việc khó khăn mang lại cho bạn nhiều cơ hội hơn thay vì "ở trong bầy đàn".
EngrStudent - Phục hồi Monica

Câu trả lời:


7

Đây là một vấn đề thú vị và các kỹ thuật liên quan có rất nhiều ứng dụng. Chúng thường được gọi là chiến lược "giám sát tạm thời" hoặc "thiết kế thử nghiệm tuần tự" (bài viết trên wikipedia, mà bạn liên kết đến, không may là hơi thưa thớt), nhưng có một số cách để làm điều này. Tôi nghĩ rằng @ user27564 đã sai khi nói rằng những phân tích này nhất thiết phải là Bayes - chắc chắn cũng có những cách tiếp cận thường xuyên để theo dõi tạm thời.

MộtSBSMộtBP(Một)= =P(B)= =0,558x như vậy mà 1-F(x;100;0,5)<αF

Logic tương tự cho phép bạn tìm "điểm không thể tránh khỏi" cho các thử nghiệm khác trong đó:

  1. Tổng kích thước mẫu * là cố định và
  2. Mỗi quan sát đóng góp một lượng giới hạn cho mẫu.

Điều này có thể dễ dàng cho bạn thực hiện - tính toán các tiêu chí dừng ngoại tuyến và sau đó chỉ cần cắm nó vào mã trang web của bạn - nhưng bạn thường có thể làm tốt hơn nữa nếu bạn sẵn sàng chấm dứt thử nghiệm không chỉ khi kết quả không thể tránh khỏi , nhưng khi nó cũng rất khó thay đổi.

MộtBMột

Có một số cách tiếp cận khác nữa. Các phương pháp tuần tự nhóm được thiết kế cho các tình huống mà bạn không thể có được số lượng đối tượng đã đặt và các đối tượng nhỏ giọt với tốc độ thay đổi. Tùy thuộc vào lưu lượng truy cập trang web của bạn, bạn có thể hoặc không muốn xem xét điều này.

Có một số lượng lớn các gói R nổi xung quanh CRAN, nếu đó là những gì bạn đang sử dụng để phân tích. Một nơi tốt để bắt đầu thực sự có thể là Chế độ xem nhiệm vụ thử nghiệm lâm sàng , vì rất nhiều công việc này ra khỏi lĩnh vực đó.


[*] Chỉ cần một số lời khuyên thân thiện: hãy cẩn thận khi xem các giá trị quan trọng được tính từ số lượng điểm dữ liệu rất lớn. Khi bạn thu thập càng nhiều dữ liệu, cuối cùng bạn sẽ tìm thấy một kết quả quan trọng, nhưng hiệu quả có thể rất nhỏ. Chẳng hạn, nếu bạn hỏi cả hành tinh rằng họ thích A hay B hơn, rất có thể bạn sẽ không thấy tỷ lệ chia chính xác 50:50, nhưng có lẽ không đáng để thử lại sản phẩm của bạn nếu tỷ lệ chia là 50.001: 49.999. Tiếp tục kiểm tra kích thước hiệu ứng (nghĩa là chênh lệch tỷ lệ chuyển đổi) quá!


1
Để giải quyết rõ ràng mối quan tâm của người dùng của bạn: Có, bạn chắc chắn có thể kết thúc phân tích sớm. Điều này xảy ra mọi lúc cho các thử nghiệm lâm sàng - thuốc là một thành công lớn đến mức họ có đủ dữ liệu về hiệu quả của nó và muốn cung cấp cho những người mắc kẹt trong nhóm kiểm soát (hoặc, nhiều khả năng, thuốc là rất lớn phá sản / làm cho mọi thứ tồi tệ hơn). Tuy nhiên, việc mở rộng thử nghiệm gây tranh cãi hơn - có các phương pháp để sửa cho nhiều "ngoại hình" nhưng tốt hơn hết là bạn nên sửa N tối đa trước - bạn luôn có thể dừng sớm!
Matt Krause

2
Cảm ơn vì điều này, tôi hoàn toàn đồng ý với việc dừng lại nếu thử nghiệm là không thể tránh khỏi, điều đó thực sự có ý nghĩa! Với điều đó 'dừng lại nếu nó thực sự không thể xảy ra' tôi sẽ nghi ngờ một người thường xuyên thực sự sẽ đồng ý. Không có gì ít hơn sau đó nói: Này, 95%? Tôi sẽ nói 93% cũng tốt! Tôi có nghĩa là nó cũng sẽ tốt khi chỉ cần hài lòng với độ tin cậy 90%, nhưng là một người thường xuyên trước khi tìm kiếm dữ liệu!
SebastianNeubauer

1
Tôi không phải là người thường xuyên sử dụng vòm, tôi cũng không chơi trên TV, nhưng tôi nghĩ bạn vẫn có thể có một cách giải thích thường xuyên hợp lý về quy tắc dừng sớm - nếu tôi chạy thử nghiệm này 100 lần, tôi có thường xuyên nhận được câu trả lời khác nhau nếu tôi dừng lại bây giờ so với nếu tôi chạy đến hoàn thành? Đánh giá tôi đã liên kết chỉ ra rằng đây là một trong những trường hợp tốt đẹp mà có thể làm hài lòng người Bayes và người thường xuyên cùng một lúc ...
Matt Krause

α

1
@ RussellS.Pierce: Tôi nghĩ nó phụ thuộc. Rõ ràng, việc cắt giảm sẽ không, nhưng một số phương pháp khác thì có. Ví dụ, thử nghiệm O'Brein và Flemming có thể sử dụng nhiều dữ liệu hơn, nhưng cũng có thể từ chối trước đó và thử nghiệm của Pocock thậm chí còn hơn thế. Rõ ràng nó phụ thuộc vào chi tiết cụ thể: cuốn sách được liên kết ở trên có một ví dụ với một số giá trị hợp lý (kích thước hiệu ứng: 0,25, alpha = 0,05, power = 0,9, 5 ngoại hình). Phiên bản N cố định cần 170 đối tượng để từ chối; Phiên bản OBF cần tối đa 180, và Pocock cần tối đa 205, nhưng số lượng đối tượng dự kiến ​​là 130 và 117, tương ứng.
Matt Krause

1

Bạn có thể dừng sớm, nhưng nếu bạn làm thế, giá trị p của bạn sẽ không dễ dàng được giải thích. Nếu bạn không quan tâm đến việc giải thích giá trị p của mình, thì cách mà câu trả lời cho hai câu hỏi đầu tiên của bạn là 'không' không thành vấn đề (quá nhiều). Khách hàng của bạn có vẻ thực dụng, vì vậy việc giải thích thực sự về giá trị p có lẽ không phải là điểm tốt mà bạn quan tâm.

Tôi không thể nói đến cách tiếp cận thứ hai mà bạn đề xuất.

Tuy nhiên, cách tiếp cận đầu tiên không phải là trên nền tảng vững chắc. Các xấp xỉ bình thường của các phân phối nhị thức không có giá trị đối với các tỷ lệ thấp (đó là phương thức power.prop.test sử dụng, cũng là phương pháp được Cohen sử dụng trong cuốn sách cổ điển về quyền lực). Hơn nữa, theo như tôi biết, không có giải pháp phân tích công suất dạng kín cho các phép thử tỷ lệ hai mẫu (xem Làm thế nào người ta có thể thực hiện phân tích công suất nhị thức hai nhóm mà không sử dụng xấp xỉ bình thường? ). Tuy nhiên, có các phương pháp tốt hơn để xấp xỉ khoảng tin cậy của tỷ lệ (xem binom gói). Bạn có thể sử dụng khoảng tin cậy không chồng chéo như một giải pháp một phần ... nhưng điều này không giống như ước tính giá trị p và do đó không cung cấp tuyến đường tới nguồn điện trực tiếp. Tôi hy vọng ai đó có một giải pháp dạng đóng đẹp mà họ sẽ chia sẻ với phần còn lại của chúng tôi. Nếu tôi vấp ngã một, tôi sẽ cập nhật câu hỏi được tham khảo ở trên. Chúc may mắn.

Chỉnh sửa: Trong khi tôi đang suy nghĩ về nó, hãy để tôi hoàn toàn thực dụng ở đây một lát. Khách hàng của bạn muốn thử nghiệm này kết thúc khi họ chắc chắn rằng trang thử nghiệm đang hoạt động tốt hơn trang web kiểm soát. Sau khi bạn nhận được một mẫu tốt, nếu bạn chưa sẵn sàng đưa ra quyết định, chỉ cần bắt đầu điều chỉnh tỷ lệ phân công ngẫu nhiên của bạn cho bất kỳ bên nào là 'chiến thắng'. Nếu đó chỉ là một đốm sáng, hồi quy về giá trị trung bình sẽ giảm, bạn sẽ trở nên ít chắc chắn hơn và giảm tỷ lệ. Khi bạn chắc chắn hợp lý, hãy gọi nó ra khỏi và tuyên bố một người chiến thắng. Cách tiếp cận tối ưu có lẽ sẽ liên quan đến việc cập nhật Bayes, nhưng tôi không biết đủ về chủ đề đó ra khỏi đầu để hướng dẫn bạn. Tuy nhiên tôi có thể đảm bảo với bạn rằng đôi khi nó có vẻ phản trực giác, nhưng toán học không quá khó.


0

Các câu hỏi bạn có là những câu hỏi điển hình nổi lên trong các bài kiểm tra thống kê. Có hai "hương vị" của thống kê ngoài kia, người thường xuyên và người Bayes. Câu trả lời thường xuyên cho cả hai câu hỏi của bạn thật dễ dàng:

  • KHÔNG
  • Không, bạn không thể dừng lại sớm
  • Không, bạn không thể đo lâu hơn

Khi bạn đã xác định thiết lập của mình, bạn sẽ không được phép nhìn vào dữ liệu (phân tích mù). Từ quan điểm thường xuyên, không có cách nào xung quanh, không gian lận không có thủ đoạn! (EDIT: Tất nhiên, có những nỗ lực để làm như vậy, và chúng cũng sẽ hoạt động nếu được sử dụng đúng cách, nhưng hầu hết trong số chúng được biết là giới thiệu thành kiến.)

Nhưng có quan điểm bayesian, đó là khá khác nhau. Cách tiếp cận bayes cần trái ngược với những người thường xuyên thêm một đầu vào, phân phối xác suất a-prori. Chúng ta có thể gọi nó cũng là kiến ​​thức hoặc định kiến ​​trước đó. Có được điều này, chúng ta có thể sử dụng dữ liệu / đo lường để cập nhật kiến ​​thức của mình lên xác suất a-posteriori. Vấn đề là, chúng ta có thể sử dụng dữ liệu và hơn thế nữa, chúng ta có thể sử dụng dữ liệu tại mọi điểm trung gian của phép đo. Trong mỗi bản cập nhật, hậu thế cuối cùng là ưu tiên mới của chúng tôi và chúng tôi có thể cập nhật nó với một phép đo mới theo kiến ​​thức cập nhật của chúng tôi. Không có vấn đề dừng sớm ở tất cả!

Tôi tìm thấy một cuộc thảo luận thảo luận khá giống với các vấn đề bạn gặp phải và tôi đã mô tả ở trên: http://biostat.mc.vanderbilt.edu/wiki/pub/Main/JoAnnAlvarez/BayesianAdaptivePres.pdf

Nhưng bên cạnh điều này, bạn có thực sự chắc chắn rằng bạn cần điều này không? Dường như bạn có một số hệ thống đang chạy quyết định nơi liên kết một yêu cầu. Đối với điều này, bạn không cần phải chứng minh rằng các quyết định của bạn là chính xác theo nghĩa thống kê với một bài kiểm tra giả thuyết. Bạn đã bao giờ mua than cốc, bởi vì bạn có thể loại trừ rằng pepsi bây giờ là 'đúng' với xác suất 95%? Nó đủ để lấy cái tốt hơn, không loại trừ một giả thuyết. Đó sẽ là một thuật toán tầm thường: Tính độ không đảm bảo của tỷ lệ A, tính độ không đảm bảo của B. Lấy chênh lệch của cả hai tỷ lệ và chia cho nó b độ không đảm bảo của chênh lệch. Kết quả là một cái gì đó giống như tầm quan trọng của sự khác biệt trong sigma. Sau đó, chỉ cần lấy tất cả các liên kết có sự khác biệt nhiều hơn hai hoặc ba sigma. Hạn chế,


1
Tôi nghĩ rằng bốn đoạn đầu tiên của bạn là một chút cá trích đỏ - có những cách tiếp cận thường xuyên để theo dõi tạm thời. Đúng là việc cập nhật sau (Bayesian) rất phù hợp với điều này, nhưng bạn có thể giải quyết vấn đề này theo nhiều cách khác nhau. Cảm ơn các con trỏ đến các slide!
Matt Krause

Dù sao +1 - cách tiếp cận Bayes có lẽ rõ ràng hướng đến đây hơn bất kỳ sửa chữa thường xuyên.
russellpierce

2
Ơ, có ... meme ... rằng các phương pháp Bayes cho phép người ta nhìn trộm dữ liệu vô tận mà không có bất kỳ biến chứng nào. Tuy nhiên, tỷ lệ lỗi Loại I tổng thể không thực sự được kiểm soát (tại sao lại như vậy?) Và nó có thể trở nên lớn tùy ý nếu sau nhiều lần "xuất hiện". Bạn có thể cải thiện điều này với một ưu tiên thích hợp hoặc bạn có thể lập luận rằng việc kiểm soát lỗi Loại I là khập khiễng, nhưng không phải vì tất cả các kỹ thuật Bayes đều là thuốc chữa bách bệnh.
Matt Krause

0

có lẽ một số phương pháp có thể được sử dụng ở đó như

  • Chim sẻ
  • O'Brien và Flemming
  • Peto

điều này sẽ điều chỉnh mức cắt P dựa trên kết quả và sẽ giúp bạn ngừng thu thập dữ liệu và tiết kiệm tài nguyên và thời gian.

có lẽ các tác phẩm khác có thể được thêm vào đây.


bạn có thể cung cấp liên kết hoặc nhiều thông tin hơn cho các gạch đầu dòng của bạn?
Antoine

Tôi không có bài viết chính xác bởi vì tôi đã sử dụng một bài viết đánh giá trích dẫn những điều này, ý tôi là cách tiếp cận khác nhau nhưng tôi có thể khuyên bạn nên quản lý câu hỏi trong lĩnh vực y tế: Sửa đổi kích thước mẫu thích nghi trong các thử nghiệm lâm sàng: bắt đầu nhỏ hỏi thêm không? Christopher Jennisona * và BruceW. Turnbullb
HappyMan
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.