dunnett#
- scipy.stats.dunnett(*samples, control, alternative='two-sided', rng=None)[源代码]#
邓尼特检验:多个均值与对照组的比较。
这是对邓尼特原始单步检验的实现,如 [1] 中所述。
- 参数:
- sample1, sample2, …一维类数组
每个实验组的样本测量值。
- control一维类数组
对照组的样本测量值。
- alternative{‘two-sided’, ‘less’, ‘greater’}, 可选
定义备择假设。
零假设是样本和对照组的分布均值相等。 以下备择假设可用(默认为“two-sided”)
“two-sided”:样本和对照组的分布均值不相等。
“less”:样本的分布均值小于对照组的分布均值。
“greater”:样本的分布均值大于对照组的分布均值。
- rng
numpy.random.Generator
, 可选 伪随机数生成器状态。当 rng 为 None 时,将使用来自操作系统的熵创建一个新的
numpy.random.Generator
。numpy.random.Generator
以外的类型将传递给numpy.random.default_rng
以实例化一个Generator
。在 1.15.0 版本中更改: 作为从使用
numpy.random.RandomState
到numpy.random.Generator
的 SPEC-007 过渡的一部分,此关键字从 random_state 更改为 rng。在过渡期,两个关键字都将继续工作,但一次只能指定一个。在过渡期之后,使用 random_state 关键字的函数调用将发出警告。在弃用期后,将删除 random_state 关键字。
- 返回:
- res
DunnettResult
一个包含属性的对象
- statistic浮点数 ndarray
每次比较的检验计算统计量。索引
i
处的元素是组i
和对照组之间比较的统计量。- pvalue浮点数 ndarray
每次比较的检验计算 p 值。索引
i
处的元素是组i
和对照组之间比较的 p 值。
以及以下方法
- confidence_interval(confidence_level=0.95)
计算组与对照组之间的均值差值 +- 容许值。
- res
注释
与独立样本 t 检验类似,邓尼特检验 [1] 用于推断从中抽取样本的分布的均值。 但是,当在固定的显着性水平下执行多个 t 检验时,“族误差率”(至少在一个检验中错误拒绝零假设的概率)将超过显着性水平。邓尼特检验旨在执行多次比较,同时控制族误差率。
邓尼特检验将多个实验组的均值与单个对照组进行比较。Tukey 的 Honestly Significant Difference Test 是另一种控制族误差率的多重比较检验,但
tukey_hsd
执行组之间的所有成对比较。当不需要实验组之间的成对比较时,邓尼特检验由于其更高的功效而更可取。此检验的使用依赖于几个假设。
观察结果在组内和组之间是独立的。
每个组内的观察结果呈正态分布。
抽取样本的分布具有相同的有限方差。
参考文献
[1] (1,2)Dunnett, Charles W. (1955) “一种比较几种处理与对照的多重比较程序。” 美国统计协会杂志,50:272, 1096-1121, DOI:10.1080/01621459.1955.10501294
[2]Thomson, M. L., & Short, M. D. (1969)。健康、慢性阻塞性气道疾病和石棉沉着症中的粘液纤毛功能。应用生理学杂志,26(5), 535-539。 DOI:10.1152/jappl.1969.26.5.535
示例
我们将使用 [2] 表 1 中的数据。零假设是样本和对照组的分布均值相等。
首先,我们测试样本和对照组的分布均值不相等 (
alternative='two-sided'
,默认值)。>>> import numpy as np >>> from scipy.stats import dunnett >>> samples = [[3.8, 2.7, 4.0, 2.4], [2.8, 3.4, 3.7, 2.2, 2.0]] >>> control = [2.9, 3.0, 2.5, 2.6, 3.2] >>> res = dunnett(*samples, control=control) >>> res.statistic array([ 0.90874545, -0.05007117]) >>> res.pvalue array([0.58325114, 0.99819341])
现在,我们测试样本的分布均值大于对照组的分布均值。
>>> res = dunnett(*samples, control=control, alternative='greater') >>> res.statistic array([ 0.90874545, -0.05007117]) >>> res.pvalue array([0.30230596, 0.69115597])
有关更详细的示例,请参阅 邓尼特检验。