スイスチーズコロナ計算
防御の層を重ねたとき、まだすり抜ける感染リスクが分かります。70パーセントのマスク、50パーセント改善した換気、80パーセントのワクチンなら残りは3パーセントで、合計200パーセントの防御にはなりません。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
コロナウイルス対策のスイスチーズモデルは、感染対策の一つひとつを穴の開いたスライスとして扱います。マスク、外気、ろ過、距離、ワクチン、検査、隔離はいずれも、呼吸器ウイルスが人から人へ移る経路の一部を塞ぎますが、すべてを塞ぐことはありません。スライスを重ねると、ウイルス粒子は残った穴を順に抜けなければならず、残存する感染確率は、よく引用される有効率の合計ではなく、各層の漏れ割合の積になります。本計算機は各層の有効性を 0 から 100 までの百分率で受け取り、(100 マイナス有効性) を 100 で割った漏れに変換し、漏れを掛け合わせて、重ねたあとに残る複合感染リスクを返します。70 パーセントのマスク、50 パーセントの換気改善、80 パーセントのワクチン層は保護 200 パーセントにはなりません。残るのは 0.30 × 0.50 × 0.20 = 0.03、すなわち 3 パーセントの残差です。重ね合わせの比較、二枚目の不完全な層がなお意味を持つ理由の提示、0–100 の外にある百分率で黙って数値を捏造せず明確に失敗させる用途にご利用ください。
重ねた層が漏れを残存リスクへ掛け合わせる仕組み
コロナ禍で公衆衛生の説明図として広まった呼吸器ウイルス防御のスイスチーズは、一本の対策が無欠の壁ではないという率直な事実から始まります。マスクは縁から漏れ、フィルタは実際に通過した空気だけを清め、ワクチンは感染性も感受性もゼロにはせず、換気の悪い部屋を長く共有すれば距離も失敗します。したがって各層は、その層の失敗モードが穴になったスイスチーズのスライスです。
独立した N 層のあとになお起きる感染は、ウイルス粒子が第一層の穴と第二層の穴と残るすべてのスライスの穴を見つける事象です。既存の重ね合わせに 50 パーセントの層を足しても保護が五十ポイント増えるわけではなく、いまの残差が二分の一になります。
だから最初の層がすでに強く見えても二枚目の不完全な制御は意味を持ち、70 足す 50 足す 80 が 200 といった有効率の合計は確率ではありません。層が互いに独立に働くという前提のもと、層百分率の一覧を残存リスクへ変換します。
入力契約、応答の形、検証
空でない最大四十枚の防護スライスの配列です。各要素は有限数(有効性の百分率)か、必須の effectiveness と任意の name(mask、ventilation、vaccine など)を持つオブジェクトです。有効性はいずれも閉区間 0 から 100 の有限数でなければなりません。
ゼロはその層が何もしない(漏れ 1)、百は完全遮断としてモデル化(漏れ 0、スタック全体の残差 0)を意味します。裸の数値を送った場合、任意の名前は省略され、null としては返りません。
スイスチーズ型コロナ計算機が役立つ場面
産業保健と施設のチームは、予算を使う前に候補の重ね合わせを比べるためにスイスチーズ型コロナ計算機を使います。既存のマスクと距離の方針へ公称 50 パーセント有効の可搬 HEPA を足すことは、いまの残差の掛け算であり、新しい見出し用パーセントではありません。
学校やキャンパスの計画者は発生源対策、外気、ろ過、コホートといった公表された層推定を並べ、独立仮定のもとで 60 パーセントの制御が二つある方が 80 パーセント一つより強い理由(残差 0.16 対 0.20)を理事会に示せます。
個人のリスク手帳や解説記事には、誰かが有効性 110 パーセントと打ったときに黙って切り詰めて入力以上に強く見せるのではなく、数値の印刷を拒む決定的な神託が必要です。検証失敗は残高を消費しません。層リストを短く保ち、丸めた残差をテストに固定すれば、自ら疫学シミュレータを立てずに再現可能な重ねリスクの数値が得られます。
活用例
職場と学校での重ね合わせ比較
見出し用の有効率パーセントを足し合わせるのではなく、残存感染でマスク・換気・ワクチンの層を比較します。それらは確率ではありません。
よくある質問
重ねた層から残存感染はどう計算されますか?
各層の漏れは (100 − effectiveness) / 100 です。層が独立なら残存感染 R はその漏れの積です。複合防御は 1 − R です。例:70%、50%、80% は 0.30 × 0.50 × 0.20 = 0.03 を残します。
有効性が 0–100 の外にあるとどうなりますか?
有効性は閉区間 0–100 の有限百分率でなければならず、−5 や 110 のような値は拒否され課金されません。
100 パーセントの層は残リスクをゼロにしますか?
はい。 この独立層モデルでは 100 パーセントの有効性は漏れ 0 なので、他のスライスに関係なく積 R は 0 です。これはモデル上の仮定であり、実在の制御が完全だという主張ではありません。
名前のない百分率を、名前付き層の代わりに送れますか?
任意の name を持つオブジェクトはラベル付きスライスとして受け付けます。
効果の低い層を足しても意味はありますか?
あります。50パーセントを防ぐ層は、ほかの層がどれほど強くても、残っているリスクを半分にします。最初の対策が十分に見えても、2つ目の不完全な対策が役立つのはこのためです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/health/swiss-cheese-coronavirus \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"layers":[{"name":"mask","effectiveness":70},{"name":"ventilation","effectiveness":50},{"name":"vaccine","effectiveness":80}]}'const res = await fetch("https://api.kit.forhosting.com/health/swiss-cheese-coronavirus", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"layers": [
{
"name": "mask",
"effectiveness": 70
},
{
"name": "ventilation",
"effectiveness": 50
},
{
"name": "vaccine",
"effectiveness": 80
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/swiss-cheese-coronavirus",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"layers": [
{
"name": "mask",
"effectiveness": 70
},
{
"name": "ventilation",
"effectiveness": 50
},
{
"name": "vaccine",
"effectiveness": 80
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/swiss-cheese-coronavirus", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"layers":[{"name":"mask","effectiveness":70},{"name":"ventilation","effectiveness":50},{"name":"vaccine","effectiveness":80}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"layers":[{"name":"mask","effectiveness":70},{"name":"ventilation","effectiveness":50},{"name":"vaccine","effectiveness":80}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/swiss-cheese-coronavirus", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"layers": [
{
"name": "mask",
"effectiveness": 70
},
{
"name": "ventilation",
"effectiveness": 50
},
{
"name": "vaccine",
"effectiveness": 80
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.swiss_cheese_coronavirus",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items | 40 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
重ねた層が漏れを残存リスクへ掛け合わせる仕組み
層 i が試行の割合 e_i を阻む(百分率として入力する有効性)なら、漏れは 1 から e_i を引いた割合であり、残存感染確率はそれらの漏れの積です。すなわち R は (1 − e_i) の積に等しくなります。本エンドポイントはその積だけを実装し、用量反応曲線の当てはめも市中有病割合の推定も臨床・産業保健の助言の代替もしません。
入力契約、応答の形、検証
必須フィールド layers を含む JSON 本体を POST してください。別名 effectiveness、layer_effectiveness、protections も同じ解釈で受け付け、JSON 配列文字列やカンマ区切りの数値リストも可です。0 未満または 100 超、リスト欠落、空リスト、非有限トークン、四十行超はフィールド名付きの invalid_input で失敗し、課金されません。成功時の本体には layer_count、index と任意の name、effectiveness、leak_fraction、そのスライス後の remaining_after を含む layers の軌跡、主結果である 0–1 の確率 residual_transmission、0–100 尺度の residual_percent、残差を 1 から引いた combined_protection と combined_protection_percent、および R = Π (1 − eᵢ/100) を再掲する formula 文字列が含まれます。例:mask 70、ventilation 50、vaccine 80 は漏れ 0.3、0.5、0.2、remaining_after は 0.3 次いで 0.15 次いで 0.03、residual_transmission は 0.03、combined_protection は 0.97 です。
スイスチーズ型コロナ計算機が役立つ場面
実装は純粋な parse の A 段階なので、成功した呼び出しは公表の基本料金 $0.002 で、モデルトークンも外向きネットワークもありません。
連携の活用例
政策解説と報道向けウィジェット
二枚目の不完全な制御が残リスクをなお掛け合わせる理由を、0–100 の外の百分率を拒むスイスチーズ型コロナ計算機で示します。
個人と手帳向けのリスク算術
短い層有効率の一覧を、本格的な流行モデルを取り込まずにノートアプリやスクリプト用の residual_transmission へ変換します。
技術的な質問
スイスチーズ型コロナ計算機の料金はいくらですか。
ブラウザのツールは無料です。API 要求は成功 1 件あたり $0.002 の前払い KIT 残高を使い、無効な入力は課金されません。