Hướng dẫn how do you calculate ab in python? - làm thế nào để bạn tính toán ab trong python?

Hoạt hình của Gal Shir

Trong khi tham gia khóa học kiểm tra A/B của Google về Udacity, tôi đã có một số câu hỏi về một số bước toán học không được khóa học rõ ràng. Điều này là có thể hiểu được bởi vì khóa học được dự định là một tổng quan nén và súc tích. Để giải quyết các câu hỏi của mình, tôi đã chuyển sang các nguồn khác trên web và quyết định tóm tắt những gì tôi học được trong bài viết này.

Phác thảo cho các bài kiểm tra A/B

  1. Thiết lập thí nghiệm.
  2. Chạy thử nghiệm và ghi lại tỷ lệ thành công cho mỗi nhóm.
  3. Vẽ sự phân phối của sự khác biệt giữa hai mẫu.
  4. Tính toán sức mạnh thống kê.
  5. Đánh giá cỡ mẫu ảnh hưởng đến các thử nghiệm A/B.

1. Thiết lập thử nghiệm

Chúng tôi sẽ chạy thử nghiệm A/B cho một công ty giả thuyết đang cố gắng tăng số lượng người dùng đăng ký tài khoản cao cấp. Mục tiêu của việc chạy thử nghiệm A/B là đánh giá xem một thay đổi trong một trang web sẽ dẫn đến hiệu suất được cải thiện trong một số liệu cụ thể. Bạn có thể quyết định kiểm tra các lựa chọn thay thế rất đơn giản như thay đổi giao diện của một nút trên trang web hoặc kiểm tra các bố cục và tiêu đề khác nhau. Bạn cũng có thể chạy thử nghiệm A/B trên các quy trình nhiều bước có thể có nhiều khác biệt. Ví dụ về điều này bao gồm các bước cần thiết trong việc đăng ký người dùng mới hoặc xử lý việc bán hàng trên thị trường trực tuyến. Kiểm tra A/B là một chủ đề lớn và có nhiều kỹ thuật và quy tắc để thiết lập một thử nghiệm. Ngoài khóa học Udacity, đây là một vài tài nguyên hữu ích khác dưới đây:

  • Tối ưu hóa chú giải Tối ưu cho thử nghiệm A/B
  • Evan Miller từ A/B Bài viết thử nghiệm
  • Facebook Trợ giúp trang web về đo lường quảng cáo

Đối với bài viết này, tôi sẽ giữ cho nó đơn giản để chúng ta có thể tập trung vào toán học.

Tỷ lệ chuyển đổi cơ bản và thang máy

Trước khi chạy thử nghiệm, chúng tôi sẽ biết tỷ lệ chuyển đổi cơ bản và thang máy mong muốn hoặc tăng đăng ký mà chúng tôi muốn kiểm tra. Tỷ lệ chuyển đổi cơ bản là tỷ lệ hiện tại mà chúng tôi đăng ký người dùng mới theo thiết kế hiện có. Ví dụ của chúng tôi, chúng tôi muốn sử dụng thử nghiệm của chúng tôi để xác nhận rằng những thay đổi chúng tôi thực hiện đối với quy trình đăng ký của chúng tôi sẽ dẫn đến mức tăng 2% trong tỷ lệ đăng ký của chúng tôi. Chúng tôi hiện đăng ký 10 trong số 100 người dùng được cung cấp một tài khoản cao cấp.baseline conversion rate and the desired lift or increase in signups that we would like to test. The baseline conversion rate is the current rate at which we sign up new users under the existing design. For our example, we want to use our test to confirm that the changes we make to our signup process will result in at least a 2% increase in our sign up rate. We currently sign up 10 out of 100 users who are offered a premium account.

# code examples presented in Python
bcr = 0.10 # baseline conversion rate
d_hat = 0.02 # difference between the groups

Nhóm kiểm soát (a) và nhóm thử nghiệm (b)

Thông thường, tổng số người dùng tham gia thử nghiệm A/B chiếm một tỷ lệ nhỏ trong tổng số lượng người dùng. Người dùng được chọn ngẫu nhiên và được gán cho nhóm điều khiển hoặc nhóm kiểm tra. Cỡ mẫu mà bạn quyết định sẽ xác định thời gian bạn có thể phải đợi cho đến khi bạn đã thu thập đủ. Ví dụ: các trang web có khán giả lớn có thể thu thập đủ dữ liệu rất nhanh, trong khi các trang web khác có thể phải đợi một số tuần. Có một số sự kiện hiếm khi xảy ra ngay cả đối với các trang web có lưu lượng truy cập cao, vì vậy việc xác định kích thước mẫu cần thiết sẽ thông báo thời gian bạn có thể đánh giá thử nghiệm của mình và chuyển sang cải thiện các số liệu khác.

Ban đầu, chúng tôi sẽ thu thập 1000 người dùng cho mỗi nhóm và phục vụ trang đăng ký hiện tại cho nhóm điều khiển và trang đăng ký mới cho nhóm thử nghiệm.

# A is control; B is test
N_A = 1000
N_B = 1000

2. Chạy bài kiểm tra

Bởi vì đây là một ví dụ giả thuyết, chúng ta sẽ cần dữ liệu giả mạo của người dùng để làm việc. Tôi đã viết một chức năng sẽ tạo dữ liệu cho mô phỏng của chúng tôi. Kịch bản có thể được tìm thấy tại repo GitHub của tôi ở đây.

ab_data = generate_data(N_A, N_B, bcr, d_hat)

Hàm

# A is control; B is test
N_A = 1000
N_B = 1000
2 trả về bảng bên trái. Chỉ có năm hàng đầu tiên được hiển thị. Cột
# A is control; B is test
N_A = 1000
N_B = 1000
3 cho biết người dùng có đăng ký dịch vụ cao cấp hay không với 1 hoặc 0, tương ứng. Nhóm
# A is control; B is test
N_A = 1000
N_B = 1000
4 sẽ được sử dụng cho nhóm kiểm soát của chúng tôi và nhóm
# A is control; B is test
N_A = 1000
N_B = 1000
5 sẽ là nhóm thử nghiệm của chúng tôi.Only the first five rows are shown. The
# A is control; B is test
N_A = 1000
N_B = 1000
3 column indicates whether a user signed up for the premium service or not with a 1 or 0, respectively. The
# A is control; B is test
N_A = 1000
N_B = 1000
4 group will be used for our control group and the
# A is control; B is test
N_A = 1000
N_B = 1000
5 group will be our test group.

Hãy cùng xem xét một bản tóm tắt các kết quả bằng cách sử dụng chức năng bảng pivot trong gấu trúc.

ab_summary = ab_data.pivot_table(values='converted', index='group', aggfunc=np.sum)# add additional columns to the pivot table
ab_summary['total'] = ab_data.pivot_table(values='converted', index='group', aggfunc=lambda x: len(x))
ab_summary['rate'] = ab_data.pivot_table(values='converted', index='group')

Có vẻ như sự khác biệt về tỷ lệ chuyển đổi giữa hai nhóm là 0,028 lớn hơn mức thang máy mà chúng tôi muốn ban đầu là 0,02. Đây là một dấu hiệu tốt nhưng đây không phải là bằng chứng đủ để chúng tôi tự tin đi với thiết kế mới. Tại thời điểm này, chúng tôi đã không đo lường mức độ tự tin của mình trong kết quả này. Điều này có thể được giảm thiểu bằng cách xem xét các phân phối của hai nhóm.This is a good sign but this is not enough evidence for us to confidently go with the new design. At this point we have not measured how confident we are in this result. This can be mitigated by looking at the distributions of the two groups.

3. So sánh hai nhóm

Chúng tôi có thể so sánh hai nhóm bằng cách vẽ phân phối nhóm kiểm soát và tính toán xác suất nhận kết quả từ nhóm thử nghiệm của chúng tôi. Chúng tôi có thể giả định rằng phân phối cho nhóm kiểm soát của chúng tôi là nhị thức vì dữ liệu là một loạt các thử nghiệm Bernoulli, trong đó mỗi thử nghiệm chỉ có hai kết quả có thể có (tương tự như một lần lật đồng xu).

fig, ax = plt.subplots(figsize=(12,6))
x = np.linspace(A_converted-49, A_converted+50, 100)
y = scs.binom(A_total, A_cr).pmf(x)
ax.bar(x, y, alpha=0.5)
ax.axvline(x=B_cr * A_total, c='blue', alpha=0.75, linestyle='--')
plt.xlabel('converted')
plt.ylabel('probability')

Phân phối cho nhóm điều khiển được hiển thị màu đỏ và kết quả từ nhóm thử nghiệm được biểu thị bằng đường đứt nét màu xanh. Chúng ta có thể thấy rằng xác suất nhận kết quả từ nhóm thử nghiệm là rất thấp. Tuy nhiên, xác suất không truyền đạt mức độ tin cậy của kết quả. Nó không xem xét kích thước mẫu của nhóm thử nghiệm của chúng tôi. Theo trực giác, chúng tôi sẽ cảm thấy tự tin hơn trong kết quả của chúng tôi khi kích thước mẫu của chúng tôi phát triển lớn hơn. Hãy để tiếp tục và vẽ các kết quả nhóm thử nghiệm như một phân phối nhị thức và so sánh các phân phối với nhau.However, the probability does not convey the confidence level of the results. It does not take the sample size of our test group into consideration. Intuitively, we would feel more confident in our results as our sample sizes grow larger. Let’s continue and plot the test group results as a binomial distribution and compare the distributions against each other.

Phân phối nhị thức

fig, ax = plt.subplots(figsize=(12,6))
xA = np.linspace(A_converted-49, A_converted+50, 100)
yA = scs.binom(A_total, p_A).pmf(xA)
ax.bar(xA, yA, alpha=0.5)
xB = np.linspace(B_converted-49, B_converted+50, 100)
yB = scs.binom(B_total, p_B).pmf(xB)
ax.bar(xB, yB, alpha=0.5)
plt.xlabel('converted')
plt.ylabel('probability')
Binomial Phân phối cho các nhóm kiểm soát (màu đỏ) và kiểm tra (màu xanh)

Chúng ta có thể thấy rằng nhóm kiểm tra đã chuyển đổi nhiều người dùng hơn nhóm điều khiển. Chúng ta cũng có thể thấy rằng đỉnh của kết quả nhóm thử nghiệm thấp hơn nhóm đối chứng. Làm thế nào để chúng ta giải thích sự khác biệt trong xác suất cực đại? Thay vào đó, chúng ta nên tập trung vào tỷ lệ chuyển đổi để chúng ta có một so sánh táo với táo. Để tính toán điều này, chúng ta cần chuẩn hóa dữ liệu và so sánh xác suất thành công, P, cho mỗi nhóm.p, for each group.

Phân phối Bernoulli và Định lý giới hạn trung tâm

Để làm điều này, trước tiên, hãy xem xét phân phối Bernoulli cho nhóm kiểm soát.

trong đó p là xác suất chuyển đổi của nhóm kiểm soát.

Theo các thuộc tính của phân phối Bernoulli, giá trị trung bình và phương sai như sau:

Theo định lý giới hạn trung tâm, bằng cách tính toán nhiều mẫu có nghĩa là chúng ta có thể xấp xỉ giá trị trung bình thực của dân số, từ đó dữ liệu cho nhóm kiểm soát được lấy. Phân phối của các phương tiện mẫu, P, thường được phân phối xung quanh giá trị trung bình thực với độ lệch chuẩn bằng với sai số tiêu chuẩn của giá trị trung bình. Phương trình cho điều này được đưa ra như:𝜇, from which the data for the control group was taken. The distribution of the sample means, p, will be normally distributed around the true mean with a standard deviation equal to the standard error of the mean. The equation for this is given as:

Do đó, chúng ta có thể biểu diễn cả hai nhóm như một phân phối bình thường với các thuộc tính sau:

Điều tương tự có thể được thực hiện cho nhóm thử nghiệm. Vì vậy, chúng tôi sẽ có hai phân phối bình thường cho

# A is control; B is test
N_A = 1000
N_B = 1000
6 và
# A is control; B is test
N_A = 1000
N_B = 1000
7.

Các nhóm
# standard error of the mean for both groups
SE_A = np.sqrt(p_A * (1-p_A)) / np.sqrt(A_total)
SE_B = np.sqrt(p_B * (1-p_B)) / np.sqrt(B_total)
# plot the null and alternative hypothesis
fig, ax = plt.subplots(figsize=(12,6))
x = np.linspace(0, .2, 1000)yA = scs.norm(p_A, SE_A).pdf(x)
ax.plot(xA, yA)
ax.axvline(x=p_A, c='red', alpha=0.5, linestyle='--')
yB = scs.norm(p_B, SE_B).pdf(x)
ax.plot(xB, yB)
ax.axvline(x=p_B, c='blue', alpha=0.5, linestyle='--')
plt.xlabel('Converted Proportion')
plt.ylabel('PDF')
Control (màu đỏ) và kiểm tra (màu xanh) dưới dạng phân phối bình thường cho tỷ lệ thành công

Các đường đứt nét biểu thị tỷ lệ chuyển đổi trung bình cho mỗi nhóm. Khoảng cách giữa đường đứt nét màu đỏ và đường đứt nét màu xanh bằng với chênh lệch trung bình giữa nhóm điều khiển và nhóm kiểm tra.

# A is control; B is test
N_A = 1000
N_B = 1000
8 là sự phân phối sự khác biệt giữa các biến ngẫu nhiên từ hai nhóm.

Phương sai của tổng

Nhớ lại rằng giả thuyết khống nói rằng sự khác biệt về xác suất giữa hai nhóm là bằng không. Do đó, giá trị trung bình cho phân phối bình thường này sẽ ở mức 0. Thuộc tính khác mà chúng ta sẽ cần cho phân phối bình thường là độ lệch chuẩn hoặc phương sai. (Lưu ý: Phương sai là độ lệch chuẩn bình phương.) Phương sai của sự khác biệt sẽ phụ thuộc vào phương sai của xác suất cho cả hai nhóm.difference in probability between the two groups is zero. Therefore, the mean for this normal distribution will be at zero. The other property we will need for the normal distribution is the standard deviation or the variance. (Note: The variance is the standard deviation squared.) The variance of the difference will be dependent on the variances of the probability for both groups.

Một thuộc tính cơ bản của phương sai là phương sai của tổng của hai biến độc lập ngẫu nhiên là tổng của các phương sai.

Điều này có nghĩa là giả thuyết null và giả thuyết thay thế sẽ có cùng một phương sai sẽ là tổng của phương sai cho nhóm kiểm soát và nhóm thử nghiệm.

Độ lệch chuẩn sau đó có thể được tính là:

Nếu chúng ta đặt phương trình này theo độ lệch chuẩn cho phân phối Bernoulli, s: s:s:

Và chúng tôi nhận được xấp xỉ Satterthwaite cho lỗi tiêu chuẩn gộp. Nếu chúng ta tính toán xác suất gộp và sử dụng xác suất gộp để tính độ lệch chuẩn cho cả hai nhóm, chúng ta sẽ nhận được:

where:

Đây là cùng một phương trình được sử dụng trong khóa học Udacity. Cả hai phương trình cho lỗi tiêu chuẩn gộp sẽ cho bạn kết quả rất giống nhau.

Với điều đó, bây giờ chúng tôi có đủ thông tin để xây dựng các phân phối cho giả thuyết khống và giả thuyết thay thế.

So sánh giả thuyết null so với giả thuyết thay thế

Hãy để bắt đầu bằng cách xác định giả thuyết null và giả thuyết thay thế.

  • Giả thuyết khống là vị trí mà sự thay đổi trong thiết kế được thực hiện cho nhóm thử nghiệm sẽ không dẫn đến thay đổi tỷ lệ chuyển đổi.would result in no change in the conversion rate.
  • Giả thuyết thay thế là vị trí đối lập rằng sự thay đổi trong thiết kế cho nhóm thử nghiệm sẽ dẫn đến sự cải thiện (hoặc giảm) trong tỷ lệ chuyển đổi.would result in an improvement (or reduction) in the conversion rate.

Theo khóa học udacity, giả thuyết null sẽ là phân phối bình thường với giá trị trung bình bằng 0 và độ lệch chuẩn bằng với sai số tiêu chuẩn gộp.

Giả thuyết null

Giả thuyết thay thế có độ lệch chuẩn tương tự như giả thuyết null, nhưng giá trị trung bình sẽ được đặt ở sự khác biệt về tỷ lệ chuyển đổi,

# A is control; B is test
N_A = 1000
N_B = 1000
8. Điều này có ý nghĩa bởi vì chúng tôi có thể tính toán sự khác biệt trong tỷ lệ chuyển đổi trực tiếp từ dữ liệu, nhưng phân phối bình thường thể hiện các giá trị có thể có của chúng tôi có thể mang lại cho chúng tôi.

Giả thuyết thay thế

Bây giờ chúng ta đã hiểu được sự xuất phát của lỗi tiêu chuẩn gộp, chúng ta có thể trực tiếp vẽ các giả thuyết null và thay thế cho các thí nghiệm trong tương lai. Tôi đã viết một kịch bản để nhanh chóng vẽ các giả thuyết null và thay thế,

ab_data = generate_data(N_A, N_B, bcr, d_hat)
0, có thể được tìm thấy ở đây.

Giả thuyết
# define the parameters for abplot()
# use the actual values from the experiment for bcr and d_hat
# p_A is the conversion rate of the control group
# p_B is the conversion rate of the test group
n = N_A + N_B
bcr = p_A
d_hat = p_B - p_A
abplot(n, bcr, d_hat)
Null (màu đỏ) so với giả thuyết thay thế (màu xanh)

Trực quan, cốt truyện cho giả thuyết null và thay thế trông rất giống với các ô khác ở trên. May mắn thay, cả hai đường cong đều giống hệt nhau về hình dạng, vì vậy chúng ta chỉ có thể so sánh khoảng cách giữa các phương tiện của hai phân phối. Chúng ta có thể thấy rằng đường cong giả thuyết thay thế cho thấy nhóm thử nghiệm có tỷ lệ chuyển đổi cao hơn nhóm kiểm soát. Biểu đồ này cũng có thể được sử dụng để xác định trực tiếp sức mạnh thống kê.

4. Sức mạnh và mức độ ý nghĩa thống kê

Tôi nghĩ rằng việc xác định sức mạnh thống kê và mức độ ý nghĩa dễ dàng hơn bằng cách trước tiên chỉ ra cách chúng được thể hiện trong âm mưu của giả thuyết null và thay thế. Chúng ta có thể trả về trực quan hóa sức mạnh thống kê bằng cách thêm tham số

ab_data = generate_data(N_A, N_B, bcr, d_hat)
1.

abplot(N_A, N_B, bcr, d_hat, show_power=True)
Statistic Sức mạnh được hiển thị trong màu xanh lá cây

Vùng bóng xanh đại diện cho sức mạnh thống kê và giá trị tính toán cho công suất cũng được hiển thị trên lô. Các đường nét đứt nét màu xám trong biểu đồ trên đại diện cho khoảng tin cậy (95% cho âm mưu trên) cho giả thuyết khống. Sức mạnh thống kê được tính toán bằng cách tìm kiếm khu vực theo phân phối giả thuyết thay thế và ngoài khoảng tin cậy của giả thuyết null.

Sau khi chạy thử nghiệm của chúng tôi, chúng tôi nhận được tỷ lệ chuyển đổi kết quả cho cả hai nhóm. Nếu chúng ta tính toán sự khác biệt giữa tỷ lệ chuyển đổi, chúng ta sẽ kết thúc với một kết quả, sự khác biệt hoặc ảnh hưởng của thay đổi thiết kế. Nhiệm vụ của chúng tôi là xác định dân số nào kết quả này đến từ, giả thuyết khống hoặc giả thuyết thay thế.

Khu vực theo đường cong giả thuyết thay thế bằng 1. Nếu thiết kế thay thế thực sự tốt hơn, sức mạnh là xác suất mà chúng ta chấp nhận giả thuyết thay thế và bác bỏ giả thuyết khống và bằng với khu vực màu xanh lá cây (dương tính thật). Khu vực đối diện theo đường cong thay thế là xác suất chúng tôi chấp nhận giả thuyết khống và bác bỏ giả thuyết thay thế (âm tính giả). Điều này được gọi là beta trong thử nghiệm A/B hoặc thử nghiệm giả thuyết và được hiển thị dưới đây.(true positive). The opposite area under the alternative curve is the probability that we accept the null hypothesis and reject the alternative hypothesis (false negative). This is referred to as beta in A/B testing or hypothesis testing and is shown below.

abplot(N_A, N_B, bcr, d_hat, show_beta=True)
beta hiển thị màu xanh lá cây

Đường đứt nét màu xám phân chia diện tích dưới đường cong thay thế thành hai cũng trực tiếp phân đoạn khu vực liên quan đến mức ý nghĩa, thường được ký hiệu bằng chữ cái chữ Hy Lạp.

Khu vực bóng mờ có diện tích bằng 0,025, đại diện cho alpha.

Nếu giả thuyết null là đúng và thực sự không có sự khác biệt giữa các nhóm kiểm soát và kiểm tra, thì mức ý nghĩa là xác suất chúng tôi sẽ bác bỏ giả thuyết khống và chấp nhận giả thuyết thay thế (dương tính giả). Một tích cực giả là khi chúng ta kết luận nhầm rằng thiết kế mới là tốt hơn. Giá trị này thấp vì chúng tôi muốn giới hạn xác suất này.truly is no difference between the control and test groups, then the significance level is the probability that we would reject the null hypothesis and accept the alternative hypothesis (false positive). A false positive is when we mistakenly conclude that the new design is better. This value is low because we want to limit this probability.

Thông thường, một vấn đề sẽ được đưa ra với mức độ tin cậy mong muốn thay vì mức ý nghĩa. Mức độ tin cậy 95% điển hình cho thử nghiệm A/B tương ứng với mức ý nghĩa là 0,05.

Mức độ ý nghĩa (alpha) và mức độ tự tin

Có thể hữu ích khi đề cập đến một ma trận nhầm lẫn khi bạn đang đánh giá kết quả của một thử nghiệm A/B và xác suất kết quả khác nhau.

Các thí nghiệm thường được thiết lập cho công suất mong muốn tối thiểu là 80%. Nếu thiết kế mới của chúng tôi thực sự tốt hơn, chúng tôi muốn thử nghiệm của chúng tôi cho thấy rằng có ít nhất 80% xác suất rằng đây là trường hợp. Thật không may, thí nghiệm hiện tại của chúng tôi chỉ có sức mạnh 0,594. Chúng tôi biết rằng nếu chúng tôi tăng kích thước mẫu cho mỗi nhóm, chúng tôi sẽ giảm phương sai gộp cho giả thuyết null và thay thế của chúng tôi. Điều này sẽ làm cho phân phối của chúng tôi hẹp hơn nhiều và có thể tăng sức mạnh thống kê. Hãy cùng xem xét kích thước mẫu sẽ ảnh hưởng trực tiếp đến kết quả của chúng tôi như thế nào.

5. Kích thước mẫu

Nếu chúng tôi chạy thử nghiệm một lần nữa với cỡ mẫu 2000 thay vì 1000 cho mỗi nhóm, chúng tôi sẽ nhận được kết quả sau.

# A is control; B is test
N_A = 1000
N_B = 1000
0

Các đường cong của chúng tôi cho giả thuyết null và thay thế đã trở nên hẹp hơn và nhiều hơn khu vực dưới đường cong thay thế được đặt ở bên phải của đường đứt nét màu xám. Kết quả cho sức mạnh lớn hơn 0,80 và đáp ứng điểm chuẩn của chúng tôi về sức mạnh thống kê. Bây giờ chúng ta có thể nói rằng kết quả của chúng ta có ý nghĩa thống kê.

Một vấn đề bạn có thể gặp phải là xác định kích thước mẫu tối thiểu bạn sẽ cần cho thử nghiệm của mình. Đây là một câu hỏi phỏng vấn phổ biến và rất hữu ích khi biết vì nó liên quan trực tiếp đến việc bạn có thể hoàn thành các thử nghiệm của mình nhanh như thế nào và cung cấp kết quả có ý nghĩa thống kê cho nhóm thiết kế của bạn. Bạn có thể sử dụng các máy tính có sẵn trên web, chẳng hạn như các máy tính bên dưới:

Bạn sẽ cần tỷ lệ chuyển đổi cơ bản (BCR) và hiệu ứng có thể phát hiện tối thiểu, đây là sự khác biệt tối thiểu giữa nhóm kiểm soát và nhóm kiểm tra mà bạn hoặc nhóm của bạn sẽ xác định là giá trị đầu tư để thay đổi thiết kế ngay từ đầu.

Tôi muốn viết một kịch bản sẽ thực hiện tính toán tương tự nhưng cần phải tìm phương trình đang được sử dụng. Sau khi tìm kiếm nhiều, tôi đã tìm thấy và kiểm tra phương trình này từ bài giảng Stanford này. (CẢNH BÁO: Liên kết mở tải xuống PowerPoint.)(Warning: link opens Powerpoint download.)

Phương trình cho cỡ mẫu tối thiểu

Nhiều người tính toán Z từ các bảng như những người được hiển thị ở đây và ở đây. Tuy nhiên, tôi là một người học trực quan và tôi muốn đề cập đến cốt truyện của phân phối z mà từ đó các giá trị có nguồn gốc.

Biểu đồ cho mức ý nghĩa điển hình là 0,05 hoặc mức độ tin cậy là 0,95 (z = 1,96) điểm Z điển hình cho mức công suất là 0,80 (z = 0,842

Mã cho các ô Z này có thể được tìm thấy trong repo GitHub của tôi ở đây.

Dưới đây là mã Python thực hiện tính toán tương tự cho kích thước mẫu tối thiểu:

Tôi có thể chứng minh rằng phương trình này trả về một câu trả lời đúng bằng cách chạy một thử nghiệm A/B khác với kích thước mẫu xuất phát từ phương trình.

# A is control; B is test
N_A = 1000
N_B = 1000
1

Công suất tính toán cho cỡ mẫu này là khoảng 0,80. Do đó, nếu thay đổi thiết kế của chúng tôi có sự cải thiện trong việc chuyển đổi khoảng 2 phần trăm, chúng tôi sẽ cần ít nhất 3843 mẫu trong mỗi nhóm cho sức mạnh thống kê ít nhất 0,80.

Đó là một hướng dẫn rất dài nhưng cơ bản của các bài kiểm tra A/B. Khi bạn đã phát triển sự hiểu biết và quen thuộc với quy trình, có lẽ bạn sẽ có thể chạy một thử nghiệm và trực tiếp đến các lô cho giả thuyết null và thay thế để xác định xem kết quả của bạn có đạt được đủ sức mạnh hay không. Bằng cách tính toán kích thước mẫu tối thiểu bạn cần trước khi thử nghiệm, bạn có thể xác định thời gian sẽ mất bao lâu để đưa kết quả trở lại nhóm của bạn cho quyết định cuối cùng.

Nếu bạn có bất kỳ câu hỏi nào, tôi có thể cố gắng trả lời chúng trong các ý kiến ​​dưới đây. Nếu bạn thích bài viết này xin vui lòng. Hét lên với Brian McGarry để chỉnh sửa ghi chú. Cảm ơn bạn đã đọc!

Bài kiểm tra AB là gì trong Python?

Các thử nghiệm A/B) là tiêu chuẩn vàng của việc thiết lập suy luận nguyên nhân. RCT kiểm soát nghiêm ngặt quá trình ngẫu nhiên và đảm bảo phân phối bằng nhau trên các hiệp phương sai trước khi đưa ra điều trị. Do đó, chúng ta có thể gán sự khác biệt trung bình giữa các nhóm điều trị và kiểm soát cho can thiệp.the gold standard of establishing causal inference. RCTs strictly control for the randomization process and ensure equal distributions across covariates before rolling out the treatment. Thus, we can attribute the mean difference between the treatment and control groups to the intervention.

Làm thế nào để bạn mã hóa kiểm tra ab?

Phác thảo cho các bài kiểm tra A/B..
Thiết lập thử nghiệm ..
Chạy thử nghiệm và ghi lại tỷ lệ thành công cho mỗi nhóm ..
Vẽ phân phối sự khác biệt giữa hai mẫu ..
Tính quyền thống kê ..
Đánh giá cỡ mẫu ảnh hưởng đến các thử nghiệm A/B ..

AB thử nghiệm với ví dụ là gì?

Một thử nghiệm A/B là so sánh giữa hai phiên bản của cùng một tài sản tiếp thị, chẳng hạn như một trang web hoặc email, mà bạn tiếp xúc với nửa đối tượng bằng nhau.Dựa trên tỷ lệ chuyển đổi hoặc các số liệu khác, bạn có thể quyết định loại nào hoạt động tốt nhất.Nhưng nó không dừng lại ở đó.Bạn không muốn giải quyết cho một bài kiểm tra A/B.a comparison between two versions of the same marketing asset, such as a web page or email, that you expose to equal halves of your audience. Based on conversion rates or other metrics, you can decide which one performs best. But it doesn't stop there. You don't want to settle for one A/B test.

AB trong học máy là gì?

Kiểm tra A/B là một chiến lược xác định cách thay đổi trong một biến ảnh hưởng đến đối tượng hoặc sự tham gia của người dùng.Đây là một chiến lược thường được sử dụng để cải thiện các chiến dịch và tỷ lệ chuyển đổi mục tiêu trong tiếp thị, thiết kế web, phát triển sản phẩm và thiết kế trải nghiệm người dùng.a strategy that determines how a change in one variable impacts the audience or user engagement. It's a commonly used strategy for improving campaigns and target conversion rates in marketing, web design, product development, and user experience design.