【整理向】老板让我用SPSS做A/Btest,我偏要用python

本文介绍了一名数据分析师如何使用Python的统计包scipy,通过单样本T检验、配对样本T检验、双样本T检验和ANOVA(F-检验)等方法,来评估页面按钮颜色改动对点击率的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

老板:小果子
我:老板您说
老板:那个,这个页面中间按钮我们换了个颜色,你用斯罢斯验证一下点击率呗
我:…好的,老板的发音还是那么清新脱俗
老板:怎么样,我昨天专门练的,厉害吧
我:numpy!numpy!(npnp:牛皮牛皮)

我,数据之果,身为一名专业的数据分析师我们当然要体现出我们的专业水平,打开我的斯噗斯斯!准备窗口!哼!一个小小的A/B test做出来只需要分分…

(SPSS过期了…)

怎么办,新公司电脑新安装的斯噗斯斯过期了,机智的我赶紧到网上搜索破解程序,一打开…

在这里插入图片描述
西巴shake it啊
盗版软件植入广告都这么猖獗了吗(眼泪不争气的从我的嘴角流了下来)

这个时候再去找大佬要破解版或者再搜索就太花时间了
不行,身为一名专(xin)业(shou)的数据分析师怎么能如此低效
话说python不是有个统计包叫scipy嘛,容我去百度搜搜,这一搜就搜出来好多好东西,整理一下:

单样本T检验
单样本t检验是确定样本均值是否与已知或假设的总体均值具有统计学差异的带参数检验:
假设我们有总体的页面点击率10%和改动后的十天的页面点击率数据,想知道样本数据和总体数据在设定p值阈值为0.05的情况下,两者是否有显著性差异:

F1=[round(random.uniform(10,14),2) for i in range(10) ] #随机抽取正态分布十个在(10,14)的随机浮点数
F1_mean = np.mean(F1)
print(F1_mean)
test, pval = ttest_1samp(F1, 10)
print('p-values',pval)
if pval < 0.05:    # alpha value is 0.05 or 5%
   print(" we are rejecting null hypothesis")
else:
   print("we are accepting null hypothesis")

结果显示为:
在这里插入图片描述

但是这只是估算样本与总体差异的单样本检验而已,万一只是瞎猫碰上死耗子呢,万一中间有其他的因素在干扰呢,于是我们控制周期变量(选取历史数据上月没有变动的两个十天的数据,周期平移到本月,在最后十天进行改动得到新一组点击率和老十天点击率),或者同时有两种方法同时测评,得到两组样本进行:

配对样本T检验

F1_mean = np.mean(F1)
F2_mean = np.mean(F2)

print("week1 mean value:",F1_mean)
print("week2 mean value:",F2_mean)

ttest,pval = stats.ttest_rel(F1, F2)
print("p-value",pval)
if pval <0.05:
  print("we reject null hypothesis")
else:
  print("we accept null hypothesis")

结果是:
在这里插入图片描述

那要是我们本来有两版页面,我们同时进行了一个按钮的改动,想要看出变动是否有差异,则可以使用:

双样本T检验

一般用于判断两总体是否有显著差异的时候才会用双样本T检验
注意在进行双样本T检验的时候,一定要验证总体的方差齐性

def ftest(s1,s2):
    '''F检验样本总体方差是否相等'''
    print("Null Hypothesis:var(s1)=var(s2),α=0.05")
    p_val=stats.levene(s1, s2).pvalue
    print(p_val)
    if p_val < 0.05:
        print("Reject the Null Hypothesis.")
        equal_var=False
    else:
        print("Accept the Null Hypothesis.")
        equal_var=True
    return equal_var
    
def ttest_ind_fun(s1,s2):
    '''t检验独立样本所代表的两个总体均值是否存在差异'''
    equal_var = ftest(s1,s2)
    print("Null Hypothesis:mean(s1)=mean(s2),α=0.05")
    ttest,pval = ttest_ind(s1,s2,equal_var=equal_var)
    if pval < 0.05:
        print("Reject the Null Hypothesis.")
    else:
        print("Accept the Null Hypothesis.")
    return pval

s1 = norm.rvs(loc=1,scale=1.0,size=20)
s2 = norm.rvs(loc=1.5,scale=0.5,size=20)

ttest_ind_fun(s1,s2)

结果是:在这里插入图片描述
ANOVA(F-检验)

要是有两组以上的页面同时进行了改动,相互的两两比较不能充分说明问题,则要用ANOVA检验(F-检验):

s1 = norm.rvs(loc=1,scale=1.0,size=20)
s2 = norm.rvs(loc=1.5,scale=0.5,size=20)
s3 = norm.rvs(loc=1.5,scale=0.5,size=20)
F, p = stats.f_oneway(s1,s2,s3)
print("p-value for significance is: ", p)
if p<0.05: 
   print("reject null hypothesis")
else:  
  print("accept null hypothesis")

结果是:
在这里插入图片描述
借鉴他人链接如下,整理方便之后自查:
charie411:t检验及python代码实现
zrx731935354:利用python进行T检验
使用Python进行机器学习的假设检验(附链接&代码)

### SPSS 软件及其最新版本 SPSS 的官方名称现已改为 IBM SPSS Statistics,它是 IBM 提供的一款功能强大的统计分析软件。用户可以通过访问 IBM 官方网站获取最新的 SPSS 版本以及下载链接[^1]。IBM SPSS Statistics 主要用于数据分析、预测建模和报告生成,支持多种操作系统,包括 Windows、macOS 和 Linux。 为了获得 SPSS 的最新版本,建议按照以下方式操作: 1. **访问官方网站**:前往 IBM 官网 (https://www.ibm.com/products/spss-statistics),这里提供了详细的介绍、试用版下载以及购买选项。 2. **选择合适的版本**:SPSS 提供多个版本,例如基础版、标准版和专业版,每种版本的功能有所不同,需根据需求选择合适的产品。 3. **安装与激活**:下载完成后,遵循安装向导完成安装过程,并通过许可证密钥或订阅服务进行激活。 此外,除了核心的 SPSS Statistics 软件外,还有扩展模块如 SPSS Modeler 可供选择。SPSS Modeler 是一款专注于数据挖掘和预测分析的强大工具,具有无需编程即可快速构建模型的优势[^3]。 ### 关于 SPSS 工具的补充说明 如果用户的目的是进行特定类型的分析(例如回归分析或 GMM 模型),则需要注意不同工具的支持情况。例如,System-GMM 回归更适合使用 Stata 进行分析[^4],而 SPSS 则在传统统计方法和探索性分析领域表现更为出色[^2]。 ```python import pandas as pd from sklearn.model_selection import train_test_split # 示例代码展示如何加载数据并分割训练集测试集 data = pd.read_csv('example.csv') X_train, X_test, y_train, y_test = train_test_split(data.drop('target', axis=1), data['target'], test_size=0.2, random_state=42) print("数据已成功拆分为训练集和测试集") ``` 以上代码展示了如何利用 Python 预处理数据,这也可以作为 SPSS 数据导入的一个辅助手段。 #### 注意事项 - 如果需要免费替代品,可以考虑开源工具如 R 或 Python 中的相关库。 - 对于学术用途,某些高校可能提供 SPSS 的教育授权或许可折扣。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值