IQR外れ値検出計算機
データの真ん中の半分から大きく離れた値を見つけます。1、2、2、3、4、100では境界が−1と7になり、外れ値は100だけです。四分位数と境界もすべて表示されます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 値の一覧
- 1, 2, 2, 3, 4, 100
- 数量
- 6
- Q1
- 2
- Q2
- 2.5
- Q3
- 4
IQR外れ値検出計算機は、数値標本の中央半分から大きく離れた値を見つけます。空でない配列を並べ替え、Tukeyの排他的方式でQ1とQ3を計算し、四分位範囲の1.5倍に上下の境界を設定します。その外側に厳密に位置する値だけを外れ値として示します。結果には四分位数、IQR、両境界、検出値、件数が含まれるため、正規分布を仮定せずに分析内容を確認または自動化できます。
1.5 IQRによる判定方法
最初に、入力された数値を小さい順に並べます。標本全体の中央値をQ2、下半分の中央値をQ1、上半分の中央値をQ3とします。個数が奇数の場合、中央の中央値は上下どちらの半分にも含めません。
これが本機能で採用するTukeyの排他的方式です。四分位範囲IQRはQ3からQ1を引いた値で、中央50パーセントの広がりを表します。下側境界はQ1からIQRの1.5倍を引き、上側境界はQ3にIQRの1.5倍を加えて求めます。
値が境界より厳密に小さい、または大きい場合だけ外れ値になります。境界と等しい値は対象外です。四分位数は平均値より極端な値の影響を受けにくいため、堅牢で説明しやすい選別に役立ちます。
応答にはQ1、Q2、Q3、IQR、上下の境界、昇順の外れ値配列、件数が示され、各判定を直接ご確認いただけます。
配列の準備と結果の読み方
整数、小数、負数、重複値、1件だけの標本を利用できます。数値に見える文字列、null、無限大、NaN、入力漏れ、公開上限を超える配列は受け付けません。厳密な検証により、暗黙の型変換で統計的な意味が変わることを防ぎます。
内部コピーを並べ替えるため、入力順は結果に影響しません。countは観測数、Q1、Q2、Q3は下位四分位数、中央値、上位四分位数です。1件だけなら全四分位数と境界が同じになり、IQRは0、外れ値はありません。
ブラウザーでも同じ決定論的アルゴリズムを実行します。表計算ソフトと比べる際は、パーセンタイル方式の違いにご注意ください。
削除命令ではなく調査の手掛かりとして利用する
IQRによる印は、その値が今回の標本の中央部分から離れていることを示しますが、誤りであるとは限りません。品質管理では故障したセンサーを示す場合も、調査すべき実際の工程変動を示す場合もあります。非常に大きな注文も、入力ミスではなく正当な法人購入かもしれません。
削除、置換、上限処理を行う前に、出所と業務上の背景をご確認ください。非常に小さい標本、複数の山を持つデータ、本来分けるべき集団を混ぜたデータでは、このルールの効果が限られます。機器モデル、地域、実験条件などの意味ある集団ごとに境界を計算することもご検討ください。
頻度には意味があるため重複値は維持され、境界と正確に等しい値は検出されません。再現可能な処理にするには、整形後の配列だけでなく、四分位数と境界も判定結果と一緒に保存してください。可視化、検証、モデル化の前に行う透明な確認手段として利用し、珍しい観測を自動削除する命令としては扱わないでください。
活用例
センサー測定値の確認
校正、通信、工程の異常を調べる前に、ロットのIQR境界を超える測定値を検出します。
取り込んだ業務データの検査
入力ミス、単位違い、または正当な特別取引の可能性がある極端な金額を見つけます。
堅牢統計の学習
四分位数、IQR、Tukey境界から再現可能な検出一覧が得られる仕組みをご説明いただけます。
よくある質問
どの値が外れ値になりますか?
Q1からIQRの1.5倍を引いた値より小さい、またはQ3にIQRの1.5倍を加えた値より大きい場合です。
境界と正確に等しい値はどうなりますか?
検出されません。 上下の境界より厳密に外側の値だけが対象です。
どの四分位数方式を使いますか?
Tukeyの排他的方式です。標本数が奇数なら、全体の中央値をQ1とQ3の計算から除きます。
検出値は必ず削除すべきですか?
いいえ。 珍しい値であって、誤りとは限りません。変更前に出所と背景をご確認ください。
表計算ソフトと検出される値が違うのはなぜですか?
表計算ソフトによって四分位数の補間方法が異なり、Q1やQ3が少し変わるだけで境界も動くためです。この計算機は常にテューキーの除外方式を使い、個数が奇数のときは中央値をどちらの半分にも含めません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/iqr-outlier-detection \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"values":[1,2,2,3,4,100]}'const res = await fetch("https://api.kit.forhosting.com/stat/iqr-outlier-detection", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"values": [
1,
2,
2,
3,
4,
100
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/iqr-outlier-detection",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"values": [
1,
2,
2,
3,
4,
100
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/iqr-outlier-detection", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"values":[1,2,2,3,4,100]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"values":[1,2,2,3,4,100]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/iqr-outlier-detection", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"values": [
1,
2,
2,
3,
4,
100
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.iqr_outlier_detection",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
配列の準備と結果の読み方
valuesフィールドに有限数からなる空でないJSON配列を指定してください。lower_fenceとupper_fenceは正確な境界を示し、outliersは重複も残して検出値を昇順で返します。空配列では四分位数を定義できないためinvalid_inputになります。成功したAPIリクエストは$0.002です。
技術的な質問
空配列がエラーになるのはなぜですか。
観測値がなければ四分位数とIQRを定義できないため、invalid_inputを返します。
APIリクエストの料金はいくらですか。
成功した各リクエストは$0.002です。同じ決定論的計算をブラウザーでは無料で実行できます。