Scipy t检验统计学中的单样本?

5

是否可以使用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个回答

5

简述

对于单样本检验,没有特定的函数,但可以使用双样本函数。 简而言之,要执行单样本 t-检验,请按照以下步骤进行:

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 的值以避免除以零。

它是如何工作的?

请查看维基百科关于t-检验的不同类型的页面。

单样本 t-检验使用以下统计量:

enter image description here

自由度为 n-1

ttest_ind_from_stats 函数可以执行 Welch's t-检验(不等样本大小、不等方差),其定义为:

enter image description here 其中 enter image description here

自由度为:

enter image description here

我们可以将 Welch's t-检验的定义转换为单样本 t-检验。如果我们将 mean2 设置为总体均值,std2 设置为 0,则 t 统计量的方程式相同,自由度减少到 n - 1


没错 - 我没有想过!谢谢你的超级清晰的答案! - user2822693

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接