# 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" 其他情况

分别是 x 和 y 的大小

示例: 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 是大小为 的两个独立样本,其中 ,则z统计量为

具有连续性校正和平局调整。此处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.

# 另请参阅

signrank | signtest | ttest2