Python scipy.stats.ttest_1samp实例讲解

时间:2022-04-07
本文章向大家介绍Python scipy.stats.ttest_1samp实例讲解,主要分析其语法、参数、返回值和注意事项,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

用法:

scipy.stats.ttest_1samp(a, popmean, axis=0, nan_policy='propagate', alternative='two-sided')

计算一组分数的平均值的T-test。

这是对独立观测样本 a 的期望值(均值)等于给定总体均值 popmean 的零假设的检验。

参数

a array_like

样品观察。

popmean float 或 数组

零假设中的期望值。如果 数组,那么它必须具有与不包括轴维度相同的形状。

axis int 或 None,可选

计算测试的轴;默认为 0。如果没有,则计算整个数组 a。

nan_policy {‘propagate’, ‘raise’, ‘omit’},可选

定义当输入包含 nan 时如何处理。以下选项可用(默认为‘propagate’):

  • ‘propagate’:returns nan

  • ‘raise’:throws an error

  • ‘omit’:performs the calculations ignoring nan values

alternative {‘two-sided’,‘less’, ‘greater’},可选

定义备择假设。以下选项可用(默认为“two-sided”):

  • ‘two-sided’:样本基础分布的均值与给定的总体均值(popmean)不同

  • ‘less’:样本底层分布的均值小于给定总体均值(popmean)

  • ‘greater’:样本底层分布的均值大于给定总体均值(popmean)

返回

statistic 浮点数或数组

t-statistic。

pvalue 浮点数或数组

Two-sided p-value。

注意

统计量计算为 (np.mean(a) - popmean)/se ,其中 se 是标准误差。因此,当样本均值大于总体均值时统计量为正,当样本均值小于总体均值时统计量为负。

例子

>>> from scipy import stats
>>> rng = np.random.default_rng()
>>> rvs = stats.norm.rvs(loc=5, scale=10, size=(50, 2), random_state=rng)

测试随机样本的均值是否等于真实均值,以及不同的均值。我们在第二种情况下拒绝零假设,在第一种情况下不拒绝它。

>>> stats.ttest_1samp(rvs, 5.0)
Ttest_1sampResult(statistic=array([-2.09794637, -1.75977004]), pvalue=array([0.04108952, 0.08468867]))
>>> stats.ttest_1samp(rvs, 0.0)
Ttest_1sampResult(statistic=array([1.64495065, 1.62095307]), pvalue=array([0.10638103, 0.11144602]))

使用轴和非标量维度作为总体平均值的示例。

>>> result = stats.ttest_1samp(rvs, [5.0, 0.0])
>>> result.statistic
array([-2.09794637,  1.62095307])
>>> result.pvalue
array([0.04108952, 0.11144602])
>>> result = stats.ttest_1samp(rvs.T, [5.0, 0.0], axis=1)
>>> result.statistic
array([-2.09794637,  1.62095307])
>>> result.pvalue
array([0.04108952, 0.11144602])
>>> result = stats.ttest_1samp(rvs, [[5.0], [0.0]])
>>> result.statistic
array([[-2.09794637, -1.75977004],
       [ 1.64495065,  1.62095307]])
>>> result.pvalue
array([[0.04108952, 0.08468867],
       [0.10638103, 0.11144602]])