# signrank


Wilcoxon 符号秩检验

函数库: TyStatistics

# 语法

p,h,stats = signrank(x, y=zero(x); alpha::Number=0.05, method="", tail="both")

# 说明

p,h,stats = signrank(x, y=zero(x); alpha::Real=0.05, method="", tail="both") 返回符号测试的 p 值,附加选项由一个或多个关键字参数指定。示例

# 示例

测试单个总体的零中位数

检验零中位数的假设。

生成示例数据。

using TyMath
using TyStatistics
rng = mt19937ar(5489) # for reproducibility
x = randn(rng,1,25) .+ 1.30;

检验 x 中数据的中位数为零的假设。

p,h, = signrank(x)
p = 3.2228773354575424e-5
h = true

在默认的 5% 显着性水平下,值 h = 1 表示检验拒绝零中位数的原假设。

检验配对样本差异的中位数

检验配对样本之间差异的零中值假设。

生成示例数据。

using TyMath
using TyStatistics
rng = mt19937ar(5489) # for reproducibility
x = lognrnd(rng,2,.25,10,1);
y = x + trnd(rng,2, 10, 1)

检验 x – y 的中位数为零的假设。

p,h = signrank(x,y)
p = 0.322265625
h = false

结果表明检验未能拒绝在默认的 5% 显着性水平下差值中位数为零的原假设。

大样本的符号秩检验

对大样本执行左侧符号测试。

加载示例数据。

using TyStatistics
datadir = pkgdir(TyStatistics) * ("/examples/HypothesisTests/LocationTests/signtest_tests/signtest_test4_data.jl")
include(datadir)

检验零假设,即参加辅导计划前后学生成绩差异的中位数为 0,而替代假设小于 0。

p,h,stats = signrank(gradespaired[:,1],gradespaired[:,2],tail = "left")
p = 0.004686249943563512
h = true
stats = TyStatisticsCore.__Internal__.Signrank
  signedrank: Float64 2017.5
  zval: Float64 -2.598159311793331

由于样本量大于 15,signrank 使用近似方法计算 p 值,同时返回 z 统计量的值。 值 h = 1 表示检验拒绝原假设,即在 5% 的显着性水平下,成绩中位数之间没有差异。 有足够的统计证据可以得出结论,辅导计划前的平均成绩低于辅导计划后的平均成绩。

使用确切的方法重复测试。

p,h,stats = signrank(gradespaired[:,1],gradespaired[:,2],tail = "left",method = "exact")
p = 0.004483143007835018564962277919205220365538449658687005777470406964885230038930786
h = true
stats = TyStatisticsCore.__Internal__.Signrank
  signedrank: Float64 2017.5
  zval: Float64 1.0
单一总体中位数的双侧检验

检验总体中位数与指定值不同的假设。

加载示例数据。

using TyStatistics
datadir = pkgdir(TyStatistics) * ("/examples/HypothesisTests/LocationTests/signrank_tests/signrank_test5_data.jl")
include(datadir)

数据包含第 1 列到第 3 列中三种不同类型汽车的每加仑英里数。

检验第二列中汽车类型的中位里程不同于 33 的假设。

p,h,stats = signrank(mileage[:,2],33)
p = 0.03125
h = true
stats = TyStatisticsCore.__Internal__.Signrank
  signedrank: Float64 21.0
  zval: Float64 1.0

在 5% 的显着性水平上,结果表明第二类汽车的中位里程不同于 33。请注意,signrank 使用精确方法计算小样本的 p 值,并且不返回 z 统计量。

单个总体中位数的右侧检验

检验总体中位数与指定值不同的假设。

加载示例数据。

using TyStatistics
datadir = pkgdir(TyStatistics) * ("/examples/HypothesisTests/LocationTests/signrank_tests/signrank_test5_data.jl")
include(datadir)

数据包含第 1 列到第 3 列中三种不同类型汽车的每加仑英里数。

检验第二行中汽车类型的平均里程数大于 33 的假设。

p,h,stats = signrank(mileage[:,2],33,tail = "right")
p = 0.015625
h = true
stats = TyStatisticsCore.__Internal__.Signrank
  signedrank: Float64 21.0
  zval: Float64 1.0

使用近似方法在 1% 的显着性水平上重复相同的测试。

p,h,stats = signrank(mileage[:,2],33,tail = "right",alpha = 0.01,method = "approximate")
p = 0.01801584310911679
h = false
stats = TyStatisticsCore.__Internal__.Signrank
  signedrank: Float64 21.0
  zval: Float64 2.096569673443837

这个结果 h = 0 表明不能在 1% 的显着性水平上拒绝原假设。

# 输入参数

x — 样本数据
向量

样本数据,指定为向量。

数据类型 : Real

y — 样本数据
向量

样本数据,指定为向量。y的长度必须和x一样。

数据类型 : Real

m — 中位数的假设值
标量

中位数的假设值,指定为标量。

示例:signrank(x,10)

数据类型 : Real

# 关键字参数

将可选参数对指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是相应的值。 名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

alpha — 显着性水平
0.05(默认) | 0 到 1 范围内的标量值

假设检验的显着性水平,指定为以逗号分隔的对组,其中包含alpha和 0 到 1 范围内的标量值。alpha 的默认值为 0.05。 h 的显着性水平为 100 * alpha%。

示例:alpha = 0.01

数据类型 : Real

method — p值计算方法
"exact" | "approximate"

p 值计算方法,指定为以逗号分隔的对组,其中包含 method 和以下项之一:

method可选值 说明
"exact" p 值 p 的精确计算。 未指定方法时,x、x – m 或 x – y 中 15 个或更少观察值的默认值。
"approximate" 计算 p 值 p 时的正态近似。 当未指定method时,x、x – m 或 x – y 中超过 15 个观察值的默认值,因为在大样本上精确方法可能很慢。

如果观测值少于 100 个,则默认计算方法为"exact";如果观测值超过 100 个,则默认计算方法为"approximate"。

示例 : method = "exact"

tail — 检验的类型
"both" (default) | "right" | "left"

测试类型,指定为以逗号分隔的对,其中包含 'Tail' 和以下项之一:

tail可选值 说明
"both" 双侧假设检验,这是默认检验类型。
· 对于单样本检验,备择假设表明 x 中的数据来自中位数不同于 0 或 m 的连续分布。

· 对于双样本检验,备择假设表明 x – y 中的数据来自中位数不为 0 的分布。
"right" 右尾假设检验。· 对于单样本检验,备择假设表明 x 中的数据来自中位数大于 0 或 m 的连续分布。
· 对于双样本检验,备择假设表明 x – y 中的数据来自中位数大于 0 的分布。
"left" 左尾假设检验。
· 对于单样本检验,备择假设表明 x 中的数据来自中位数小于 0 或 m 的连续分布。
· 对于双样本检验,备择假设表明 x – y 中的数据来自中位数小于 0 的分布。

示例 : tail = "left"

# 输出参数

p — 检验的 p 值
非负标量

检验的 p 值,返回为从 0 到 1 的非负标量。p 是在原假设下观察到检验统计量等于或大于观察值的概率。 signrank 通过将最重要的一侧值加倍来计算两侧 p 值。

h - 假设检验的结果
true | false

假设检验的结果,作为逻辑值返回。

  • 如果 h = 1,这表示在 100 * Alpha% 显着性水平下拒绝原假设。

  • 如果 h = 0,这表示无法拒绝 100 * Alpha% 显着性水平的原假设。

stats — 测试统计
结构体

测试统计信息,作为结构返回。 stats中存储的测试统计信息有:

  • signrank:符号秩检验统计值

  • zval:[z-statistic](仅针对大样本计算)。

# 详细信息

Wilcoxon 符号秩检验

当观察值配对时,Wilcoxon 符号秩检验是针对两个总体的非参数检验。 在这种情况下,检验统计量 W 是两个样本(即 x – y)中观察值之间正差的秩和。 当您对一个样本使用检验时,W 是观察值与假设中值 M0 之间正差的秩和(当您使用 signrank(x) 时为 0,使用 signrank(x,m 时为 m )).

z-Statistic

对于大样本,signrank 使用 z 统计量来近似 p 值。

signrank 检验统计量是大于 0(对于 signrank(x) 或 signrank(x-y))或 m(对于 signrank(x,m))的元素数。 因此,具有连续性校正的符号检验的 z 统计量为:

其中 n 是差值 x – y 或 x – m 的样本量。 对于双样本情况,signrank 使用 tie_rank,tieadj = tiedrank(abs(diffxy),0,0,epsdiff) 来获得平局调整值 tieadj。

# 算法

signrank 将 x 和 y 中的 NaN 视为缺失值并忽略它们。

对于双样本情况,signrank 使用基于值 epsdiff = eps(x) + eps(y) 的容差。 signrank 计算差值的绝对值 (abs(d[i]),其中 d[i] = x[i] – y[i])并将它们与 epsdiff 进行比较。 绝对值小于 epsdiff (abs(d[i]) < epsdiff[i]) 的值被视为平局。

# 参考文献

[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.

# 另请参阅

ttest | ztest |signtest