【python统计分析】stats.ttest

您所在的位置:网站首页 独立样本t检验的含义 【python统计分析】stats.ttest

【python统计分析】stats.ttest

2023-11-13 09:07| 来源: 网络整理| 查看: 265

用法

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]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3