スプレッドシートで「双曲線逆正接(逆ハイパボリックタンジェント)」を計算したいとき、どの関数を使えばいいか迷っていませんか?
TANH関数の逆を求めたいけど、書き方がわからないですよね。
そんなときに使うのがATANH関数です。=ATANH(値) と書くだけで、双曲線逆正接をかんたんに求められます。
この記事では基本の書き方から、TANH関数との逆関数の関係、LN関数を使った検算方法、フィッシャー変換への応用まで紹介します。
スプレッドシートのATANH関数とは?
ATANH関数(読み方: エータンエイチ、またはアークハイパボリックタンジェント関数)は、指定した値の双曲線逆正接を返す関数です。名前の「A」は「Arc(逆)」を意味します。
たとえば =ATANH(0.5) と入力すると「0.54930…」が返ります。これが0.5の双曲線逆正接の値です。
ATANH関数はTANH関数の逆関数にあたります。TANH(0.54930) が約0.5を返すので、ATANH(0.5) は約0.54930を返すわけです。
ATANH関数にできることをまとめると、次のとおりです。
- TANH関数の結果から元の値を逆算する
- LN関数と同じ計算結果を式で確認できる
- 統計学のフィッシャー変換(相関係数の変換)に使う
- -1から1の範囲の値を実数全体にマッピングする
NOTE
ATANH関数はGoogleスプレッドシートの全バージョンで使えます。Excelとも完全に互換性があるので、ファイルのやり取りでも安心です。
ATANH関数の書き方(構文と引数)
基本構文
=ATANH(値)
カッコの中に、双曲線逆正接を求めたい数値を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | 双曲線逆正接を求めたい実数値(-1より大きく1より小さい値) |
引数は1つだけです。ただし、-1から1の範囲(両端を含まない) に制限されるので注意してください。-1や1を渡すとエラーになります。
TIP
ASINH関数は引数に制限がなく、ACOSH関数は1以上の値を受け付けます。ATANH関数だけが「-1 < x < 1」という両側の制限を持っています。
ATANH関数の基本的な使い方
代表的な値でATANH関数の動きを確認してみましょう。
正の値を渡す
=ATANH(0.5)
結果は「0.54930…」です。
1に近い値も見てみます。
=ATANH(0.9)
結果は「1.47221…」です。1に近づくほど結果が急激に大きくなるのが特徴ですね。
0を渡す
=ATANH(0)
結果は「0」です。ATANH(0)=0 は覚えておくと便利です。
負の値を渡す
=ATANH(-0.5)
結果は「-0.54930…」です。ATANH(0.5)の符号を反転した値になっています。
これはATANH関数が「奇関数」だからです。ATANH(-x) = -ATANH(x) が常に成り立ちます。
まとめると
代表的な入力値と結果を一覧にまとめます。
| 数式 | 結果 | 備考 |
|---|---|---|
| =ATANH(0) | 0 | 原点は0 |
| =ATANH(0.25) | 0.25541… | 小さい値は入力に近い |
| =ATANH(0.5) | 0.54930… | 基本値 |
| =ATANH(0.9) | 1.47221… | 1に近づくと急増 |
| =ATANH(0.99) | 2.64665… | さらに急増 |
| =ATANH(-0.5) | -0.54930… | 奇関数(符号反転) |
| =ATANH(-0.9) | -1.47221… | 奇関数(符号反転) |
1に近づくほど結果が急激に大きくなり、-1に近づくほど急激に小さくなります。
セル参照を使う
もちろんセル参照も使えます。A1セルに数値が入っていれば、次のように書きます。
=ATANH(A1)
A列に複数の値を入れて、B列にATANH関数を並べれば一括計算もできますよ。
TANH関数との逆関数の関係
ATANH関数はTANH関数の逆関数です。つまり、次の関係が成り立ちます。
ATANH(TANH(x)) = x
TANH(ATANH(x)) = x (xが-1〜1の範囲のとき)
実際にスプレッドシートで確認してみましょう。
| 数式 | 結果 |
|---|---|
| =TANH(1) | 0.76159… |
| =ATANH(0.76159) | 1.00000… |
| =ATANH(TANH(1)) | 1 |
TANH(1)の結果をATANHに渡すと、元の「1」に戻ります。逆関数なので当然ですが、検算に便利ですよ。
ATANH関数の数学的な仕組み
定義式とLN関数での検算
ATANH関数は数学的に次のように定義されています。
ATANH(x) = (1/2) × LN((1+x) / (1-x))
ここでLNは自然対数(ネイピア数eを底とする対数)です。スプレッドシートではLN関数を使って同じ計算ができます。
=0.5*LN((1+A1)/(1-A1))
この式とATANH(A1)は同じ結果を返します。A1に「0.5」を入れて確認してみましょう。
| 数式 | 結果 |
|---|---|
| =ATANH(0.5) | 0.54930… |
| =0.5*LN((1+0.5)/(1-0.5)) | 0.54930… |
どちらも同じ値ですね。ATANH関数の結果が正しいか不安なときは、LN関数を使った式で検算できます。
TIP
LN関数は自然対数を返す関数です。定義式の分母 (1-x) から、x=1 のとき分母が0になってしまう理由がわかりますね。これがATANH関数の引数に1を渡せない理由です。
なぜ-1と1を引数に渡せないのか
定義式 (1/2) × LN((1+x)/(1-x)) を見ると理由がわかります。
- x=1 のとき: 分母が (1-1)=0 になり、ゼロで割ることになる
- x=-1 のとき: 分子の中身が (1+(-1))=0 になり、LN(0)=負の無限大
どちらも数学的に定義できないため、ATANH関数は-1と1を受け付けません。
実務での活用例
フィッシャー変換(相関係数の変換)
ATANH関数が実務で最も役立つのは、統計学のフィッシャー変換です。
相関係数(r)は-1から1の範囲に収まる値ですが、そのままでは統計的な検定や比較がしにくいという問題があります。フィッシャー変換を使うと、相関係数を正規分布に近い値(z)に変換できます。
フィッシャー変換の公式は次のとおりです。
z = ATANH(r)
実はATANH関数そのものがフィッシャー変換の計算式と同じなんです。
たとえば、2つの相関係数(r=0.7とr=0.8)の差が統計的に意味があるかを調べたいとき、まずATANH関数で変換します。
| 相関係数(r) | フィッシャー変換後(z = ATANH(r)) |
|---|---|
| 0.7 | 0.86730… |
| 0.8 | 1.09861… |
変換前の差は0.1ですが、変換後の差は約0.23です。変換後のz値を使えば、標準的な統計手法で差の検定ができますよ。
NOTE
Googleスプレッドシートには
FISHER関数がありますが、これはATANH関数と同じ計算を行います。=FISHER(0.7)と=ATANH(0.7)は同じ結果を返します。
TANH値から元の値を逆算する
TANH関数でスコアリングした結果から、元のデータに戻したい場面があります。
たとえば、TANH関数で-1から1にマッピングしたスコアがあるとします。ATANH関数を使えば元の値を逆算できます。
=ATANH(B1)
| スコア(B列) | 元の値(C列) | 検算 |
|---|---|---|
| 0.76159 | =ATANH(0.76159) → 1.00000 | TANH(1)=0.76159 |
| 0.96402 | =ATANH(0.96402) → 2.00000 | TANH(2)=0.96402 |
| -0.76159 | =ATANH(-0.76159) → -1.00000 | TANH(-1)=-0.76159 |
TANH関数の記事で紹介した正規化の逆変換ですね。元のデータを復元したいときに役立ちます。
よくあるエラーと対処法
ATANH関数でよくあるトラブルをまとめます。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #NUM! エラー | 引数が-1以下または1以上 | -1より大きく1より小さい値を指定する |
| #VALUE! エラー | 引数に文字列を渡した | 数値またはセル参照を指定する |
| ATAN関数と結果が違う | 関数を間違えている | ATANは逆正接(三角関数)、ATANHは双曲線逆正接。目的に合った方を使う |
-1または1を渡したとき
=ATANH(1)
結果は #NUM! エラーです。ATANH関数は-1と1を引数に取れません。
-1や1に近い値なら問題なく計算できます。
=ATANH(0.999)
結果は「3.80020…」です。1に限りなく近い値を渡すと、結果は非常に大きくなります。
範囲外の値を渡したとき
=ATANH(2)
結果は #NUM! エラーです。引数は-1から1の範囲(両端除く)でなければなりません。
文字列を渡したとき
=ATANH("abc")
結果は #VALUE! エラーです。引数には必ず数値を渡してください。セル参照の場合は、参照先が数値であることを確認しましょう。
ATAN関数と間違えたとき
ATAN関数とATANH関数は名前が似ていますが、まったく別の関数です。
=ATAN(0.5) → 0.46364...(逆正接。引数の制限なし)
=ATANH(0.5) → 0.54930...(双曲線逆正接。引数は-1〜1)
ATAN関数は三角関数の逆正接で、引数に制限がありません。一方、ATANH関数は双曲線関数の逆正接で、引数が-1から1の範囲に制限されます。目的に応じて使い分けてください。
似た関数との違い・使い分け
| 関数 | 動作 | 引数の範囲 | 用途 |
|---|---|---|---|
| ATANH | 双曲線逆正接を返す | -1 < x < 1 | TANH逆算・フィッシャー変換 |
| ASINH | 双曲線逆正弦を返す | 制限なし | SINH逆算・データ変換 |
| ACOSH | 双曲線逆余弦を返す | 1以上 | COSH逆算 |
| ATAN | 逆正接を返す | 制限なし | 三角関数の角度を求める |
| TANH | 双曲線正接を返す | 制限なし | 正規化・スコアリング |
| FISHER | フィッシャー変換を返す | -1 < x < 1 | ATANHと同じ計算 |
ASINH・ACOSH・ATANHは双曲線関数の逆関数の仲間です。引数の範囲がそれぞれ違う点に注意してください。
まとめ
ATANH関数は、指定した値の双曲線逆正接(逆ハイパボリックタンジェント)を返す関数です。
ポイントを整理します。
- 構文は
=ATANH(値)で、引数は-1から1の範囲(両端除く) - TANH関数の逆関数で、ATANH(TANH(x))=x が成り立つ
- 定義式は (1/2)×LN((1+x)/(1-x)) で、LN関数で検算できる
- 統計学のフィッシャー変換(=FISHER関数)と同じ計算
- -1や1を渡すと#NUM!エラーになるので注意
まずは =ATANH(0.5) で0.54930が返ることを確認してみてください。
