# ranksum
Wilcoxon 秩和检验
函数库: TyStatistics
# 语法
p,h,stats = ranksum(x,y;alpha=0.05,method="default",tail="both")
# 说明
p,h,stats = ranksum(x,y;alpha=0.05,method="default",tail="both")返回双侧Wilcoxon秩和检验的p值。ranksum检验了零假设,即x和y中的数据是来自具有相等中值的连续分布的样本,而不是相反的假设。测试假设两个样本是独立的。x和y可以具有不同的长度。还返回指示测试决定的逻辑值。结果h=1表示拒绝零假设,h=0表示在5%显著性水平上拒绝零假设失败。除此之外还返回带有测试统计信息的结构统计信息。
# 示例
检验两个总体的中位数是否相等
检验两个独立的不等大小样本的中位数相等的假设。
生成样本数据。
using TyMath
using TyStatistics
rng = MT19937ar(5489)
x = unifrnd(rng,0,1,10)
y = unifrnd(rng,0.25,1.25,15)
这些样本来自除了位置偏移 0.25 之外具有相同分布的总体。
测试 x 和 y 的中位数是否相等。
p = ranksum(x,y)[1]
p = 0.03751400161554005
p 值 0.0375 表示 ranksum 在默认的 5% 显着性水平下拒绝中位数相等的原假设。
两个总体中位数检验的统计数据
获取两个总体中位数相等性检验的统计数据。
加载示例数据。
using TyStatistics
pkg_dir = pkgdir(TyStatistics)
source_path = pkg_dir * "/examples/HypothesisTests/LocationTests/ranksum_tests/ranksum_data1.jl"
include(source_path)
测试第一类和第二类汽车的每加仑英里数是否相同。
p,h,stats = ranksum(mileage[:,1],mileage[:,2])
p = 0.004329004329004329
h = 1
stats = TyStatisticsCore.__Internal__.RanksumStats(nothing, 21.5)
p 值 0.043 和 h = 1 均表示在默认的 5% 显着性水平下拒绝中位数相等的原假设。 因为样本量很小(每个 6 个),ranksum 使用精确方法计算 p 值。 结构统计仅包括秩和检验统计量的值
增加中位数
检验人口中位数增加的假设。
加载示例数据。
using TyStatistics
pkg_dir = pkgdir(TyStatistics)
source_path = pkg_dir * "/examples/HypothesisTests/LocationTests/ranksum_tests/ranksum_data2.jl"
include(source_path)
气象数据显示的是连续两年同月的日高温。
执行左侧检验以评估中位数在 1% 的显着性水平上的增加。
p,h,stats = ranksum(year1,year2;alpha=0.01,tail="left")
p = 0.1270832752950605
h = 0
stats = TyStatisticsCore.__Internal__.RanksumStats(-1.140287483634606, 837.5)
基于 0.1271 的 p 值和逻辑值 h = 0,没有足够的证据拒绝原假设。 也就是说,结果未显示从第 1 年到第 2 年的月份中位高温在 1% 的显着性水平上存在正向偏移。 请注意,由于样本量较大,ranksum 使用近似方法计算 p 值。
使用精确方法计算 p 值。
p,h,stats = ranksum(year1,year2;alpha=0.01,tail="left",method="exact")
p = 0.12734391643286336
h = 0
stats = TyStatisticsCore.__Internal__.RanksumStats(nothing, 837.5)
近似法和精确法的结果是一致的。
# 输入参数
x — 样本数据
向量
样本数据,指定为向量
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
y — 样本数据
向量
样本数据,指定为向量。 y 的长度不必与 x 的长度相同。
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
# 关键字参数
alpha — 显著性水平
0.05(默认) | 0 到 1 之间的标量值
假设检验决策的显着性水平,指定为 alpha 和 0 到 1 范围内的标量值。h 的显着性水平为 100 * alpha%。
示例: alpha = 0.01
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
method — 计算p值得方法
"exact" | "approximate"
p 值的计算方法,指定为 method 和以下项之一:
| "exact" | p 值的精确计算。 |
| "approximate" | 计算 p 值的正态近似。 |
当未指定“方法”时,默认为:
"exact" 如果
且 "approximate" 其他情况
示例: method = "exact"
tail — 检验的类型
"both" (默认) | "right" | "left"
检验类型,指定为 tail 和以下项之一:
| "both" | 双侧假设检验,其中替代假设表明x和y具有不同的中位数。如果未指定“tail”,则为默认测试类型。 |
| "right" | 右侧假设检验,其中备择假设表明 x 的中位数大于 y 的中位数。 |
| "left" | 左侧假设检验,其中备择假设表明 x 的中位数小于 y 的中位数。 |
示例: tail = "left"
# 输出参数
p — 检验的p值
非负标量值
检验的 p 值,返回为从 0 到 1 的正标量。p 是在原假设下观察到的测试统计量等于或超过观察值的概率。 ranksum 通过将最重要的一侧值加倍来计算两侧 p 值。
h — 假设检验的结果
1 | 0
假设测试的结果,返回 1 或者 0。
如果 h = 1,则表示在100*α%显著性水平上拒绝了零假设。
如果 h = 0,则表示无法拒绝 100 * alpha% 显着性水平的原假设。
stats — 检验统计量
结构体
测试统计量,作为结构体返回。 stats中存储的测试统计信息有:
ranksum :秩和检验统计量的值
zval:z 统计量的值(在 method 为 "approximate" 时计算)
# 详细信息
Wilcoxon秩和检验
当样本独立时,Wilcoxon秩和检验是两个总体的非参数检验。如果X和Y是具有不同样本大小的独立样本,ranksum返回的测试统计量是第一个样本的秩和。
Wilcoxon 秩和检验等同于 Mann-Whitney U 检验。 Mann-Whitney U 检验是一种非参数检验,用于检验两个独立样本 X 和 Y 的总体中位数是否相等。
Mann-Whitney U检验统计量 U 是在两个独立样本x和y中元素的有序排列中 y 先于 x 的次数。它与Wilcoxon秩和统计量的关系如下:如果x是大小为
z-统计量
对于大样本,ranksum使用z统计量来计算测试的近似p值。
如果 X 和 Y 是大小为
具有连续性校正和平局调整。此处tiescor由
其中 ranksum 使用 ranks,tieadj=tiedrink(x,y) 来获得平局调整。标准正态分布给出了这个z统计量的 p 值。
# 算法
ranksum 将 x 和 y 中的 NaN 视为缺失值并忽略它们。
对于样本量不相等的中位数的双边检验,ranksum 返回的检验统计量是第一个样本的秩和。
# 参考文献
[1] Gibbons, J. D., and S. Chakraborti. Nonparametric Statistical Inference, 5th Ed., Boca Raton, FL: Chapman & Hall/CRC Press, Taylor & Francis Group, 2011.
[2] Hollander, M., and D. A. Wolfe. Nonparametric Statistical Methods. Hoboken, NJ: John Wiley & Sons, Inc., 1999.