使用scipy实现两样本t检验

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

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

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

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

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

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

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

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

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

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

  1. 计算两组数据的平均值(分别记为x1和x2)和标准差(分别记为s1和s2)。
  2. 计算每组数据的样本大小(分别记为n1和n2)。
  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检验,你学会了吗?

相关推荐
许墨の小蝴蝶5 分钟前
Pillow 替换图片文字后字号偏小的排查
python·pillow
朝朝辞暮i13 分钟前
第 01 讲:Python 变量、对象、数据类型与内存引用
开发语言·python
外收内放36 分钟前
Python基础语法练习题(69)
开发语言·python
TomEval40 分钟前
【测AI】第11篇:深度学习基础 —— 神经网络是怎么工作的
人工智能·python·深度学习·神经网络·机器学习·aigc
zhang-ge43 分钟前
python包和项目管理器uv在ubuntu下的安装与使用
开发语言·python·uv
for_ever_love__1 小时前
LangChain 降级、重试与超时:让服务在模型抽风时还能用
python·自然语言处理·langchain·agent·超时·重试·with_retry
MoRanzhi12031 小时前
第 8 篇 · 机器学习建模与实验评估:建模流程与对照实验
python·机器学习·scikit-learn·模型评估·交叉验证·shap·消融实验
棉猴1 小时前
玩游戏学Python9-算术运算符应用1
python·游戏·pygame·玩游戏·游戏编程
凤年徐2 小时前
【Python】Python 语法速通指南
开发语言·python
quantdash_cc2 小时前
量化数据清洗应该放在数据层还是策略层?从系统架构看清职责边界
开发语言·python·数据分析·系统架构·量化交易·股票数据·quantdash