本文简要介绍 python 语言中 scipy.stats.median_test
的用法。
用法:
scipy.stats.median_test(*samples, ties='below', correction=True, lambda_=1, nan_policy='propagate')#
执行 Mood 中位数检验。
检验两个或多个样本是否来自具有相同中位数的总体。
让
n = len(samples)
是样本数。计算所有数据的“grand median”,并通过将每个样本中的值分类为高于或低于总中位数形成列联表。列联表,以及更正和lambda_, 传递给scipy.stats.chi2_contingency计算检验统计量和 p 值。- sample1, sample2, …: array_like
样本集。必须至少有两个样本。每个样本必须是包含至少一个值的一维序列。样本不需要具有相同的长度。
- ties: str,可选
确定等于总中位数的值如何在列联表中分类。字符串必须是以下之一:
"below": Values equal to the grand median are counted as "below". "above": Values equal to the grand median are counted as "above". "ignore": Values equal to the grand median are not counted.
默认值为“below”。
- correction: 布尔型,可选
如果为真,并且只有两个样本,则在计算与列联表相关的检验统计量时应用 Yates 的连续性校正。默认为真。
- lambda_: float 或 str,可选
默认情况下,此测试中计算的统计量是 Pearson 的卡方统计量。lambda_允许使用来自Cressie-Read 功率散度族的统计信息。看scipy.stats.power_divergence详情。默认值为 1(皮尔逊卡方统计量)。
- nan_policy: {‘propagate’, ‘raise’, ‘omit’},可选
定义当输入包含 nan 时如何处理。 ‘propagate’ 返回 nan,‘raise’ 引发错误,‘omit’ 执行忽略 nan 值的计算。默认为‘propagate’。
- res: MedianTestResult
包含属性的对象:
- 统计 浮点数
检验统计量。返回的统计数据由 lambda_ 确定。默认值为 Pearson 的卡方统计量。
- p值 浮点数
检验的 p 值。
- 中位数 浮点数
大中位数。
- 表格 ndarray
列联表。表格的形状是 (2, n),其中 n 是样本数。第一行保存总中位数以上的值的计数,第二行保存总中位数以下的值的计数。该表允许使用例如
scipy.stats.chi2_contingency
或如果有两个样本使用scipy.stats.fisher_exact
进行进一步分析,而无需重新计算表。如果nan_policy
是 “propagate” 并且输入中有 nans,则table
的返回值为None
。
参数 ::
返回 ::
注意:
参考:
[1]Mood, A. M.,统计理论导论。 McGraw-Hill (1950),第 394-399 页。
[2]Zar, J. H.,生物统计分析,第 5 版。普伦蒂斯·霍尔 (2010)。请参阅第 8.12 节和第 10.15 节。
例子:
一位生物学家进行了一项实验,其中有三组植物。第 1 组有 16 株植物,第 2 组有 15 株植物,第 3 组有 17 株植物。每株植物都会产生许多种子。每组的种子数为:
Group 1: 10 14 14 18 20 22 24 25 31 31 32 39 43 43 48 49 Group 2: 28 30 31 33 34 35 36 40 44 55 57 61 91 92 99 Group 3: 0 3 9 22 23 25 25 33 34 34 40 45 46 48 62 67 84
以下代码将 Mood 中位数检验应用于这些样本。
>>> g1 = [10, 14, 14, 18, 20, 22, 24, 25, 31, 31, 32, 39, 43, 43, 48, 49] >>> g2 = [28, 30, 31, 33, 34, 35, 36, 40, 44, 55, 57, 61, 91, 92, 99] >>> g3 = [0, 3, 9, 22, 23, 25, 25, 33, 34, 34, 40, 45, 46, 48, 62, 67, 84] >>> from scipy.stats import median_test >>> res = median_test(g1, g2, g3)
中位数是
>>> res.median 34.0
列联表是
>>> res.table array([[ 5, 10, 7], [11, 5, 10]])
p 太大,无法得出中位数不相同的结论:
>>> res.pvalue 0.12609082774093244
“G-test” 可以通过将
lambda_="log-likelihood"
传递给median_test
来执行。>>> res = median_test(g1, g2, g3, lambda_="log-likelihood") >>> res.pvalue 0.12224779737117837
中位数在数据中出现了多次,因此如果使用例如
ties="above"
,我们将得到不同的结果:>>> res = median_test(g1, g2, g3, ties="above") >>> res.pvalue 0.063873276069553273
>>> res.table array([[ 5, 11, 9], [11, 4, 8]])
此示例表明,如果数据集不大且值等于中位数,则 p 值可能对关系的选择很敏感。
相关用法
- Python SciPy stats.median_abs_deviation用法及代码示例
- Python SciPy stats.median_absolute_deviation用法及代码示例
- Python SciPy stats.multiscale_graphcorr用法及代码示例
- Python SciPy stats.multivariate_normal用法及代码示例
- Python SciPy stats.multivariate_hypergeom用法及代码示例
- Python SciPy stats.mode用法及代码示例
- Python SciPy stats.monte_carlo_test用法及代码示例
- Python SciPy stats.multivariate_t用法及代码示例
- Python SciPy stats.matrix_normal用法及代码示例
- Python SciPy stats.mood用法及代码示例
- Python SciPy stats.moyal用法及代码示例
- Python SciPy stats.maxwell用法及代码示例
- Python SciPy stats.mvsdist用法及代码示例
- Python SciPy stats.moment用法及代码示例
- Python SciPy stats.multinomial用法及代码示例
- Python SciPy stats.mielke用法及代码示例
- Python SciPy stats.mannwhitneyu用法及代码示例
- Python SciPy stats.anderson用法及代码示例
- Python SciPy stats.iqr用法及代码示例
- Python SciPy stats.genpareto用法及代码示例
- Python SciPy stats.skewnorm用法及代码示例
- Python SciPy stats.cosine用法及代码示例
- Python SciPy stats.norminvgauss用法及代码示例
- Python SciPy stats.directional_stats用法及代码示例
- Python SciPy stats.invwishart用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.median_test。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。