ExcelのFISHERINV関数の使い方|フィッシャー逆変換で相関係数に戻す

スポンサーリンク

相関分析でFISHER関数を使ったあと、「変換した値をどうやって元に戻すの?」と困ったことはありませんか?

フィッシャー変換後の数値は直感的に読みにくいですよね。レポートや論文に載せるには、元の相関係数のスケール(-1〜1)に戻す必要があります。そんなときに使うのがFISHERINV関数です。

この記事では、ExcelのFISHERINV関数の使い方を構文から実践例、信頼区間の計算、よくあるエラーやFAQまで丁寧に解説していきます。

ExcelのFISHERINV関数とは?

FISHERINV関数(読み方:フィッシャー・インバース)は、フィッシャー変換された値を元の数値に戻す関数です。関数名は「FISHER(フィッシャー変換)+ INV(Inverse、逆)」に由来します。

FISHER関数で変換した値を入力すると、変換前の相関係数が返ってきますよ。

数式で表すと、こんな関係になっています。

  • z = FISHER(r) のとき、FISHERINV(z) = r

たとえば相関係数 0.5 をFISHER関数で変換すると約 0.5493 になります。この 0.5493 をFISHERINV関数に渡すと、元の 0.5 に戻るというわけですね。

数学的にはFISHERINV関数の計算は「双曲線正接(ハイパボリック・タンジェント)」と同じです。ExcelのTANH関数でも同じ結果が得られますよ。

対応バージョンは Microsoft 365、Excel 2021/2019/2016(および Excel 2003 以降の旧バージョン)、Excel for the web、Googleスプレッドシートです。どの環境でも同じ構文で使えます。

なぜフィッシャー変換が必要なのか

相関係数 r は -1 から 1 までの範囲に収まっていますよね。この制約があるため、複数の相関係数を平均したり信頼区間を計算したりすると、統計的にゆがみが生じます。

特に r が ±1 に近い値ほど分布が偏るので、そのまま平均や差の検定をすると過小評価や過大評価につながりやすいんです。

フィッシャー変換は相関係数を実数全体(-∞〜+∞)に広げて、近似的に正規分布に従わせる役割を持っています。統計処理を終えたら、結果をFISHERINV関数で元のスケールに戻すという流れですね。

こんな場面で活躍します

FISHERINV関数は、次のような分析シーンで力を発揮します。

  • 複数の調査結果から得た相関係数を統合・平均したい
  • 相関係数の95%信頼区間を求めて、レポートに「幅」のある報告をしたい
  • 2グループ間で相関係数に差があるかを統計的に検定したい
  • メタ分析で複数研究の相関係数をまとめたい

ビジネスの現場でも、A/Bテストの結果や顧客満足度と売上の関係など、相関分析の精度を上げたい場面は意外と多いですよね。

FISHERINV関数の書き方(構文と引数)

基本構文

=FISHERINV(y)

引数は1つだけなので、とてもシンプルです。

引数の説明

引数必須/省略可説明
y必須フィッシャー変換された数値を指定します

引数「y」には、FISHER関数で変換された値を指定します。セル参照でも直接入力でもOKです。

FISHER関数の引数は -1 から 1 の範囲しか受け付けません。一方、FISHERINV関数のyにはどんな実数でも指定できます。ただし、結果は必ず -1 から 1 の間に収まりますよ。

つまりFISHERINV関数は、入力範囲が広く出力範囲が狭い関数というわけですね。

FISHERINV関数の基本的な使い方

実際にFISHERINV関数を使ってみましょう。

セル参照で指定する場合

セルA1に「0.549306」が入っているとします。

=FISHERINV(A1)

結果は 0.5 になります。FISHER(0.5) の結果を逆変換して元に戻した形ですね。

数値を直接入力する場合

=FISHERINV(1.098612)

結果は約 0.8 です。FISHER(0.8) = 1.098612 なので、正しく逆変換できていますね。

いくつかの入出力を確認してみましょう

入力値(y)FISHERINV(y)の結果意味
-1.098612-0.8強い負の相関
-0.549306-0.5中程度の負の相関
00相関なし
0.5493060.5中程度の正の相関
1.0986120.8強い正の相関
2.64670.99非常に強い正の相関

入力が0なら結果も0になります。正の値なら正、負の値なら負の相関係数が返ってきますよ。

入力値の絶対値が大きくなるほど、結果は ±1 に近づきますが、決して ±1 を超えることはありません。これは関数の数学的な性質によるもので、漸近的に ±1 に近づく形ですね。

FISHERINV関数の実践的な使い方

複数の相関係数の平均を求める

相関係数はそのまま平均を取ると統計的に正確ではありません。フィッシャー変換してから平均を取り、最後にFISHERINVで戻すのが正しい手順です。

たとえば、3つの調査で相関係数 0.6、0.7、0.8 が得られたとします。

手順:

  1. 各相関係数をFISHER関数で変換する
  • FISHER(0.6) = 0.6931
  • FISHER(0.7) = 0.8673
  • FISHER(0.8) = 1.0986
  1. 変換後の値の平均を計算する
  • (0.6931 + 0.8673 + 1.0986) / 3 = 0.8863
  1. FISHERINV関数で元のスケールに戻す
  • FISHERINV(0.8863) = 0.7097

単純平均だと 0.7 ですが、フィッシャー変換を経由した正確な平均は約 0.71 です。わずかな差ですが、統計的にはこちらが正しい値になりますよ。

Excelでの数式はこのように書きます。

=FISHERINV(AVERAGE(FISHER(B2),FISHER(B3),FISHER(B4)))

データが多い場合は、配列数式で一括処理できます。

=FISHERINV(AVERAGE(FISHER(B2:B10)))

Microsoft 365 や Excel 2021 以降ならスピル機能が効くので、Ctrl + Shift + Enter を押さなくてもそのまま入力するだけでOKです。旧バージョンの Excel 2019 以前を使っている場合は、配列数式として Ctrl + Shift + Enter で確定してくださいね。

CORREL関数と組み合わせて信頼区間を求める

相関係数の信頼区間を求めるときにも、FISHERINV関数が活躍します。手順は次のとおりです。

  1. CORREL関数で相関係数 r を求める
  2. FISHER関数で z 変換する
  3. z の信頼区間を計算する(標準誤差 = 1/SQRT(n-3))
  4. FISHERINV関数で上限・下限を元の相関係数に戻す

たとえば、30組のデータで相関係数が 0.7 の場合です。95%信頼区間の下限はこの式で求められます。

=FISHERINV(FISHER(0.7)-1.96/SQRT(30-3))

上限は「-1.96」を「+1.96」に変えるだけですよ。

=FISHERINV(FISHER(0.7)+1.96/SQRT(30-3))

計算結果は下限が約 0.453、上限が約 0.852 になります。「相関係数 0.7」と一点で報告するよりも「0.45〜0.85 の範囲に収まる」と区間で示すほうが、統計的により誠実なレポートになりますね。

99%信頼区間にしたい場合は、「1.96」を「2.576」に置き換えるだけでOKです。サンプルサイズが大きいほど、区間は狭くなって精度が上がります。

2つの相関係数の差を検定する

「Aグループの相関係数とBグループの相関係数に違いがあるのか?」を検定するときも、フィッシャー変換が必要です。

検定統計量は次の式で計算します。

=(FISHER(rA)-FISHER(rB))/SQRT(1/(nA-3)+1/(nB-3))

この値が ±1.96 を超えれば、95%水準で「2つの相関係数には有意な差がある」と判断できます。差そのものを相関係数のスケールで示したいときに、FISHERINV関数で戻すと直感的に理解しやすくなりますよ。

具体例で見てみましょう。Aグループ(n=50)の相関係数 rA=0.6、Bグループ(n=50)の相関係数 rB=0.4 のとき、

=(FISHER(0.6)-FISHER(0.4))/SQRT(1/(50-3)+1/(50-3))

の結果が約 1.21 になります。±1.96 を超えていないので、「統計的に有意な差はない」と判断できますね。

よくあるエラーと対処法

FISHERINV関数はシンプルなので、エラーが出る場面は限られています。

#VALUE! エラー

引数に数値以外(文字列や空白セル)を指定すると #VALUE! エラーが返ります。

対処法: 引数が数値であることを確認しましょう。セル参照を使う場合は、参照先をISNUMBER関数(数値かどうかを判定する関数)でチェックできます。

=IF(ISNUMBER(A1), FISHERINV(A1), "数値を入力してください")

もしくは、IFERROR関数で包んでエラー時の表示を制御するのもおすすめです。

=IFERROR(FISHERINV(A1), "入力エラー")

#NAME? エラー

関数名のスペルミスで発生します。「FISHERINV」を「FISHERINVERSE」のように書いていないか確認してみてください。

また、Excel のバージョンが極端に古い(Excel 2003 より前)場合に出るケースもまれにあります。Microsoft 365 や Excel 2021/2019/2016 では問題なく使えますよ。

結果が想定と違うとき

「FISHER関数を通していない生の相関係数をFISHERINV関数に渡してしまった」というケースも意外と多いです。

たとえば、相関係数 0.5 をそのままFISHERINVに渡すと、結果は約 0.4621 になります。これは数学的にはTANH(0.5)の値で、フィッシャー変換の逆変換としての意味は持ちません。

入力が「FISHER関数で変換された値」かどうか、もう一度確認してみてくださいね。

FISHER関数との違い・使い分け

FISHERINV関数とFISHER関数は、変換の方向が逆になるペア関数です。

項目FISHER関数FISHERINV関数
役割相関係数をZ変換するZ変換した値を元に戻す
入力範囲-1 より大きく 1 未満制限なし(任意の実数)
出力範囲制限なし(任意の実数)-1 から 1 の間
使うタイミング統計処理の前統計処理の後

セットで覚えておくと便利ですよ。

FISHER関数の詳しい使い方は「FISHER関数を使ってフィッシャーのZ変換をする」で解説しています。

また、TANH関数はFISHERINV関数と数学的に同じ結果を返します。どちらを使っても計算結果は同じですよ。意味的には統計分析の文脈ではFISHERINV、数学計算の文脈ではTANHを使うと、コードの意図が伝わりやすくなります。

相関係数そのものを求めるにはCORREL関数PEARSON関数を、決定係数を求めるにはRSQ関数を使うと、相関分析のワークフロー全体をExcel内で完結できます。

FISHERINV関数に関するFAQ

Q1. FISHERINV関数とTANH関数は何が違うの?

数学的にはまったく同じ結果を返します。FISHERINV(x) と TANH(x) は同じ値です。

違いは「意図」の部分です。統計分析でフィッシャー変換の逆変換を行う場合は FISHERINV を、純粋な数学計算で双曲線正接を求める場合は TANH を使うと、数式を読んだ人にコードの目的が伝わりやすくなりますよ。

Q2. FISHERINV関数で複数の相関係数の平均を求めるのと、単純平均の違いは?

サンプル数や相関係数の値によりますが、特に相関係数が ±1 に近い場合、両者の差は無視できないレベルになります。

たとえば 0.9 と 0.95 の単純平均は 0.925 ですが、フィッシャー変換経由の平均は約 0.929 になります。論文や学術的な分析ではフィッシャー変換経由が正しい手順とされているので、迷ったらこちらを使うと安心ですね。

Q3. Googleスプレッドシートでも同じように使える?

はい、まったく同じ構文 =FISHERINV(y) で使えます。FISHER関数やCORREL関数も同様にサポートされているので、Excelで作った相関分析シートをそのままGoogleスプレッドシートに持っていっても動作します。

ただしスピル機能の挙動など細かい部分でクセが異なる場合があるので、配列計算を多用するなら動作確認してから本番運用するのがおすすめです。

まとめ

FISHERINV関数のポイントをおさらいしましょう。

  • FISHERINV関数は、フィッシャー変換した値を元の相関係数に戻す関数
  • 構文は =FISHERINV(y) で、引数は1つだけ
  • 入力は任意の実数、出力は必ず -1 から 1 の範囲
  • FISHER関数とペアで使うのが基本
  • 複数の相関係数を平均するときは、FISHER → 平均 → FISHERINV の手順が正確
  • 信頼区間や2グループ間の検定にも活用できる
  • TANH関数と数学的に同じ結果が得られる
  • Microsoft 365、Excel 2021/2019/2016、Googleスプレッドシートで同じ構文が使える

統計分析で相関係数を扱う場面では、FISHER関数とセットで覚えておくと分析の幅が広がりますよ。

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