【python统计分析】stats.ttest_ind 独立样本T检验

用法

ttest_ind 官方文档

当两总体方差相等时,即具有方差齐性,可以直接检验。

stats.ttest_ind(data1,data2)

当不确定两总体方差是否相等时,应先利用levene检验,检验两总体是否具有方差齐性。如果返回结果的p值远大于0.05,那么我们认为两总体具有方差齐性。

stats.levene(data1,data2)

如果两总体不具有方差齐性,需要加上参数equal_val并设定为False。

stats.ttest_ind(data1,data2,equal_var=False)
举例

例如,我想检验A公司销售额的均值和B公司销售额的均值是否存在差异。

使用stats.levene检验方差是否相等,再使用stats.ttest_ind进行独立样本t检验。

A = stats.norm.rvs(loc=1, scale=1, size=(100))		 # 生成A公司的销售额
B = stats.norm.rvs(loc=3, scale=1, size=(100))		 # 生成B公司的销售额
stats.levene(A, B)					 # 进行levene检验
>> out:LeveneResult(statistic=0.8054648213132949, pvalue=0.37055445629183437)

得到的p值大于0.05,说明满足方差相等。使用ttest_ind函数进行独立样本t检验,函数的最后一个参数为判断两个样本的方差是否相同,如果不同,设为False进行独立样本t检验。

stats.ttest_ind(A,B,equal_var=True)				# 进行独立样本t检验
>> out:Ttest_indResult(statistic=-15.25297417258199, pvalue=2.993305057567317e-35)

检验结果显示p远小于0.05,我们拒绝原假设,即认为A公司和B公司的销售额均值存在显著差异

实战
from pylab import *
import scipy.stats as stats

# 读取源数据
X = np.load(r"X_epilepsy_data_16.npy", allow_pickle=True)
y = np.load(r"label_y.npy", allow_pickle=True)

# 读取两种的下标
e = np.where(y=='epilepsy')[0].tolist()
en = np.where(y=='no_epilepsy')[0].tolist()

# 特征恢复原形状
x = []
for i in X:
    x.append(i.reshape(16,29))
x = np.array(x)

tt = stats.ttest_ind(x[e][:10000, :, 0], x[en][:10000, :, 0])
print(tt.pvalue)

OUT

[3.16822131e-12 1.46901811e-10 2.47155694e-17 3.79753493e-01
 3.29168780e-03 4.84374141e-07 2.02176194e-02 4.18225288e-07
 1.23518287e-18 1.29679943e-07 1.11032534e-03 2.49217922e-07
 5.37464553e-14 5.46798053e-07 3.81657716e-15 7.33245900e-03]
  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: scipy.stats.ttest_ind 是用来做独立样本 t 检验的函数。使用方法为:scipy.stats.ttest_ind(a, b, equal_var=True/False)。a, b 分别为两组独立样本的数据。equal_var 参数表示是否假设两组样本的方差相等,默认为 True。如果结果的 p 值小于 0.05,则可以拒绝原假设,即两组样本的均值有显著差异。 ### 回答2: scipy.stats.ttest_ind 是一个用于执行独立样本 t 检验的函数。该函数用于比较两个独立样本的均值是否具有统计学上的显著差异。 使用 scipy.stats.ttest_ind 函数的一般步骤如下: 1. 导入所需的库和模块:首先,需要导入 scipy 和 numpy 库,以及从 scipy.stats 模块中导入 ttest_ind 函数。 2. 准备数据:准备两个独立样本的数据。可以使用 numpy 数组、Pandas 的数据框或其他数据结构来存储数据。 3. 执行 t 检验:使用 ttest_ind 函数执行独立样本 t 检验。该函数的语法为: `scipy.stats.ttest_ind(a, b, equal_var=True)` 其中,a 和 b 是两个要比较的独立样本,equal_var 参数表示是否假设两个样本具有相同的方差。如果为 True,则假设方差相等;如果为 False,则假设方差不等。 4. 解释结果:根据 t 检验的结果,判断两个样本均值是否存在显著差异。通常需要检查返回的 p 值,如果 p 值小于预设的显著性水平(通常为 0.05),则可以拒绝原假设,即认为两个样本的均值存在显著差异。 值得注意的是,ttest_ind 函数还返回一个 t 值,表示两个样本均值之间的差异程度,以及一个表示自由度的值。 综上所述,使用 scipy.stats.ttest_ind 函数可以比较两个独立样本的均值是否存在显著差异。正确地应用该函数可以帮助我们进行统计学上的推断和决策。 ### 回答3: scipy.stats.ttest_ind是scipy库中的一个函数,用于进行两组独立样本t检验。下面是如何使用该函数的基本步骤: 1. 导入scipy.stats模块:首先需要导入scipy库中的stats模块,该模块包含了很多统计分析的函数。 2. 创建两组样本数据:根据需要,可以创建两个长度相同的NumPy数组或Python列表,表示两组样本数据。 3. 进行t检验:使用ttest_ind函数进行t检验,该函数接受两组样本数据作为参数,并返回一个包含t统计量和p-value的元组。 示例代码如下: ```python import scipy.stats as stats import numpy as np # 创建两组样本数据 sample1 = np.array([1, 2, 3, 4, 5]) sample2 = np.array([2, 4, 6, 8, 10]) # 进行t检验 t_statistic, p_value = stats.ttest_ind(sample1, sample2) # 打印结果 print("t统计量:", t_statistic) print("p-value:", p_value) ``` 在这个示例中,我们创建了两组样本数据sample1和sample2,然后使用ttest_ind函数进行t检验,并将返回的t统计量和p-value赋给变量t_statistic和p_value。最后将结果打印出来。 需要注意的是,该函数假设两组样本数据的方差相等。如果两组样本数据的方差不相等,可以使用scipy.stats.ttest_ind函数的equal_var参数设置为False,进行Welch's t检验。修改示例代码如下: ```python # 进行Welch's t检验 t_statistic, p_value = stats.ttest_ind(sample1, sample2, equal_var=False) ``` 这样就可以使用scipy.stats.ttest_ind函数进行两组独立样本t检验了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stig_Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值