「少人数のデータで信頼区間を求めたいけど、t値ってどうやって出すんだろう?」。統計の教科書を開くとt分布表が載っていますが、毎回表を探すのは面倒ですよね。
スプレッドシートならT.INV関数を使えば、確率と自由度を指定するだけでt値を一発で求められます。この記事ではGoogleスプレッドシートでのT.INV関数の使い方を、基本構文から実務活用まで解説します。T.DISTとの関係やTINV(旧関数)との違いもあわせて紹介しますよ。
スプレッドシートのT.INV関数とは
T.INV関数(読み方: ティー・インバース関数)は、t分布の逆関数です。確率を指定すると、その確率に対応するt値を返してくれます。「T」はt分布の「t」、「INV」は「Inverse(逆)」の略です。
たとえば「自由度9のt分布で、左側95%に対応するt値はいくつか」を1つの数式で求められます。
T.INV関数にできることをまとめると、次のとおりです。
- 確率(左側累積確率)からt値を逆算する
- 信頼区間の計算に必要なt値を求める
- 片側t検定の棄却値(臨界値)を算出する
- t分布表を引く手間をなくす
NOTE
T.INV関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。
基本構文と2つの引数
=T.INV(確率, 自由度)
カッコの中に2つの引数を指定します。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 確率(probability) | 必須 | t分布の左側累積確率。0より大きく1より小さい値 |
| 自由度(degrees_freedom) | 必須 | 自由度。サンプルサイズ – 1 が基本(1以上の正の整数) |
TIP
自由度(じゆうど)とは、データから自由に値を決められる個数のことです。サンプルサイズから1を引いた値で、たとえばサンプル10個なら自由度は9になります。小数を渡した場合は整数部分だけが使われますよ。
TINV(旧関数名)との違いに注意
GoogleスプレッドシートにはTINVという関数もあります。ただし、TINVは両側確率を引数に取る点がT.INVと大きく異なります。
=T.INV(0.975, 10) → 約2.228(片側97.5%のt値)
=TINV(0.05, 10) → 約2.228(両側5%のt値)
=T.INV.2T(0.05, 10) → 約2.228(TINVと同じ結果)
T.INVは片側(左側累積確率)、TINVとT.INV.2Tは両側確率を指定します。名前が似ていますが動作が異なるので、混同しないように気をつけてくださいね。
新しく数式を書くときはT.INVまたはT.INV.2Tを使いましょう。
T.INV関数の基本的な使い方
まずはシンプルな例で動きを確認してみましょう。自由度10のt分布を使います。
=T.INV(0.5, 10)
結果は0です。確率0.5(50%)を指定すると、ちょうど0が返ります。t分布は左右対称なので、中央値が0になるわけですね。
確率を変えて、いくつかの値を見てみましょう。
| 確率 | 数式 | 結果 | 意味 |
|---|---|---|---|
| 0.025 | =T.INV(0.025, 10) | 約-2.228 | 左側2.5%の境界 |
| 0.05 | =T.INV(0.05, 10) | 約-1.812 | 左側5%の境界 |
| 0.5 | =T.INV(0.5, 10) | 0 | ちょうど中央 |
| 0.95 | =T.INV(0.95, 10) | 約1.812 | 左側95%の境界 |
| 0.975 | =T.INV(0.975, 10) | 約2.228 | 左側97.5%の境界 |
確率が0.5より小さいと負の値、0.5より大きいと正の値が返ります。t分布が左右対称なので、0.05と0.95の結果は符号だけが違う(絶対値は同じ)ことにも注目してください。
T.INV関数の実務活用3パターン
基本がわかったところで、実際の業務で使えるパターンを3つ紹介します。
母平均の信頼区間を計算する
「サンプルデータから、母集団の平均がどのくらいの範囲に入るか」を求めるのが信頼区間です。サンプルが少ないときはt分布を使います。
売上データ10件の平均が500万円、標準偏差が80万円のケースで95%信頼区間を計算してみましょう。
=T.INV(0.975, 9)
結果は約2.262です。このt値を使って信頼区間を求めます。
標準誤差 = 標準偏差 / √サンプルサイズ = 80 / √10 ≒ 25.3
下限 = 500 - 2.262 × 25.3 ≒ 442.8(万円)
上限 = 500 + 2.262 × 25.3 ≒ 557.2(万円)
スプレッドシートで一気に計算するなら、次のように書けます。
=AVERAGE(B2:B11) - T.INV(0.975, COUNT(B2:B11)-1) * STDEV(B2:B11) / SQRT(COUNT(B2:B11))
=AVERAGE(B2:B11) + T.INV(0.975, COUNT(B2:B11)-1) * STDEV(B2:B11) / SQRT(COUNT(B2:B11))
AVERAGE関数で平均、STDEV関数で標準偏差、COUNT関数でサンプルサイズを自動取得しています。データが変わっても信頼区間が自動更新されるので便利ですよ。
片側t検定の棄却値を求める
「新しい施策の効果が、従来より本当に高いといえるか」を判定するのが片側t検定です。T.INV関数で棄却値(きゃっきゃくち)を求められます。
有意水準(ゆういすいじゅん)とは「偶然の結果を誤って有意と判定してしまう確率の上限」のことです。一般的には5%がよく使われます。
有意水準5%、サンプルサイズ15(自由度14)の場合です。
=T.INV(0.95, 14)
結果は約1.761です。計算したt統計量がこの値を超えていれば、「有意に高い」と判定できます。
たとえば、施策前の平均が100、施策後のサンプル15件の平均が112、標準偏差が20のとき、t統計量は次のように計算します。
t統計量 = (112 - 100) / (20 / √15) ≒ 2.324
t統計量2.324は棄却値1.761を超えているので、「施策の効果は統計的に有意」と判断できますよ。
両側検定の棄却値を求める
「平均に差があるかどうか(高いか低いかは問わない)」を判定するのが両側検定です。T.INV関数でも求められますが、T.INV.2Tを使うほうが直感的です。
有意水準5%、自由度20の場合を比べてみましょう。
=T.INV(0.975, 20) → 約2.086(T.INVで求める場合)
=T.INV.2T(0.05, 20) → 約2.086(T.INV.2Tで求める場合)
どちらも同じ結果です。T.INVでは「1 – 有意水準/2 = 0.975」を確率に指定し、T.INV.2Tでは有意水準0.05をそのまま指定します。
使い分けのポイントは次のとおりです。
- 片側検定 → T.INV(有意水準5%なら確率に0.95を指定)
- 両側検定 → T.INV.2T(有意水準をそのまま指定できるので直感的)
両側検定をT.INVで書くと確率の計算で混乱しやすいので、素直にT.INV.2Tを使うのがおすすめですよ。
T.DISTとの関係(順方向と逆方向)
T.INV関数は、T.DIST関数の逆関数です。2つの関数は「入力と出力が逆」の関係にあります。
| 関数 | 入力 | 出力 | 方向 |
|---|---|---|---|
| T.DIST | t値(x) | 確率(p) | t値 → 確率 |
| T.INV | 確率(p) | t値(x) | 確率 → t値 |
具体例で確認してみましょう。自由度10の場合です。
=T.DIST(1.812, 10, TRUE) → 約0.95(95%)
=T.INV(0.95, 10) → 約1.812
T.DISTに1.812を入れると確率0.95が返り、T.INVに0.95を入れると1.812が返ります。お互いの結果を入れ替えても元に戻るということですね。
使い分けのポイントは次のとおりです。
- 「t値2.5は上位何%?」 → T.DIST(t値がわかっていて確率を知りたい)
- 「上位5%のt値はいくつ?」 → T.INV(確率がわかっていてt値を知りたい)
両側の確率を求めたいときはT.DIST.2T関数、右側の確率だけ求めたいときはT.DIST.RT関数が便利です。正規分布ベースの逆関数が必要ならNORM.INV関数もチェックしてみてください。
T.INV関数でエラーが出るときの対処法
T.INV関数でよくあるエラーと、その対処法をまとめました。
確率に0以下や1以上を指定して#NUM!エラー
確率は「0より大きく1より小さい値」でなければなりません。0や1、負の数を指定すると#NUM!エラーになります。
=T.INV(0, 10) ← #NUM! エラー
=T.INV(1, 10) ← #NUM! エラー
=T.INV(-0.5, 10) ← #NUM! エラー
他のセルの計算結果を確率として渡すときは、値が0〜1の範囲内か確認しておきましょう。
自由度に0以下を指定して#NUM!エラー
自由度は1以上の正の整数が必要です。0やマイナスの値を指定するとエラーになります。
=T.INV(0.95, 0) ← #NUM! エラー
=T.INV(0.95, -5) ← #NUM! エラー
自由度は「サンプルサイズ – 1」で求めます。サンプルが1件しかないと自由度が0になりエラーになるので、最低でもサンプル2件以上が必要ですよ。
引数に文字列を渡して#VALUE!エラー
数値であるべき引数にテキストが入ると#VALUE!エラーになります。セル参照を使うときは、参照先が数値になっているか確認してくださいね。
まとめ
T.INV関数は、t分布で確率からt値を逆算する関数です。
- 2つの引数(確率・自由度)を指定するだけで使える
- 確率0.5を指定すると0が返る。t分布の中央がゼロであることを反映している
- 信頼区間の計算ではAVERAGE関数・STDEV関数・COUNT関数と組み合わせて活用する
- T.DIST関数の逆関数。「確率→t値」の方向で計算したいときに使う
- 片側検定にはT.INV、両側検定にはT.INV.2Tを使い分ける
- TINV(旧関数名)はT.INV.2T相当(両側)なので、T.INV(片側)とは結果が異なる点に注意
- 確率に0や1を指定すると
#NUM!エラー。範囲は0より大きく1より小さい値
t分布表を毎回引かなくても、T.INV関数ならスプレッドシート上で即座にt値を求められます。信頼区間やt検定の計算にぜひ活用してみてくださいね。
