基于Pandas DataFrame的双样本Z检验:验证新落地页对转化率的影响
双样本Z检验验证落地页转化率差异
步骤1:构造目标DataFrame
先把你的频率表转换成Pandas DataFrame:
import pandas as pd # 按你的数据构造字典 data = { 'landing_page': ['new_page', 'old_page'], 0: [128045, 127785], 1: [17264, 17489] } df = pd.DataFrame(data).set_index('landing_page')
步骤2:提取检验所需数据
从DataFrame中拆分两组的总用户数和转化数:
# 新落地页数据:总用户数=未转化+转化,转化数=1列的值 n_new = df.loc['new_page'].sum() converted_new = df.loc['new_page', 1] # 旧落地页数据 n_old = df.loc['old_page'].sum() converted_old = df.loc['old_page', 1]
步骤3:执行双样本Z检验
使用statsmodels库完成检验(需先安装:pip install statsmodels):
from statsmodels.stats.proportion import proportions_ztest # 准备检验输入:两组转化数、两组总用户数 counts = [converted_new, converted_old] nobs = [n_new, n_old] # 双尾检验(验证新页转化率≠旧页,单尾检验可修改alternative参数) z_stat, p_value = proportions_ztest(counts, nobs, alternative='two-sided')
步骤4:解读检验结果
打印结果并基于显著性水平判断:
print(f"Z统计量: {z_stat:.4f}") print(f"P值: {p_value:.4f}") # 以常用的α=0.05为显著性水平 alpha = 0.05 if p_value < alpha: print("拒绝原假设:新、旧落地页的转化率存在显著差异") else: print("无法拒绝原假设:没有足够证据证明新落地页影响转化率")
参数补充说明
alternative参数可选值:'two-sided'(双尾检验,默认)、'smaller'(检验新页转化率低于旧页)、'larger'(检验新页转化率高于旧页)
内容的提问来源于stack exchange,提问作者user2845095
相关产品推荐
相关产品推荐

