Main Content

signrank

ウィルコクソン符号順位検定

説明

p = signrank(x) は、ウィルコクソン符号順位検定の両側値 p を返します。

signrank は、ベクトル x のデータが、中央値がゼロの分布から派生しているという帰無仮説を有意水準 5% で検定します。この検定では x のデータがその中央値に対称となる連続分布から派生したと仮定します。

p = signrank(x,y) は、xy が中央値ゼロの分布から派生しているという帰無仮説についての 1 つのペアの両側検定の p 値を返します。

p = signrank(x,y,Name,Value) は、1 つ以上の Name,Value のペア引数で指定された追加のオプションを使用した符号検定の p 値を返します。

[p,h] = signrank(___) は、検定の判定を示す logical 値も返します。h = 1 は帰無仮説が棄却されたことを、h = 0 は帰無仮説を棄却できなかったことを示します。有意水準は 5% です。前の構文の入力引数のいずれかを使用できます。

[p,h,stats] = signrank(___) は検定統計量に関する情報を含む stats 構造体も返します。

[___] = signrank(x,m) は、x のデータが中央値 m の分布から派生した観測値であるという帰無仮説について、前の構文の任意の出力引数を返します。

[___] = signrank(x,m,Name,Value) は、1 つ以上の Name,Value のペア引数により指定される追加のオプションを使用した符号順位検定について、前の構文の任意の出力引数を返します。

すべて折りたたむ

中央値がゼロであるという仮説を検定します。

標本データを生成します。

rng('default') % for reproducibility
x = randn(1,25) + 1.30;

x のデータの中央値がゼロであるという仮説を検定します。

[p,h] = signrank(x)
p = 3.2229e-05
h = logical
   1

既定の有意水準 5% で、h の値が 1 である場合、中央値がゼロであるという帰無仮説が検定によって棄却されることを示します。

標本のペアの間の差の中央値がゼロであるという仮説を検定します。

標本データを生成します。

rng('default') % for reproducibility
x = lognrnd(2,.25,10,1);
y = x + trnd(2,10,1);

xy の中央値が 0 であるという仮説を検定します。

[p,h] = signrank(x,y)
p = 0.3223
h = logical
   0

検定の結果は、既定の有意水準 5% で差の中央値がゼロであるという帰無仮説を棄却できないことを示しています。

近似を使用してサイズが大きい標本に片側検定を実行します。

標本データを読み込みます。

load('gradespaired.mat');

個人指導プログラムに参加する前と後で学生の成績の差異の中央値がゼロであるという帰無仮説を、ゼロより小さくなるという対立仮説に対して検定します。

[p,h,stats] = signrank(gradespaired(:,1),...
		gradespaired(:,2),'tail','left')
p = 0.0047
h = logical
   1

stats = struct with fields:
          zval: -2.5982
    signedrank: 2.0175e+03

標本サイズが 15 より大きいので、signrank は近似法を使用して p 値を計算し、z 統計量の値も返します。h = 1 の値は、成績の中央値の間に差異がないという帰無仮説が、検定によって 5% の有意水準で棄却されることを示します。個人指導の前の成績の中央値は、指導後の成績の中央値より小さいと結論付けるのに十分な統計的証拠が存在しています。

厳密なメソッドを使用して検定をもう一度実行します。

[p,h,stats] = signrank(gradespaired(:,1),gradespaired(:,2),...
		'tail','left','method','exact')
p = 0.0045
h = logical
   1

stats = struct with fields:
    signedrank: 2.0175e+03

近似メソッドと厳密なメソッドを使用した場合の結果は一致しています。

標本データを読み込みます。

load mileage

このデータには 1 ~ 3 列目に 3 車種のガロンあたりマイル数による燃費が含まれています。

2 列目にある車種の燃費の中央値が 33 と異なるという仮説を検定します。

[p,h,stats] = signrank(mileage(:,2),33)
p = 0.0312
h = logical
   1

stats = struct with fields:
    signedrank: 21

この結果は、5% の有意水準では 2 番目の車種の燃費の中央値が 33 ではないことを示しています。signrank は厳密法を使用して小規模なサンプルの p 値を計算し、z 統計量を返さないことに注意してください。

signrank の名前と値のペアの引数を使用します。

標本データを読み込みます。

load mileage

このデータには 1 ~ 3 列目に 3 車種のガロンあたりマイル数による燃費が含まれています。

2 列目にある車種の燃費の中央値が 33 より大きいという仮説を検定します。

[p,h,stats] = signrank(mileage(:,2),33,'tail','right')
p = 0.0156
h = logical
   1

stats = struct with fields:
    signedrank: 21

近似メソッドを使用して、同じ検定を 1% の有意水準で繰り返します。

[p,h,stats] = signrank(mileage(:,2),33,'tail','right',...
'alpha',0.01,'method','approximate')
p = 0.0180
h = logical
   0

stats = struct with fields:
          zval: 2.0966
    signedrank: 21

h = 0 という結果は、有意水準 1% で帰無仮説を棄却できないことを示します。

入力引数

すべて折りたたむ

ベクトルとして指定される標本データ。

データ型: single | double

ベクトルとして指定される標本データ。y は、x と同じ長さでなければなりません。

データ型: single | double

スカラーとして指定される、仮定された中央値です。

例: signrank(x,10)

データ型: single | double

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'alpha',0.01,'method','approximate','tail','right' は有意水準 1% で右側符号順位検定を指定し、p の近似値を返します。

仮説検定を判断するための有意水準。'alpha' と 0 ~ 1 の範囲のスカラー値で構成されるコンマ区切りのペアとして指定します。h の有意水準は 100 * alpha% です。

例: 'alpha', 0.01

データ型: double | single

p の計算方法。'method' と以下のいずれかで構成される、コンマ区切りペアとして指定します。

'exact'p 値 p の正確な計算。method が指定されていない場合、xxm または xy の観測値が 15 個以下のときの既定値。
'approximate'p 値 p の計算時の正規近似。大規模な標本を厳密に計算するには長い時間がかかる可能性があるため、'method' が指定されていない場合、xxm または xy において 15 個以上の観測値が存在する場合の既定値。

例: 'method','exact'

検定のタイプ。'tail' と以下のいずれかで構成される、コンマ区切りペアとして指定します。

'both'

両側仮説検定。既定の検定タイプです。

  • 1 標本検定では、x のデータが、中央値が 0 または m でない連続分布から派生しているという対立仮説が立てられます。

  • 2 標本検定では、xy のデータが、中央値が 0 以外の分布から派生しているという対立仮説が立てられます。

'right'

右側仮説検定。

  • 1 標本検定では、x のデータが、中央値が 0 または m より大きい連続分布から派生しているという対立仮説が立てられます。

  • 2 標本検定では、xy のデータが、中央値が 0 より大きい分布から派生しているという対立仮説が立てられます。

'left'

左側仮説検定。

  • 1 標本検定では、x のデータが、中央値が 0 または m より小さい連続分布から派生しているという対立仮説が立てられます。

  • 2 標本検定では、xy のデータが、中央値が 0 より小さい分布から派生しているという対立仮説が立てられます。

例: 'tail','left'

出力引数

すべて折りたたむ

0 ~ 1 の非負のスカラーとして返される、検定の p 値。p は、帰無仮説に基づく観測値よりさらに極端な検定統計量が観測される確率です。signrank は、最も有意な片側値を 2 倍にして両側 p 値を計算します。

仮説検定の結果。論理値として返します。

  • h = 1 の場合、有意水準 100 * alpha% で帰無仮説が棄却されることを示します。

  • h = 0 の場合、有意水準 100 * alpha% で帰無仮説を棄却できないことを示します。

構造体として返される検定統計量。stats に格納される検定統計量は次のとおりです。

  • signrank:符号順位検定統計量の値。

  • zval:z 統計量 の値 ('method''approximate' の場合に計算)。

詳細

すべて折りたたむ

ウィルコクソン符号順位検定

ウィルコクソン符号順位検定は、観測値が対になる場合、2 つの母集団に対して行うノンパラメトリック検定になります。この場合、検定統計量 W は 2 つの標本の観測間における正の差 (xy) の順位和となります。1 標本検定を行う場合、W は観測値と仮定中央値 M0 間における正の差の順位和になります (これは signrank(x) を使用する場合は 0、signrank(x,m) を使用する場合は m になります)。

z 統計量

大規模な標本の場合や methodapproximate に指定した場合、関数 signrank は次で与えられる z 統計量を使用して p 値を計算します。

z=(Wn(n+1)/4)n(n+1)(2n+1)tieadj24,

ここで、n は x – y または xm という差分の標本サイズです。2 標本の場合、signrank[tie_rank,tieadj] = tiedrank(abs(diffxy),0,0,epsdiff) を使用して同順位調整値 tieadj を取得します。

アルゴリズム

signrank は、x および yNaN を欠損値として認識し、無視します。

signrank は、2 つの標本の検定の場合、値 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.

バージョン履歴

R2006a より前に導入