是否可以使用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检验?谢谢你的帮助。
2条答案
按热度按时间brccelvz1#
TL;DR
对于单样本测试没有这样的函数,但是你可以使用双样本函数。简而言之,要执行单样本 t-测试,请执行以下操作:
字符串
请注意,结果完全独立于
nobs2
(因为在单样本测试中没有 n2)。只需确保传入>1的值以避免被零除。如何使用?
查看有关different types of t-test的维基百科页面。
单样本t检验使用统计量
x1c 0d1x的数据
有 n - 1 个自由度
ttest_ind_from_stats
函数可以执行Welch t检验(不等样本大小,不等方差),其定义为与
自由度:
我们可以将Welch t检验的定义转化为单样本 t 检验,如果我们将
mean2
设为总体均值,std2
设为0,则 t 统计量的方程是相同的,自由度减少到 n - 1。dgenwo3n2#
这里提供的方法非常好,但是提供的p值可能需要很少的调整,因为人口规模为1或2可能会扭曲p值。我尝试用更大的人口规模重写函数如下:
字符串
这对我的案子很有用
示例如下:
型
#########
型