Scipy t-test统计中的一个样本?

时间:2017-12-21 12:43:28

标签: python pandas scipy

是否可以使用scipy.stats.ttest_1samp进行t检验,其中输入是统计信息而不是数组?例如,区别在于您有两个选项:ttest_ind()和ttest_ind_from_stats()。

import numpy as np
import scipy.stats as stats
from scipy.stats import norm

mean1=35.6
std1=11.3
nobs1=84
mean2=44.7
std2=8.9
nobs2=84
print(stats.ttest_ind_from_stats(mean1, std1, nobs1, mean2, std2, nobs2, equal_var=False))
# alternatively, you can pass 2 arrays
print(stats.ttest_ind(
stats.norm.rvs(loc=mean1, scale=std1, size=84), 
stats.norm.rvs(loc=mean2, scale=std2, size=84),
equal_var=False)
 )

单样本t检验是否存在等效函数? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

TL; DR

单个样本测试没有这样的功能,但您可以使用两个样本功能。 简而言之,要执行一个样本 t -test,请执行以下操作:

sp.stats.ttest_ind_from_stats(mean1=sample_mean, 
                              std1=sample_std, 
                              nobs1=n_samples, 
                              mean2=population_mean, 
                              std2=0, 
                              nobs2=2, 
                              equal_var=False)

请注意,结果完全独立于nobs2(因为它应该是,因为在一个样本测试中没有 n2 )。只需确保传入一个值> 1,以避免除以零。

它是如何运作的?

查看有关different types of t-test的维基百科页面。

一个样本 t -test使用统计

enter image description here

n - 1 自由度。

ttest_ind_from_stats函数可以进行Welch的t检验(样本大小不等,方差不等),定义为

enter image description hereenter image description here

和自由度:

enter image description here

我们可以将Welch的t检验的定义转换为一个样本 t -test。如果我们将mean2设置为总体均值并将std2设置为0,那么 t - 统计的等式是相同的,并且自由度减少到 n - 1