外れ値のためのIQRの使用
メニューを表示するにはスワイプしてください
四分位範囲(IQR)は、データセット内の外れ値を検出するための強力な手法。IQRを用いた外れ値検出の標準的なルールは、1.5×IQRルールとして知られている。このルールによれば、第1四分位数(Q1)から1.5倍のIQRを引いた値よりも小さい、または第3四分位数(Q3)に1.5倍のIQRを加えた値よりも大きいデータポイントは外れ値と見なされる。計算方法は以下の通り:
- 下限値:
Q1 - 1.5 * IQR; - 上限値:
Q3 + 1.5 * IQR。
この手法は、データの中央50%の広がりに基づいているため、極端な値に対して頑健。平均値や標準偏差に基づく方法とは異なり、IQRを用いることで異常に大きいまたは小さい値の影響を受けにくく、歪んだ分布や異常値を含むデータにも適している。
123456789101112131415161718import pandas as pd # Sample dataset data = {'value': [10, 12, 12, 13, 12, 14, 2, 12, 15, 12, 30]} df = pd.DataFrame(data) # Calculate Q1, Q3, and IQR Q1 = df['value'].quantile(0.25) Q3 = df['value'].quantile(0.75) IQR = Q3 - Q1 # Calculate bounds lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR # Identify outliers df['is_outlier'] = (df['value'] < lower_bound) | (df['value'] > upper_bound) print(df)
123456789101112import matplotlib.pyplot as plt import seaborn as sns # Create boxplot plt.figure(figsize=(6, 2)) sns.boxplot(x=df['value'], color="skyblue") # Overlay outliers outliers = df[df['is_outlier']] sns.stripplot(x=outliers['value'], color="red", size=8, marker="D", label="Outliers") plt.legend() plt.title("Boxplot with IQR-Detected Outliers Highlighted") plt.show()
箱ひげ図は、IQR法が外れ値を検出する方法を明確に視覚的に要約:
- 箱は四分位範囲(IQR)を表し、データの中央50%の広がりを示す;
- ひげは1.5×IQRの範囲内にある最も極端な値まで伸びる;
- 外れ値はひげの外側に個別の点として現れ、主要なデータ群から簡単に識別・分離できる。
このIQRベースの手法は、異常値の存在に影響されずに異常な値を分離。平均や標準偏差を用いる方法と異なり、IQR法はデータが歪んでいたり極端な値を含んでいても頑健。これにより、実際のデータセットで信頼性の高い外れ値検出に好まれる方法となる。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 33
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 1. 章 33