感度と特異度の計算機
真陽性90、偽陰性10、真陰性80、偽陽性20なら、感度は90%、特異度は80%です。表の4つの件数を入力すると、両方の値を割合とパーセントで表示します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 真陽性
- 90
- 真陰性
- 80
- 偽陽性
- 20
- 偽陰性
- 10
- 実際の陽性数
- 100
- 実際の陰性数
- 100
- 感度
- 0.9
- 特異度
- 0.8
感度と特異度は、四つのセルからなる混同行列を、診断論文、検診メモ、二値分類器のレビューが実際に引用する二つの作動特性に変えます。感度(真陽性率、またはrecall)は、検査が捉える実陽性の割合です。真陽性を、真陽性と偽陰性の和で割ります。特異度(真陰性率)は、正しく未検出のまま残す実陰性の割合です。真陰性を、真陰性と偽陽性の和で割ります。この感度・特異度計算機は、それら四つの件数を受け取り、両率を単位区間の割合と百分率で返します。
2×2表で感度と特異度が測るもの
二値の検査または分類器は、観測を四つのセルに分けます。真陽性、真陰性、偽陽性、偽陰性です。感度は、そのうち一つの問いに答えます。
本当にその状態を持つ人、または陽性クラスに属する人のうち、規則はどれだけを旗立てたか。式は真陽性を、真陽性と偽陰性の和で割ったものです。捉えたか逃したかを問わず、すべての実陽性が分母に入ります。
特異度は相補の問いに答えます。本当にその状態を持たない人のうち、規則はどれだけを正しく未検出のまま残したか。その式は真陰性を、真陰性と偽陽性の和で割ったものです。
これらの恒等式は機械学習のスコアカードより古く、診断研究、検診事業、疫学の教科書の言葉であり、陽性的中率や陰性的中率とは同じではありません。的中率は同じ四つのセルに有病率を混ぜます。感度と特異度は混ぜません。
疾患がまれなとき、感度の高い検査でも陽性的中率は控えめで、偽陽性が少数の真の症例を圧倒します。逆に、特異度が高くても感度が低ければ多くの症例を逃します。このページは二つの率で止まります。
有病率は推定せず、尤度比も検査後確率も計算せず、表を一つのMatthews相関やF1得点に潰しません。それらは別の検索意図であり、別のページがあります。ここで得られるのは、すでに持っている四つの件数から出した一対の作動特性です。
単位区間の割合に加え、方法の節が二度目の換算なしにどちらの慣習でも引用できるよう、同じ数値を百分率でも返します。
入力契約、応答の形、拒否される件数
どのセルの負数も、絶対値として黙って取るのではなく拒否されます。表計算の書き出しで符号が反転しても、それらしい感度にはなりません。単一セルの0は許されるので、偽陽性のない完全な検診は妥当な表です。
許されないのは分母の0です。真陽性と偽陰性の和が0なら実陽性がなく感度は未定義、真陰性と偽陽性の和が0なら実陰性がなく特異度は未定義です。それらの場合はNaNを返すのではなく失敗します。
古典的な確認:真陽性90、偽陰性10、真陰性80、偽陽性20では感度 0.9、特異度 0.8 です。検証の失敗は課金されません。無料のブラウザ用具は同じ同型の solve 関数を実行するため、手元で通る例は本番の算術と正確に一致します。
感度と特異度の計算機が役立つ場面
診断法の授業では、感度と特異度の計算機を使い、公表された2×2表を二つの率に直し、的中率と取り違えないようにします。検診事業のメモや抄読会では、検証コホートの両方の作動特性(マンモグラフィ、トロポニン、迅速抗原、新しいPCR)を引用することが多く、小さな parse 端点を呼べば四つの整数のために統計パッケージ一式を引き込む必要がありません。
感度と特異度を入力として取る検査後確率のページ、事前確率も欲するベイズの定理のページ、同じ四つのセルを一つの係数に潰すMatthews相関のページと混同しないでください。ここでの検索意図は、二つの率そのものです。
要求は小さく保ち、丸めた割合を試験に固定すれば、宿題、LMS の拡張、縁のワーカー向けに再現可能な感度と特異度が得られ、自ら記号計算基盤を立てる必要はありません。常に非負の件数を送り、実陽性または実陰性が0の行や列は、黙って100パーセントと主張するのではなく契約エラーとして扱ってください。
活用例
検証コホートの診断2×2表
公表された真陽性・真陰性・偽陽性・偽陰性の件数を、方法の節や抄読会向けの感度と特異度に直します。
授業とLMSの自動採点
負の件数を拒否し、分母が0のときに率を捏造しない決定的な判定器で、混同行列の設問を採点します。
よくある質問
感度と特異度はどう計算しますか?
感度は TP / (TP + FN) で、真陽性率または recall です。特異度は TN / (TN + FP) で、真陰性率です。どちらも [0, 1] の割合と百分率で返されます。
件数が負の数だとどうなりますか?
件数は有限の非負でなければならず、絶対値としては取られません。
セルが0でもよいですか?
はい。 単一の0セルは妥当な表です。たとえば偽陽性のない検査です。感度が拒否されるのは TP + FN が0のときだけ、特異度が拒否されるのは TN + FP が0のときだけで、そのとき率は未定義です。
検査後確率やPPVと何が違いますか?
この用具は四つのセル件数から二つの作動特性を計算します。検査後確率と陽性的中率は、有病率(または検査前の見込み)をそれらのセルに混ぜ、結果を観測したあとの別の問いに答えます。
尤度比やF1スコアも計算できますか?
いいえ。このツールは感度と特異度の2つで止まります。有病率の推定、尤度比、検査後確率、F1スコアなど1つにまとめた指標は計算しません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/sensitivity-and-specificity \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"true_positives":90,"true_negatives":80,"false_positives":20,"false_negatives":10}'const res = await fetch("https://api.kit.forhosting.com/stat/sensitivity-and-specificity", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"true_positives": 90,
"true_negatives": 80,
"false_positives": 20,
"false_negatives": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/sensitivity-and-specificity",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"true_positives": 90,
"true_negatives": 80,
"false_positives": 20,
"false_negatives": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/sensitivity-and-specificity", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"true_positives":90,"true_negatives":80,"false_positives":20,"false_negatives":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"true_positives":90,"true_negatives":80,"false_positives":20,"false_negatives":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/sensitivity-and-specificity", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"true_positives": 90,
"true_negatives": 80,
"false_positives": 20,
"false_negatives": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.sensitivity_and_specificity",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
負の件数は無意味な比に折り込まれず、invalid_inputで拒否されます。成功したAPI呼び出しは$0.002です。
入力契約、応答の形、拒否される件数
必須の4フィールドを持つJSON本体を送ってください。フィールド true_positives はTPセルで、別名 tp を受け付けます。フィールド true_negatives はTNセルで、別名 tn が対応します。フィールド false_positives はFPセルで、別名 fp は互換です。フィールド false_negatives はFNセルで、別名 fn を受け付けます。各件数はJSONの数値としても、小さな重み付き表向けの指数表記を含む整えた十進文字列としても届きます。欠落フィールド、空文字列、有限でない値は、フィールド名を示す invalid_input で失敗します。成功時、本体は四つの件数をエコーし、actual_positives と actual_negatives を報告し、安定した goldens のために12桁に丸めた sensitivity と specificity を返し、同じ率を0から100の sensitivity_percent と specificity_percent として含め、二つの恒等式を formula に再掲します。料金は成功した要求1件あたり定額の $0.002、単位は item です。
感度と特異度の計算機が役立つ場面
学習支援の場と試験生成器には、負のセルを invalid_input と判定し、どの件数表にも実現できない比を捏造しない決定的な判定器が必要です。実装は parse のレベル A のため、成功した呼び出しは毎回公表の $0.002 であり、モデルのトークンも外向きの通信もありません。
連携の活用例
二値分類器のレビュー
既知の混同行列から recall と真陰性率の golden 固定値をピン留めし、リファクタが報告済みの作動特性を黙って変えないようにします。
技術的な質問
感度と特異度の計算機の料金はいくらですか。
ブラウザ用具は無料で、手元で動きます。API呼び出しは成功した要求1件あたり $0.002 のKIT前払い残高を使い、失敗した作業は課金されません。