
外れ値を求めたいのですが、自分で計算式をくんでやってみると、外れ値だと思える値が正常値と判断されてしまい、質問させていただきました。
現在とあるサイトを運営していて、このサイトのコンテンツに対して、アクセス数を元にしたランキング機能を実装しようと考えました。
アクセス数は日毎に記録しています。
しかしながら、アクセス数を見てみると、BOTかなにかの影響である日のアクセス数だけ、異常に高いのが複数のコンテンツにあり、ランキングがめちゃくちゃになってしまいました。
そこで、このような外れ値を除外するプログラムを書こうと考えました。
このプログラムは、
平均値±(3×標準偏差)
の範囲外(以上ではない)だと、外れ値だと検出します。
このプログラムをテストするために、
[29,6,1,5,4,10,1,10,10000]
という9つの値を渡しました。
私は10000がプログラムによって検出される事を期待しました。
しかしながらこのプログラムは、外れ値を検出しませんでした。
そこで計算をみてみると、
平均値=1118
標準偏差=3330
外れ値= 1118 + 3*3330 = 11110
よって10000は外れ値ではないと、検出されていました。
私はどこを間違っていますか?
またどうすれば外れ値を検出することができますか?
No.2ベストアンサー
- 回答日時:
そのやり方は検出力が弱いので推奨されない。
もっと良いやり方はいくつかあるが,簡単なのは箱ひげ図を使うやり方です。
まず,データの第1四分位点Q1,第3四分位点Q3を求めてIQR=Q3-Q1を求める。
次にQ1-3*IQRからQ1+3*IQRの範囲から外れているものを極端な外れ値とする。
また,極端な外れ値ではなくてもQ1-1.5*IQRからQ1+1.5*IQRの範囲から外れているものを軽度な外れ値とする。
http://ja.wikipedia.org/wiki/%E7%AE%B1%E3%81%B2% …
この回答への補足
お返事ありがとうございます。
今回のデータである
[29, 6, 1, 5, 4, 10, 1, 10, 10000]
の場合ですと、
Q1 = 1
Q3 = 1
IQR = 0
よって範囲は
1 <= x <= 1
となり、1以外全て外れ値になってしまったのですが、
私はどこの計算式を間違えていますか?
補足の補足です。
先ほどは失礼しました。
ソートしないと駄目なんですね。
Q1 = 4
Q3 = 10
IRQ = 6
よって範囲は、Q3+3*IQRを使うと、
-14 <= x <= 28
となりました。
が、これでは正常なデータである29がはじかれてしまっています。
これはデータ数が足りないのでしょうか?
No.5
- 回答日時:
#2です。
[29, 6, 1, 5, 4, 10, 1, 10, 10000]
をみて10000は明らかに外れ値だと判断するだろうが,29も外れ値だと判断する人がほとんどだと思う。
どうして正常なデータであると判断できたのでしょう?
> これはデータ数が足りないのでしょうか?
確かに,もっとデータが多ければ29も正常と判断される可能性はあるでしょう。
この回答への補足
これはサンプルデータではありますが、アクセス数のランキングなので普段は1とか5等でも、ある日ブログ等に取り上げられて100ぐらいならありえるという判断です。
ただBOTはそれを超えて1000,10000等、あり得ないほどアクセスするので、なんとかそれを数学で弾けないかと考えた次第でした。
しかし根本的な解決にはなりませんし、数学で弾くのは難しそうですよね…。
システム側で色々考えてみようと思いました。
ご回答ありがとうございました。
No.4
- 回答日時:
> このプログラムは、
> 平均値±(3×標準偏差)
> の範囲外(以上ではない)だと、外れ値だと検出します。
標準偏差が不偏分散の平方根でデータの数がn個では(n-1)/√nより大きな値は絶対に出ませんので
> このプログラムをテストするために、
> [29,6,1,5,4,10,1,10,10000]
> という9つの値を渡しました
ときに、10000を外れ値として検出することは不可能です。
(n=11以上でないと3以上にならない)
なので、適当な母集団の分布を仮定してシミュレーションにより棄却域を調べてください。
もっともこちらの方法よりも、外れ値の影響を受けにくい#2さんの方法をお奨めします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 統計学 t値の計算方法 1 2022/11/29 18:37
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- 統計学 回帰分析検証不一致 5 2022/05/04 20:48
- 統計学 t検定について教えてください 2 2023/02/23 16:35
- 統計学 確率統計の問題です。 3 2022/04/07 04:39
- Java Java 年数計算 3 2023/01/28 10:52
- 統計学 統計学の問題です。よろしくお願いします。 ある部品の重量は正規分布に従うとされており,過去の経験から 1 2023/01/19 03:36
- 妊活 判定日のhcgの値について。 体外受精の胚移植を受け、移植後12日後(BT12)に陽性判定を受けまし 1 2022/11/24 08:33
- 高校受験 偏差値54の高校ですが。。 5 2023/02/26 11:31
- C言語・C++・C# 3つの倍精度浮動小数点値の平均を求めて、3つの引数全てを平均値に変更するメソッドを作成し、キーボード 1 2022/07/13 16:04
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
標準偏差
-
偏差値50~55の差と偏差値70~7...
-
標準偏差に「通常の範囲」はあ...
-
なぜ共分散はSxyで表すのですか...
-
吹田市に出来た大和大学は、経...
-
偏差平方和なぜ2乗
-
Excelで近似式の標準偏差を算出...
-
標準偏差値が合わない
-
偏差値60の人と偏差値50の人が...
-
中学1.2年で5教科の合計点が350...
-
分散の計算の過程について。そ...
-
推定(統計)です。有効数字の...
-
エラーバーの書き込み方
-
5段階評価のつけ方について
-
(1)で分散を求める時、解答では...
-
ネノの求め方わかりやすく教え...
-
3教科の偏差値の出し方について...
-
全体平方和の説明をお願いします
-
標準偏差を求める際のデータ数...
-
複数の異なる指標を総合して成...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
標準偏差
-
偏差値だけで見ると、鳥取大学≧...
-
幾何標準偏差の求め方
-
パーセンテージのバラツキを表...
-
小さければ小さい程高い偏差値
-
Excelで近似式の標準偏差を算出...
-
顔面偏差値100点満点中何点ぐら...
-
偏差値60の人と偏差値50の人が...
-
社会人の偏差値の調べ方
-
なぜ共分散はSxyで表すのですか...
-
推定(統計)です。有効数字の...
-
偏差値の求め方(逆の場合)
-
(1)で分散を求める時、解答では...
-
標準偏差値が合わない
-
エラーバーの書き込み方
-
平均年齢の表記方法(統計学的に)
-
偏差値から順位を求めるには
-
高校偏差値67ってどのくらい字...
-
標準偏差に「通常の範囲」はあ...
-
変動係数における平均値について
おすすめ情報