使用scipy实现两样本t检验

两样本t检验是统计学中用于比较两组样本均值是否有显著差异的方法。在数据挖掘中,我们经常需要对不同的特征或变量进行比较,以确定它们之间是否存在显著差异。这时,两样本t检验可以用作一种工具来评估这些差异的显著性。

那到底什么是两样本t检验呢?

我们可以举个简单的例子了解一下:

假设有一所学校现在有两个教学方法:方法A和方法B。那么学校肯定是想知道这两种方法是否对学生成绩产生了显著的影响。

我们首先将学生随机分成两组,一组接受方法A的教学,另一组接受方法B的教学。然后,我们在相同的时间段内进行教学,并在学期结束时收集学生成绩的数据。

接下来,我们计算每组学生的平均分数和标准差。然后,使用两样本t检验计算一个t值,该值表示两组学生的平均分数之间的差异相对于组内变异的程度。

如果计算得到的t值较大,说明两组学生的平均分数差异较大,可能存在真实的差异。然后,我们根据计算得到的t值,样本大小和显著性水平计算一个p值。

如果p值小于设定的显著性水平(通常是0.05),我们可以拒绝原假设,即两种教学方法对学生成绩没有显著影响,而接受备择假设,即两种教学方法对学生成绩有显著影响。

通过两样本t检验,我们可以确定哪种教学方法在学生成绩方面更有效。

那又有一个疑问了,如何计算t值呢?

  1. 计算两组数据的平均值(分别记为x1x2)和标准差(分别记为s1s2)。
  2. 计算每组数据的样本大小(分别记为n1n2)。
  3. 计算两组数据的标准差,它是标准差除以样本大小的平方根。对于两组数据,标准差的计算公式如下:
    SE = sqrt((s1^2/n1) + (s2^2/n2))
  4. 计算t值,它表示两组数据的平均值之间的差异相对于标准误差的大小。计算公式如下:
    t = (x1 - x2) / SE

下面是示例代码:

python 复制代码
import pandas as pd
df=pd.read_csv(r"C:\Users\ljl20\Desktop\文档\stu_data.csv", encoding='GBK')
df.groupby('性别').身高.describe()
bash 复制代码
from scipy import stats as ss
#方差齐性
ss.levene(df.身高[df.性别=='男'],df.身高[df.性别=='女'])

使用了SciPy库中的stats模块,并调用了其中的levene函数来进行方差齐性检验。那么什么是方差齐性检验呢?方差齐性是一项重要的假设,方差齐性检验主要用于检验两个或多个样本的方差是否相等。这段代码就是对男性和女性的身高做一个方差齐性检验。

bash 复制代码
ss.ttest_ind(df.身高[df.性别=='男'],df.身高[df.性别=='女'],equal_var=False)
ini 复制代码
t_statistic, p_value = ss.ttest_ind_from_stats(
    mean1=171.444444, std1=9.103395, nobs1=27,
    mean2=165.360000, std2=5.179125, nobs2=25,
    equal_var=False
)
print("T统计量:", t_statistic)
print("P值:", p_value)

这段代码使用了SciPy库中的stats模块,调用ttest_ind_from_stats函数来进行两样本独立t检验。 代码中的ttest_ind_from_stats函数的参数如下:

  • mean1:第一个样本的均值
  • std1:第一个样本的标准差
  • nobs1:第一个样本的样本大小
  • mean2:第二个样本的均值
  • std2:第二个样本的标准差
  • nobs2:第二个样本的样本大小
  • equal_var:一个布尔值,用于指定是否假设两个样本的方差相等。在这段代码中,equal_var=False表示不假设方差相等。

使用scipy实现两样本t检验,你学会了吗?

相关推荐
程序猿000001号14 分钟前
探索Python的pytest库:简化单元测试的艺术
python·单元测试·pytest
engchina44 分钟前
如何在 Python 中忽略烦人的警告?
开发语言·人工智能·python
Dream_Snowar2 小时前
速通Python 第四节——函数
开发语言·python·算法
西猫雷婶2 小时前
python学opencv|读取图像(十四)BGR图像和HSV图像通道拆分
开发语言·python·opencv
汪洪墩2 小时前
【Mars3d】设置backgroundImage、map.scene.skyBox、backgroundImage来回切换
开发语言·javascript·python·ecmascript·webgl·cesium
程序员shen1616113 小时前
抖音短视频saas矩阵源码系统开发所需掌握的技术
java·前端·数据库·python·算法
人人人人一样一样4 小时前
作业Python
python
四口鲸鱼爱吃盐4 小时前
Pytorch | 利用VMI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
人工智能·pytorch·python
四口鲸鱼爱吃盐4 小时前
Pytorch | 利用PI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
人工智能·pytorch·python