「Excelで双曲線関数なんて使う場面あるの?」と感じるかもしれません。ただ、ATANH関数は統計分析のフィッシャー変換で活躍する関数で、相関係数を扱う場面では欠かせません。引数の範囲を知らずに使うと#NUM!エラーに悩まされることも多いです。
この記事では、ExcelのATANH関数の基本的な使い方を丁寧に解説します。定義式の検算、フィッシャー変換への応用、エラー対処法までカバーしますよ。
ExcelのATANH関数とは?双曲線逆正接の基本
ATANH関数は、双曲線正接(TANH)の逆関数にあたるExcelの数学関数です。
読み方は「アーク・タンジェント・ハイパーボリック」です。日本語では「逆双曲線正接」とも呼ばれます。
ひとことで言うと、「TANHで変換された値を、元に戻す」ための関数です。TANHが「入力→出力」の変換だとすると、ATANHは「出力→入力」へ逆算する役割を担います。
対応バージョンはExcel 2007以降、Microsoft 365、Web版です。
TANH関数との逆関数の関係
ATANHを理解するには、まずTANH関数との関係を押さえておきましょう。
TANH関数は双曲線正接(ハイパーボリック・タンジェント)を返す関数です。たとえば =TANH(1) と入力すると、約0.7616が返ります。
ATANH関数はこの逆の計算をします。=ATANH(0.761594156) と入力すると、元の値「1」が返ってきますよ。
ATANH(TANH(x)) = x が成り立つ逆関数の直感
逆関数の関係をひとことで表すと、次の等式になります。
ATANH(TANH(x)) = x
つまり、TANHで変換した結果をATANHに渡すと、必ず元の値に戻ります。「行って帰ってくる」イメージですね。
この性質は、あとで紹介する検算テーブルで実際に確認できます。
ATANH関数の構文・引数
構文: =ATANH(数値)
=ATANH(数値)
引数は「数値」のひとつだけです。とてもシンプルな構文ですね。
引数は -1 より大きく 1 より小さい実数のみ
| 引数 | 必須 | 説明 |
|---|---|---|
| 数値 | はい | 逆双曲線正接を求めたい値。-1 < x < 1 の範囲で指定 |
引数が -1 以下または 1 以上だと#NUM!エラーになります。-1 と 1 そのものも指定できません。
なぜこの範囲なのでしょうか。TANH関数の出力は常に -1 から 1 の間に収まります。ATANHはTANHの逆関数なので、TANHの出力範囲がそのままATANHの入力範囲になるわけです。
TANH→ATANHで逆算する基本的な使い方
ここでは、TANHの出力値をATANHで元に戻す「逆算テーブル」を作ってみましょう。
Excelで逆算テーブルを作る手順
次のようにセルを配置します。
| セル | 内容 | 数式 |
|---|---|---|
| A2 | 元の値 | 0.5 |
| B2 | TANHの結果 | =TANH(A2) |
| C2 | ATANHで逆算 | =ATANH(B2) |
A列に元の値を入力し、B列でTANH変換、C列でATANH逆算を行います。
代表的な値を入れた結果はこちらです。
| 元の値(x) | TANH(x) | ATANH(TANH(x)) |
|---|---|---|
| 0 | 0 | 0 |
| 0.5 | 0.462117157 | 0.5 |
| 1 | 0.761594156 | 1 |
| 2 | 0.964027580 | 2 |
| 3 | 0.995054754 | 3 |
ATANH(TANH(x))で元の値が戻ることを確認
表のC列を見ると、すべてA列の元の値と一致していますよね。
=ATANH(TANH(A2))
この数式をC列に入れるだけで、逆算が正しく機能していることを確認できます。TANHとATANHがペアの関係であることが一目でわかりますよ。
注目してほしいのは、TANHの出力が常に -1 から 1 の範囲に収まっている点です。元の値が3でも、TANHの結果は約0.995と1に近いものの1にはなりません。このおかげでATANHに渡しても#NUM!エラーは起きないわけです。
定義式 (1/2)*LN((1+x)/(1-x)) をExcelで再現して検算する
ATANH関数の数学的な定義式は次のとおりです。
ATANH(x) = (1/2) * LN((1+x)/(1-x))
この定義式をExcelのセル式で再現すると、ATANH関数の結果と一致するか検算できます。
定義式のセル式への書き換え
定義式をExcelの関数で書き換えると、次のようになります。
=0.5*LN((1+A2)/(1-A2))
LN関数は自然対数を返す関数です。
ちょっとむずかしく見えますが、やっていることはシンプルです。「1+xを1-xで割って、その自然対数を取り、2で割る」だけですよ。
ATANH関数の結果と完全一致を確認
実際にATANH関数の結果と比較してみましょう。
| 数値(x) | =ATANH(x) | =0.5*LN((1+x)/(1-x)) | 一致 |
|---|---|---|---|
| 0 | 0 | 0 | Yes |
| 0.3 | 0.309519604 | 0.309519604 | Yes |
| 0.5 | 0.549306144 | 0.549306144 | Yes |
| 0.9 | 1.472219489 | 1.472219489 | Yes |
すべての値で完全に一致していますね。ATANH関数は内部でこの定義式と同じ計算を行っています。
定義式を知っておくと、ATANH関数が使えない古い環境でも同じ計算ができるので覚えておくと便利です。
実践活用例:フィッシャー変換で相関係数を統計処理する
ここからは少し実践的な使い方を紹介します。ATANH関数が実務で最も活躍する場面が、フィッシャー変換(Fisher’s z-transformation)です。
フィッシャー変換とは
フィッシャー変換とは、相関係数rを正規分布に近い値に変換する統計手法のことです。相関係数は -1 から 1 の範囲に制限されるため、そのまま平均を取ったり信頼区間を求めたりすると偏りが生じます。
フィッシャー変換の数式は次のとおりです。
z = ATANH(r)
実はATANH関数そのものがフィッシャー変換の計算式です。ExcelにはFISHER関数もありますが、ATANH関数と同じ結果を返します。
相関係数をフィッシャー変換するセル式
たとえば、2つのデータセットの相関係数が0.85だったとします。この値をフィッシャー変換するには、次の数式を入力します。
=ATANH(0.85)
結果: 1.256159693
変換後のz値は正規分布に従うため、標準的な統計検定が使えるようになります。
複数の相関係数の平均を求めたい場合の手順を表にまとめました。
| データセット | 相関係数(r) | z=ATANH(r) |
|---|---|---|
| A | 0.70 | 0.867300528 |
| B | 0.85 | 1.256159693 |
| C | 0.60 | 0.693147181 |
| 平均 | — | 0.938869134 |
| 逆変換 TANH(z平均) | 0.735 | — |
z値の平均をTANH関数で逆変換すると、相関係数の適切な平均値が得られます。単純に相関係数を平均するよりも統計的に正確な値になりますよ。
なぜ単純平均ではだめなのか
相関係数は -1 と 1 に近づくほど分布が歪みます。たとえば0.9と0.95の差は、0.1と0.15の差よりもずっと大きな意味を持ちます。フィッシャー変換で正規分布に近づけてから平均を取ることで、この歪みを補正できるわけです。
よくあるエラーと対処法
ATANH関数で発生しやすいエラーは2種類です。
#NUM!エラー
原因: 引数に -1 以下または 1 以上の値を指定した場合に発生します。
=ATANH(1) → #NUM!エラー
=ATANH(-1) → #NUM!エラー
=ATANH(1.5) → #NUM!エラー
対処法: 引数が -1 より大きく 1 より小さいことを事前にチェックしましょう。IF関数と組み合わせると安全です。
=IF(AND(A2>-1, A2<1), ATANH(A2), "範囲外の値です")
この数式なら、A2が範囲外のときはメッセージを表示してエラーを回避できますよ。
#VALUE!エラー
原因: 引数に文字列など、数値として認識できないデータを指定した場合に発生します。
=ATANH("abc") → #VALUE!エラー
対処法: 引数のセルに数値が入っているか確認してください。ISNUMBER関数で事前チェックもできます。
ATAN関数との混同に注意
ATAN関数とATANH関数は名前が似ていますが、まったく別の関数です。
ATAN関数は逆正接(アークタンジェント)で、三角関数の仲間です。引数にすべての実数を指定でき、戻り値はラジアン(角度)です。一方、ATANH関数は双曲線関数の仲間で、引数は -1 から 1 の範囲に制限されます。
入力をまちがえて=ATAN(0.5)と書いても#NUM!エラーにはなりませんが、期待と異なる結果が返ってきます。関数名をよく確認してくださいね。
似た関数との違い・使い分け(比較表)
ATANH関数と混同しやすい関数を比較表にまとめました。
| 関数 | 分類 | 引数の範囲 | 戻り値の範囲 | 用途 | ||
|---|---|---|---|---|---|---|
| ATANH | 逆双曲線関数 | -1 < x < 1 | すべての実数 | TANHの逆算・フィッシャー変換 | ||
| ATAN | 逆三角関数 | すべての実数 | -π/2〜π/2(ラジアン) | 角度の逆算 | ||
| TANH | 双曲線関数 | すべての実数 | -1 < y < 1 | 双曲線正接の計算 | ||
| ACOSH | 逆双曲線関数 | 1以上 | 0以上の実数 | COSHの逆算 | ||
| ACOTH | 逆双曲線関数 | x | > 1 | 0を除く実数 | COTHの逆算 |
ポイントは引数の範囲の違いです。ATANHは「-1から1の間(両端含まず)」、ATANは「すべての実数」と制約が大きく異なります。
逆双曲線関数のファミリーとしては、ACOSH・ASINH・ATANH・ACOTHの4つがあります。それぞれCOSH・SINH・TANH・COTHの逆算に対応しているので、セットで覚えておくと迷いにくいですよ。
まとめ
ExcelのATANH関数について解説しました。要点を振り返りましょう。
- ATANH関数はTANH関数の逆関数で、
=ATANH(数値)と書く - 引数は -1 より大きく 1 より小さい実数のみ。範囲外だと
#NUM!エラーになる - 定義式は
(1/2)*LN((1+x)/(1-x))で、Excelで再現して検算できる - フィッシャー変換(相関係数の統計処理)に直接使える実用的な関数
- ATAN関数とは名前が似ているだけで、引数の範囲も用途もまったく異なる
双曲線関数ファミリーの他の関数もあわせてチェックすると、理解が深まりますよ。
Googleスプレッドシートでも同じATANH関数が使えます。スプレッドシート版の解説はこちらの記事を参考にしてください。
