Zスコアからパーセンタイルへの計算
Zスコアは、観測値が平均から標準偏差何個分だけ上または下にあるかを示しますが、パーセンタイルのほうが直感的な場合があります。この計算機は、有限のZスコアを、その値以下にある標準正規分布の累積割合へ変換します。負の値、ゼロ、正の値を入力すると、小数点以下6桁に丸めた再現可能な結果が得られます。ブラウザーでの単発確認にも、APIによる反復処理にもご利用いただけます。
無料で実行
Zスコアを累積パーセンタイルとして読み取ります
標準正規分布は平均がゼロ、標準偏差が1の分布です。Zスコアは観測値をこの共通尺度上に位置付け、パーセンタイルはその地点以下に分布の何パーセントが含まれるかを示します。数値を入力すると、標準正規分布の累積分布関数が計算されます。Zスコアがゼロなら分布の中央なので50パーセンタイルです。正の値は中央より上、負の値は下になります。返される値は累積値であり、左端の裾から入力したスコアまでの曲線下面積をすべて含みます。これはZ表や統計ソフトで一般的な規約です。平均とスコアの間だけの割合ではなく、片側検定や両側検定のp値と常に同じでもありません。これらを区別することで、もっともらしい数値へ誤った統計的意味を与えることを防げます。
計算方法と精度を確認します
変換には標準正規確率変数の累積分布関数を使用します。内部ではスコアを2の平方根で割り、決定論的な誤差関数近似で評価した後、ゼロから1までの確率をゼロから100までの割合へ換算します。処理はすべてローカルで行われ、オンライン表の参照、無作為標本、現在時刻には依存しません。結果は小数点以下6桁に丸めるため、表示や自動比較で安定します。非常に大きな正負の値は自然に100またはゼロへ近づきます。ただし、丸めた結果が100やゼロでも、事象が確実または不可能だという証明にはなりません。正規分布の裾は無限に続き、有限の表示精度では極めて小さな確率を表せないためです。統計的証拠を判断するときは、実用的意味のない追加桁ではなく、モデルの前提をご確認ください。
適切な統計的状況で結果を使います
この変換が有効なのは、Zスコアが実際に標準正規尺度に属する場合だけです。元の観測値が適切な母平均と母標準偏差で標準化されている場合や、モデルが目的に十分近い正規分布に従う統計量を出す場合が該当します。変換後のパーセンタイルは簡潔な順位のように解釈でき、値が高いほど参照分布の多くがスコアより下にあります。ただし、任意の標本内での順位を示すものでも、元データの正規性を確認するものでも、分野固有の基準を置き換えるものでもありません。仮説検定では、上側、下側、両側のどの裾を対象にするかを先に決めてください。報告には元のZスコア、結果のパーセンタイル、参照分布を記載すると再現しやすくなります。自動処理では、欠損、文字列、無限大、非数値を拒否し、暗黙変換による誤解を招く統計を防いでください。
活用例
標準化された試験得点を解釈します
計算済みのZスコアを、標準正規参照分布の累積割合へ変換します。
統計モデルの出力を確認します
正規化された統計量を、報告書やダッシュボード向けの分かりやすい累積パーセンタイルにします。
手作業のZ表検索を置き換えます
印刷表の行と列を探さず、小数点以下6桁の再現可能な結果を取得します。
よくある質問
Zスコアがゼロの場合は何パーセンタイルですか?
ゼロは標準正規分布の平均かつ中央なので、50パーセンタイルです。
結果は平均とZスコアの間の面積ですか?
いいえ。左端の裾から入力したZスコアまでの累積面積全体です。
このパーセンタイルはp値と同じですか?
常に同じではありません。p値は仮説と、下側、上側、両側のどの検定を使うかで決まります。
極端な値がゼロや100になるのはなぜですか?
小数点以下6桁への丸めにより、理論上はゼロでない非常に小さな裾確率が表示されないことがあるためです。
どのような入力値を利用できますか?
z欄には有限の数値が必要です。欠損、数値形式の文字列、無限大、非数値は拒否されます。
APIリクエストの料金はいくらですか?
APIは1回$0.002です。ブラウザーの対話型計算機もご利用いただけます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/z-to-percentile \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"z":1.96}'const res = await fetch("https://api.kit.forhosting.com/stat/z-to-percentile", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"z": 1.96
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/z-to-percentile",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"z": 1.96
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/z-to-percentile", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"z":1.96}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"z":1.96}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/z-to-percentile", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"z": 1.96
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.z_to_percentile",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |