当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy stats.ttest_ind_from_stats用法及代码示例


本文简要介绍 python 语言中 scipy.stats.ttest_ind_from_stats 的用法。

用法:

scipy.stats.ttest_ind_from_stats(mean1, std1, nobs1, mean2, std2, nobs2, equal_var=True, alternative='two-sided')#

T-test 表示来自说明性统计的两个独立样本的平均值。

这是对两个独立样本具有相同平均(预期)值的零假设的检验。

参数

mean1 array_like

样本 1 的平均值。

std1 array_like

样本 1 的校正样本标准差(即 ddof=1 )。

nobs1 array_like

样本 1 的观察次数。

mean2 array_like

样本 2 的平均值。

std2 array_like

样本 2 的校正样本标准差(即 ddof=1 )。

nobs2 array_like

样本 2 的观察次数。

equal_var 布尔型,可选

如果为 True(默认),则执行假设总体方差相等的标准独立 2 样本检验 [1]。如果为 False,请执行 Welch 的 t-test,它不假定人口方差相等 [2]。

alternative {‘双面’,‘less’, ‘greater’},可选

定义备择假设。可以使用以下选项(默认为“双面”):

  • “双面”:分配方式不平等。

  • ‘less’:第一个分布的均值小于第二个分布的均值。

  • ‘greater’:第一个分布的平均值大于第二个分布的平均值。

返回

statistic 浮点数或数组

计算出来的t-statistics。

pvalue 浮点数或数组

two-tailed p 值。

注意

统计量计算为(mean1 - mean2)/se,其中se是标准误。因此,当统计量为正时平均值1大于均值2和消极的时候平均值1小于均值2.

此方法不检查是否有任何元素标准1或者标准2是负面的。如果有任何元素标准1或者标准2调用此方法时参数为负数,此方法将返回与传递的结果相同的结果numpy.abs(std1)numpy.abs(std2),分别代替;不会发出任何异常或警告。

参考

例子

假设我们有两个样本的汇总数据,如下(样本方差是校正后的样本方差):

Sample   Sample
           Size   Mean   Variance
Sample 1    13    15.0     87.5
Sample 2    11    12.0     39.0

将 t-test 应用于此数据(假设总体方差相等):

>>> import numpy as np
>>> from scipy.stats import ttest_ind_from_stats
>>> ttest_ind_from_stats(mean1=15.0, std1=np.sqrt(87.5), nobs1=13,
...                      mean2=12.0, std2=np.sqrt(39.0), nobs2=11)
Ttest_indResult(statistic=0.9051358093310269, pvalue=0.3751996797581487)

为了比较,这里是这些汇总统计数据的来源。有了这些数据,我们可以使用 scipy.stats.ttest_ind 计算相同的结果:

>>> a = np.array([1, 3, 4, 6, 11, 13, 15, 19, 22, 24, 25, 26, 26])
>>> b = np.array([2, 4, 6, 9, 11, 13, 14, 15, 18, 19, 21])
>>> from scipy.stats import ttest_ind
>>> ttest_ind(a, b)
Ttest_indResult(statistic=0.905135809331027, pvalue=0.3751996797581486)

假设我们有二进制数据,并希望应用 t-test 来比较两个独立组中 1 的比例:

Number of    Sample     Sample
            Size    ones        Mean     Variance
Sample 1    150      30         0.2        0.161073
Sample 2    200      45         0.225      0.175251

样本均值 是样本中 1 的比例,二元观测的方差由 估计。

>>> ttest_ind_from_stats(mean1=0.2, std1=np.sqrt(0.161073), nobs1=150,
...                      mean2=0.225, std2=np.sqrt(0.175251), nobs2=200)
Ttest_indResult(statistic=-0.5627187905196761, pvalue=0.5739887114209541)

为了进行比较,我们可以使用 0 和 1 数组以及 scipy.stat.ttest_ind 来计算 t 统计量和 p 值,如上所述。

>>> group1 = np.array([1]*30 + [0]*(150-30))
>>> group2 = np.array([1]*45 + [0]*(200-45))
>>> ttest_ind(group1, group2)
Ttest_indResult(statistic=-0.5627179589855622, pvalue=0.573989277115258)

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.ttest_ind_from_stats。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。