ExcelのFISHER関数の使い方|相関係数をz値に変換する方法

スポンサーリンク

「相関係数を求めたけど、この数値って統計的に意味があるの?」と疑問に思ったことはありませんか。相関係数のままでは平均や比較に使いにくいですよね。

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の範囲に戻してくれます。

連携フローのまとめ

この一連の流れをまとめると次のようになります。

手順関数内容結果の例
1CORREL相関係数を算出r = 0.7
2FISHERz値に変換z = 0.8673
3計算信頼区間(z値)0.4901〜1.2445
4FISHERINV元のスケールに逆変換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関数一覧から探せます。目的に合った関数を見つけて、業務効率化に役立ててみてくださいね。

タイトルとURLをコピーしました