2025/5/2

エクセル関数を使ったマンホイットニーのU検定のやり方【コピペ用テンプレートあり】

Thumbnail for エクセル関数を使ったマンホイットニーのU検定のやり方【コピペ用テンプレートあり】

はじめに

エクセル関数を使った、 マンホイットニーのU検定(ウィルコクソンの順位和検定)のやり方を紹介します。 ここでは大標本向けの方法(正規近似)を用います。

下にテンプレート(セルデータサンプル)があるので、 コピペですぐに使用できます。

マンホイットニーのu検定とは

マンホイットニーのU検定とは、「2つの母集団の分布の中央値に有意差があるか」を判定する統計的仮説検定の1つです。 ウィルコクソンの順位和検定とも呼ばれます。 対応のないt検定のノンパラメトリック版として使用されます。

いつ使うのか?

マンホイットニーのU検定は、以下のような場合に使用します。

  • カテゴリデータでない
  • データが正規分布していない、または外れ値が大きい(間隔・比率尺度データのとき)
  • データが独立した2群(グループ)

マンホイットニーのU検定は、 標本サイズによって途中の手順が変わります。 ここでは、 大標本向けの方法(正規近似)を用いる ため、 以下のいずれかの条件を満たす必要があります。

  • 2群の両方のサイズ n ≧ 8
  • 2群の内の片方のサイズ n ≧ 21

算出値の意味

仮説検定では、 p値 を算出し、 有意水準α と比較を行います。 マンホイットニーのU検定(正規近似)での p値 は、 検定統計量 ZUZ_Uから NORMSDIST関数を使って得られます。

p値有意水準α による判定は以下の通りです。

  • p値 < α のとき: 各群の母集団の中央値の間に有意差が ある
  • p値 ≥ α のとき: 各群の母集団の中央値の間に有意差が ない

エクセルでの算出方法

以下の 全セルをコピー ボタンをクリックし、エクセルの A1 セルに貼り付けると、 K16 セルにp値(下記の場合 0.031449255)、 K19セルに検定結果(下記の場合 (有意差)あり)が出力されます。

データを書き換える場合は、 A, B列のデータを書き換え、 J3, J4セルのグループ名も更新してください。 またデータ数に応じて、D ~ G列のセル中の計算式を下に拡張(コピー)、 または削除してください。

ABCDEFGHIJKLM
1データ
2グループ順位同値判定kk^3-k順位和nU
3X9953110X101431257
4Y13735110Y58225518
5X10851110
6X11147110
7Y12442110N56
8Y13438110T78
9X11643110
10X13339110U257
11Y150261324μ_u387.5
12X10352110σ_u^23679.614
13Y13536.5126z_u2.151
14X13933.5126
15Y9054110有意水準α0.05
16Y11245.5126p値0.031
17X14630110
18X15026000結果
19X15520.5126有意差あり
20X14132110
21X13933.5000
22X1961110
23X15520.5000
24X15919110
25X16117110
26X16414.5126
27X14431110
28X15026000
29X13240110
30Y16414.5000
31Y17210110
32Y15422.5126
33Y15422.5000
34X13041110
35Y15124110
36X14729110
37Y16018110
38Y16216110
39Y1789110
40Y1798110
41Y1825.5126
42Y1825.5000
43X11245.5000
44Y16911110
45Y1874110
46Y14928110
47Y10949.5126
48X7955110
49X10949.5000
50X1883110
51X6456110
52X16812.5126
53X16812.5000
54X11544110
55Y1807110
56X13536.5000
57Y1912110
58Y11048110

算出手順

エクセルでマンホイットニーのU検定(正規近似)を行うための手順は、以下の6つです。

1. データ値の順位を算出

同値の場合は平均値をとります。

2. 重複の補正項の計算

データ中に重複がある場合、検定統計量 ZUZ_U を算出する値に補正項 TT を入れる必要があります。

補正項:T=i=1ki3ki補正項 : T = \sum_{i=1} k_i^3 - k_i

そのために必要な k2kk^2-k の計算を、E ~ G列で以下のように行います。

  1. 同値判定 (E列):重複している場合は、2回目以降の重複値で0を、それ以外は1を返す(ROW(), MATCH関数使用)。
  2. kk の算出 (F列): 重複数をカウント(同値判定 = 1 の行のみ)。
  3. k2kk^2-k の算出 (G列):kk を使って計算。
fxROW関数
ROW ( 参照)

指定した参照セルの 行番号を返す。 未指定の場合、呼び出し元のセルが指定される。

参照
: 任意
A4
行番号を取得するセル。
fxMATCH関数
MATCH ( 検査値, 検査範囲, 照合の種類)

指定した検査範囲の中を検索し、最初に検査値マッチしたセルの相対位置を返す。

検査値
: 必須
"C"
検索する値(文字列や数値)。
検査範囲
: 必須
A1:A5
検索範囲。
照合の種類
: 任意
0
照合の型を設定する数値0:完全一致でマッチ、1検査値以下の最大値にマッチ、-1検査値以上の最小値にマッチ)。

3. グループ別に順位和, nn, UUを算出

2グループそれぞれ、個別の順位和とデータサイズ nnUU値 を算出します。

a. 順位和

SUMIFS関数を使い、各グループごとに順位和(順位の合計値)を算出します。

fxSUMIFS関数
SUMIFS ( 合計対象範囲, 検索範囲1, 検索条件1, 検索範囲2, 検索条件2, ... )

複数の条件を設定し、 合計対象範囲 の値を合計 する。
指定した 検索範囲1 内で、検索条件1 に合致した位置と同じ位置の、 合計対象範囲 の値が合計される。 検索範囲条件をセットで追加(例:検索範囲2検索条件2)することで、複数条件を設定できる (最大127セット)。

合計対象範囲
: 必須
C1:C5
合計する数値データ範囲。
検索範囲1
: 必須
A1:A5
検索条件1で検索するデータ範囲。
検索条件1
: 必須
"<>" & G2
合計する条件。
検索範囲2
: 任意
B1:B5
検索条件2で検索するデータ範囲。
検索条件2
: 任意
"<>" & G3
合計する条件。
b. データサイズ nn

COUNTIFS関数を使い、各グループごとにデータサイズを算出します。

fxCOUNTIFS関数
COUNTIFS ( 配列1, 検索条件1, 配列2, 検索条件2, ... )

指定した 配列1 データ中で、 検索条件1 に合致する個数をカウント する。
配列とその条件のセット(例:配列2検索条件2)を追加することで、 複数条件を追加設定できる(最大127セット)。

配列1
: 必須
A1:A5
検索条件1で検索するデータ範囲。
検索条件1
: 必須
">=" & E2
カウントする条件1。
配列2
: 任意
A1:A5
検索条件2で検索するデータ範囲。
検索条件2
: 任意
">=" & E2
カウントする条件2。
c. UU

上記の a., b.の結果を使って、各グループごとにUU値を算出します。 データ中の2グループがX, Yのとき、 グループ XXUU値は、以下の通りです。

UX=nXnY+nX(nX+1)2HXU_X = n_Xn_Y + \frac{n_X(n_X+1)}{2} - H_X
  • nXn_X : グループ XX のデータサイズ
  • nYn_Y : グループ YY のデータサイズ
  • HXH_X : グループ XX の順位和

4. 検定統計量 ZUZ_U の算出

手順2, 3で算出した値を使って、検定統計量 ZUZ_U を算出します。

ZU=UμUσU2Z_U = \frac{|U - \mu_U |}{\sqrt{\sigma_U^2}} \\
  • U=min(UX,UY)U = {\rm min}(U_X, U_Y)
  • μU=nXnY/2\mu_U = n_Xn_Y/2
  • σU2=nXnY/12×(N+1TN(N+1))\sigma_U^2 = n_Xn_Y/12 \times (N+1-\frac{T}{N(N+1)})
  • N=nX+nYN = n_X + n_Y

5. α設定、p値の算出

事前に、有意水準αを設定します。 0.05(5%)や 0.01(1%)が一般的です。

次に、検定統計量 ZUZ_U から、NORM.S.DIST関数を使ってp値を算出します。

fxNORM.S.DIST関数
NORM.S.DIST ( z, 関数形式)

指定したz値に対する標準正規分布(平均0、標準偏差1)の「累積確率」または「確率密度」を計算する (関数形式によって切り替え)。
(旧関数:NORMSDIST関数)

z
: 必須
1.96
F値(正の数値)。
関数形式
: 必須
TRUE
累積確率を返すかを指定 (TRUE:累積確率を返す、FALSE:確率密度を返す)。

6. 結果の表示

手順5で設定した有意水準と、算出したp値を比較し、検定結果を表示します。