當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。