「相関係数を求めたけど、この数値って統計的に意味があるの?」と疑問に思ったことはありませんか。相関係数のままでは平均や比較に使いにくいですよね。
ExcelのFISHER関数を使えば、相関係数をz値に変換できます。この記事では、FISHER関数の基本から信頼区間の算出まで解説しますよ。
ExcelのFISHER関数とは?フィッシャー変換の概要
FISHER関数は、数値をフィッシャー変換してz値を返す関数です。おもに相関係数の統計処理に使います。
Excel 2016以降のすべてのバージョンで利用可能です。Microsoft 365やExcel for the webでも使えます。
FISHER関数の読み方
読み方は「フィッシャー」です。イギリスの統計学者ロナルド・フィッシャーに由来します。
なぜ相関係数をz値に変換するのか
相関係数rは-1から1の範囲に限定されます。rが0.9のように極端な値に近づくと、分布が偏ってしまいます。
この偏りがあると、次のような計算が正しくできません。
- 2つの相関係数を比較する
- 複数の相関係数の平均を取る
- 信頼区間を求める
フィッシャー変換でz値に変換すると、正規分布に近づきます。正規分布(左右対称の釣り鐘型の分布)になれば、平均の計算や仮説検定が適用できますよ。
FISHER関数の書式と引数
基本構文
=FISHER(x)
引数はxの1つだけで、省略はできません。
引数xの制約
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| x | 必須 | フィッシャー変換する数値。-1 < x < 1 の範囲で指定 |
xには-1より大きく1より小さい数値を指定します。相関係数を入れるケースが最も一般的です。
-1や1ちょうどを指定すると#NUM!エラーになるので注意してください。
内部の計算式
内部的には、次の数式で計算されています。
z = 0.5 × ln((1 + x) / (1 - x))
これはATANH関数(逆双曲線正接)と同じ計算です。数学的には arctanh(x) と呼ばれる関数ですね。
FISHER関数の入力値と戻り値の対応表
相関係数rを入れたときの返り値を一覧で確認しましょう。
| 相関係数 r | 数式 | z値(返り値) |
|---|---|---|
| 0 | =FISHER(0) | 0.0000 |
| 0.3 | =FISHER(0.3) | 0.3095 |
| 0.5 | =FISHER(0.5) | 0.5493 |
| 0.7 | =FISHER(0.7) | 0.8673 |
| 0.75 | =FISHER(0.75) | 0.9730 |
| 0.9 | =FISHER(0.9) | 1.4722 |
rが0に近い範囲ではrとz値の差はわずかです。一方、rが1に近づくほどz値は急激に大きくなります。
z値は理論上 -∞ から +∞ の範囲を取ります。相関係数rのように分布が歪む問題がなくなるため、統計処理に適しています。
この対応関係を把握しておくと、変換結果の妥当性をすぐに判断できますよ。
実務で使う:CORREL → FISHER → FISHERINV の連携フロー
FISHER関数は単体で使うより、他の関数と組み合わせるのが実務的です。ここでは相関係数の信頼区間を求める手順を紹介します。
手順1: CORREL関数で相関係数を算出
まずCORREL関数で2つのデータ列の相関係数を求めます。
=CORREL(A2:A31, B2:B31)
たとえば30件のデータから相関係数 r = 0.7 が得られたとしましょう。
手順2: FISHER関数でz値に変換
次にFISHER関数でz値に変換します。
=FISHER(C2)
C2にCORREL関数の結果(0.7)が入っていれば、z値は0.8673になります。
手順3: 標準誤差と信頼区間を計算
z値に変換した状態なら、標準誤差を次の式で求められます。
=1/SQRT(n-3)
n=30の場合、標準誤差は約0.1925です。95%信頼区間のz値は次のように求めます。
下限: =D2 - 1.96 * E2
上限: =D2 + 1.96 * E2
D2がz値、E2が標準誤差です。1.96は95%信頼区間で使う標準正規分布の値ですよ。
手順4: FISHERINV関数で逆変換
最後にFISHERINV関数で、z値を元の相関係数のスケールに戻します。
=FISHERINV(F2)
FISHERINV関数はFISHER関数の逆関数です。z値を渡すと、元の-1から1の範囲に戻してくれます。
連携フローのまとめ
この一連の流れをまとめると次のようになります。
| 手順 | 関数 | 内容 | 結果の例 |
|---|---|---|---|
| 1 | CORREL | 相関係数を算出 | r = 0.7 |
| 2 | FISHER | z値に変換 | z = 0.8673 |
| 3 | 計算 | 信頼区間(z値) | 0.4901〜1.2445 |
| 4 | FISHERINV | 元のスケールに逆変換 | 0.4543〜0.8467 |
「相関係数0.7の95%信頼区間は約0.45〜0.85」と示せます。この手順を覚えておくと、分析の説得力が上がりますよ。
応用:2つの相関係数を比較する方法
FISHER関数のもう一つの活用場面が、2つの相関係数に統計的な差があるかを調べる比較です。
たとえば「営業部のデータでは r=0.8、マーケ部のデータでは r=0.5 だった。この差は偶然なのか?」という場面で使います。
比較の手順
まず、それぞれの相関係数をFISHER関数でz値に変換します。
=FISHER(0.8) → 1.0986
=FISHER(0.5) → 0.5493
次に、2つのz値の差を検定統計量として計算します。
=(z1 - z2) / SQRT(1/(n1-3) + 1/(n2-3))
n1とn2はそれぞれのサンプルサイズです。たとえば両方とも30件なら次のようになります。
=(1.0986 - 0.5493) / SQRT(1/27 + 1/27)
結果は約2.017です。この値の絶対値が1.96以上なら、95%の信頼水準で「差がある」と判断できます。
この例では2.017 > 1.96なので、営業部とマーケ部の相関係数の差は統計的に有意といえますね。
よくあるエラーと対処法
FISHER関数で発生するエラーは2種類です。
#NUM!エラー
xに-1以下または1以上の値を指定すると発生します。
=FISHER(1) → #NUM!エラー
=FISHER(-1) → #NUM!エラー
=FISHER(1.5) → #NUM!エラー
FISHER関数の定義域は「-1より大きく1より小さい」です。境界値の-1と1自体は含まれません。
CORREL関数の結果が ±1 ちょうどになるのは完全な直線関係のときだけです。通常のデータなら発生しにくいですよ。ただし、データ件数が2〜3件と極端に少ないと起こりえます。
対処法としては、IF関数で事前にチェックする方法があります。
=IF(ABS(C2)>=1, "範囲外", FISHER(C2))
#VALUE!エラー
xに文字列など数値以外を指定すると発生します。
=FISHER("abc") → #VALUE!エラー
=FISHER(A1) → A1に文字列が入っていれば #VALUE!エラー
セル参照で指定する場合は、参照先に数値が入っているか事前に確認してください。
エラーの種類や対処の詳細はエラー値まとめの記事も参考にしてみてくださいね。
まとめ
この記事では、ExcelのFISHER関数の使い方を解説しました。
- FISHER関数は相関係数をz値にフィッシャー変換する関数
- 引数xは -1 < x < 1 の範囲で指定する
- 変換後のz値は正規分布に近づくため、統計的な比較や検定に使える
- 実務ではCORREL関数 → FISHER → FISHERINV関数の流れで信頼区間を求める
- 2つの相関係数に差があるかの検定にも活用できる
関連する関数としてPEARSON関数やRSQ関数もあわせて確認してみてください。
そのほかのExcel関数はExcel関数一覧から探せます。目的に合った関数を見つけて、業務効率化に役立ててみてくださいね。
