「ExcelのシートにZTEST関数があるけど、スプレッドシートでも動くの?」。Excel時代のファイルを開いたときに気になる方は多いはずです。
結論からいえば、スプレッドシートでもZTEST関数はそのまま使えます。ただし互換性のために残されている旧関数で、新規に数式を組むならZ.TEST関数への切り替えがおすすめですよ。返ってくるのはz検定の右片側P値だけなので、両側検定をしたいときはひと工夫が必要です。
この記事ではZTEST関数の書き方から使い方、Z.TESTとの違いやエラー対処法まで解説します。
スプレッドシートのZTEST関数とは
ZTEST関数(読み方: ゼットテスト関数)は、1標本のz検定の右片側P値を返す関数です。標本データと仮説の母平均を指定すると、「標本平均がその仮説値より偶然大きくなる確率」をP値として返してくれます。
z検定(ゼットけんてい:母集団が正規分布に従うと仮定したうえで母平均を検証する検定)は、「母集団の平均がある特定の値といえるか」を調べたいときに使う基本的な統計手法です。品質検査やA/Bテスト、アンケート集計で役立ちますよ。
もともとExcelの初期バージョンから搭載されていた関数で、Excel 2010以降に登場したZ.TEST関数の前身にあたります。Googleスプレッドシートでも動作しますが、公式には「互換関数」という位置づけです。
ZTEST関数にできることを整理すると、次のとおりです。
- 標本平均が仮説値からずれていないかをP値で判定する
- 製品の平均重量が仕様値どおりかをチェックする
- A/Bテストで平均値の差が偶然かどうかを数値化する
- Excelから移行した既存シートのZTEST数式をそのまま動かす
NOTE
ZTEST関数はGoogleスプレッドシートの全バージョンで使えます。戻り値はZ.TEST関数とまったく同じです。
Z.TESTの互換関数である理由
Excel 2010で統計関数が刷新されました。ZTEST関数はドット付きのZ.TESTに置き換えられています。Googleスプレッドシートも同じ方針を採用しています。
互換関数は「古いシートが壊れないように残してある関数」です。新旧で結果はまったく同じですが、Googleの公式ヘルプではZ.TESTの使用を推奨しています。
ZTEST関数の書き方(構文と引数)
基本構文と引数
=ZTEST(データ, 値, [標準偏差])
カッコの中に最大3つの引数を指定します。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| データ | 必須 | 検定対象の標本データ範囲(例: A2:A11) |
| 値 | 必須 | 検定する仮説の母平均(例: 500) |
| 標準偏差 | 任意 | 母集団の標準偏差。省略すると標本の標準偏差(STDEV関数と同じ値)が使われる |
TTEST関数のようにtailsやtypeを指定する必要はありません。データ範囲と仮説値を渡すだけで検定が完了します。
範囲内の文字列や空白セルは自動で無視されます。
ZTEST関数が内部で行っている計算
ZTEST関数は、渡されたデータから次の計算を自動で行います。
- 標本平均
AVERAGE(データ)と仮説値の差を求める - z 値を計算する:
z = (AVERAGE(データ) - 値) / (σ / SQRT(COUNT(データ))) - z 値から標準正規分布の右片側確率(P値)を返す
TIP
ZTEST関数は「右片側」のP値だけを返します。標本平均 > 仮説値 のときはP値が0.5より小さくなり、標本平均 < 仮説値 のときはP値が0.5より大きくなります。両側検定のP値が欲しい場合は、後述の変換式を使いましょう。
ZTEST関数の基本的な使い方
ある工場で、製品の重量(規格値500g)を抜き取り検査したケースで考えてみましょう。母集団の標準偏差は過去の履歴から2gと分かっているとします。
| A列(重量・g) | |
|---|---|
| 2行目 | 498 |
| 3行目 | 503 |
| 4行目 | 501 |
| 5行目 | 497 |
| 6行目 | 502 |
| 7行目 | 499 |
| 8行目 | 504 |
| 9行目 | 500 |
8個のサンプルの平均は500.5gで、規格値500gから少しずれています。この差が偶然のばらつきか、工程に問題があるのかをz検定で確かめます。
空いているセル(例: C2)に次の数式を入力します。
=ZTEST(A2:A9, 500, 2)
- A2:A9: 標本データ
- 500: 検定したい仮説値(規格値)
- 2: 母集団の標準偏差(既知)
Enterキーを押すと約 0.240 が返ります。この値が「標本平均が偶然500.5以上になる確率」、つまり右片側P値です。
有意水準5%(0.05)と比べてみましょう。0.240 は0.05より大きいですね。「規格値からずれているとはいえない(帰無仮説を棄却できない)」と判断できます。
標準偏差を省略した場合
第3引数を省略すると、スプレッドシートは標本から標準偏差を計算して使います(STDEV関数と同じ計算です)。
=ZTEST(A2:A9, 500)
母集団の標準偏差がわからない場合の簡易版として便利です。ただし厳密な z 検定は σ が既知の前提なので、σ が未知のときはT.TEST関数を使うほうが適切ですよ。
P値の判断基準
| P値の範囲 | 判断 | 意味 |
|---|---|---|
| P < 0.01 | 高度に有意 | 99%の信頼水準で仮説値と差がある |
| P < 0.05 | 有意 | 95%の信頼水準で仮説値と差がある |
| P >= 0.05 | 有意差なし | 仮説値と差があるとはいえない |
両側検定のP値を求めたいとき
ZTEST関数が返すのは右片側のP値だけです。実務の仮説検定では「仮説値と差がある(大きい/小さいを問わない)」を調べたい場面のほうが多いので、両側P値への変換が必要になります。
両側P値への変換式
次の変換式を使えば両側P値が一発で求まります。
=2*MIN(ZTEST(A2:A9, 500, 2), 1 - ZTEST(A2:A9, 500, 2))
先ほどの例(ZTEST=0.240)で計算すると 2 MIN(0.240, 0.760) = 2 0.240 = 0.480 となり、両側P値は約 0.480 です。
TIP
MIN(ZTEST, 1-ZTEST)は「小さいほうのP値」を取る工夫です。標本平均が仮説値より大きいときも小さいときも、正しく片側確率を拾えます。
変換の考え方
- 標本平均 > 仮説値 の場合: ZTEST の値がそのまま右片側P値
- 標本平均 < 仮説値 の場合:
1 – ZTESTが実際に使いたい片側P値(左側) - どちらの場合も、小さいほうを取って2倍すれば両側P値
1つの数式で両方のケースに対応できます。標本平均が仮説値の上下どちらにくるかを事前に気にする必要はありませんよ。
ZTESTとZ.TESTの違い
ZTEST関数とZ.TEST関数の違いを一覧にまとめます。
| 比較項目 | ZTEST(旧) | Z.TEST(新) |
|---|---|---|
| 構文 | =ZTEST(データ,値,[σ]) | =Z.TEST(データ,値,[σ]) |
| 引数の数 | 2〜3個 | 2〜3個(同じ) |
| 戻り値 | 右片側P値 | 右片側P値(同じ) |
| 位置づけ | 互換関数(旧) | 推奨関数(新) |
| Excel対応 | 全バージョン | 2010以降 |
結論として機能はまったく同じです。引数も結果も一致します。違いは名前だけです。
=ZTEST(A2:A9, 500, 2)
=Z.TEST(A2:A9, 500, 2)
この2つの数式はまったく同じ値を返します。
ZTEST関数を使う場面があるとすれば、古いExcelファイル(.xls形式)を受け取った場合です。ファイル内の既存数式に合わせてそのまま使えばよいでしょう。新しく数式を書くときはZ.TEST関数を使ってみてください。
TIP
既存シートのZTEST数式を移行するのは簡単です。「検索と置換」(Ctrl + H)で
ZTEST(をZ.TEST(に一括置換するだけでOKですよ。引数の順番も個数も変わりません。
互換関数シリーズの位置づけ
スプレッドシートには、ZTEST と同じように「ドットなしの旧名」が残っている検定関数がいくつかあります。
- スプレッドシートのFTEST関数: F検定(等分散の検定)の互換関数
- スプレッドシートのTTEST関数: t検定の互換関数
- スプレッドシートのCHITEST関数: カイ二乗検定の互換関数
どれも「新しいドット付き関数が推奨される」という共通ルールがあります。シリーズとして覚えておくと便利ですよ。
よくあるエラーと対処法
ZTEST関数で出やすいエラーを紹介します。
#N/A エラー
データが1件以下のときや、第3引数を省略してデータの標準偏差が0になる(全データが同じ値の)ときに発生します。標本サイズを増やすか、データのばらつきを確認してみてください。
#DIV/0! エラー
第3引数に 0 を直接指定したとき、またはデータのばらつきが0のときに発生します。標準偏差はプラスの値でなければならないため、母集団の正しい σ を確認しましょう。
#NUM! エラー
第3引数(標準偏差)にマイナスの値を指定すると発生します。標準偏差は必ず0より大きい値で指定してください。
#VALUE! エラー
引数に数値以外(文字列など)が直接入力されている場合に発生します。セル参照ではなく引数そのものに文字列を渡していないか確認しましょう。
結果がおかしいと感じたら
エラーは出ないのに期待と違う結果になるケースもあります。
- P値が0.5を超えている: 標本平均が仮説値より小さいケースです。両側P値を求めたいなら、前述の変換式
2*MIN(ZTEST, 1-ZTEST)を使いましょう - 母集団の標準偏差が既知か要確認: 厳密なz検定はσが既知の前提です。わからない場合はT.TEST関数のほうが適切です
- サンプル数が少なすぎないか: データが少ないとz検定の信頼性が下がります。最低でも30件以上あるほうが安心です
まとめ
ZTEST関数は、1標本のz検定の右片側P値を返す互換関数です。要点を整理しておきましょう。
- ZTEST(データ, 値, [σ]) でz検定の右片側P値を返す
- 標準偏差を省略すると標本の標準偏差(STDEV)が使われる
- 両側P値は
=2*MIN(ZTEST, 1-ZTEST)で求める - P値が0.05未満なら「有意差あり」、0.05以上なら「有意差なし」と判断する
- Z.TEST関数と引数・結果はまったく同じ
- 新規に数式を書くならドット付きのZ.TESTがおすすめ
- 既存シートの置き換えは
ZTEST(→Z.TEST(の一括置換でOK
Excelから移行したシートでZTEST関数を見かけたら、この記事を参考に読み解いてみてください。新しく作る数式ではZ.TEST関数を使ってみましょう。
