てん@統計屋さんです
以前の↓ネタ記事↓にたどり着いた方の検索ワードで、ひときわ目立ったものがあります。
外れ値の除外
立ち上げたばかりのこのサイトにたどり着いた方のかなりの比率が、上記に関連しそうなワードでお越しになっております。いったいどのような研究分野の方がたどり着いたのかわかりませんが、データを取得して解析を自身で行っているような研究者や学生の皆さんの中には、外れ値に頭を悩ませている方が多くいるのでしょうかね?
以前のネタ記事では
[word_balloon id=”1″ position=”L” size=”M” balloon=”talk” name_position=”under_avatar” name=”てん” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]外れ値を闇雲に外すなんてとんでもない![/word_balloon]
ということだけを述べさせてもらいましたので、せっかくこのサイトに到達したのに、なんの解決策も得られなかったことかと思います。
今回は、外れ値に対するいくつかの対処法について紹介しておきたいと思います。
共通する注意点
考えうる対処法としてこれから紹介する方法は、クスリかもしれませんが毒でもあります。無秩序に使えば、確かにエラーバーは小さく統計学的有意差は付きやすくなるでしょう。しかし、
[word_balloon id=”6″ position=”L” size=”M” balloon=”talk” name_position=”under_avatar” name=”放出系能力者” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]この解析手順なら統計学的有意差ついたぜ!ひゃほーい![/word_balloon]
という解析手順が見つかったとして、
[word_balloon id=”1″ position=”R” size=”M” balloon=”talk” name_position=”under_avatar” name=”てん” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]もう一度同じ実験を行ってデータを取って同じ解析手順で解析したとして・・・ 同じように良い結果が出ると確信が持てますか?[/word_balloon]
データを見たあとから解析手法を変更して得られた結果は、基本的に「検証価値のある仮説」となることはあっても「検証された真実」となることはありません、報告の際に十分にリミテーションをかけておく必要があります。
[word_balloon id=”9″ position=”R” size=”M” balloon=”talk” name_position=”under_avatar” name=”くまひろ” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]統計の悪用はゆるさないんだからね[/word_balloon]
面倒を承知で言えば、解析手法を特定して再実験を行うことが大切です。
考えうる対処法
科学的にありえないことを説明する
例えば、「身長165m」という回答が得られたら、それは科学的にありえませんね。進撃の巨人の超大型でも60mとのことですので、この方は、日本にあるあらゆる壁を破壊することができるでしょう。
[word_balloon id=”1″ position=”L” size=”M” balloon=”talk” name_position=”under_avatar” name=”てん” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]もちろん社会的な破壊ではなく、物理的な破壊です[/word_balloon]
これはほぼ間違いなく、「身長165cm」が正しいデータでしょう。
このような有力ミスは修正することも必ずしも悪ではありません。再現可能な記録を残せば正当な手続きとなりえます。
[word_balloon id=”9″ position=”R” size=”M” balloon=”talk” name_position=”under_avatar” name=”くまひろ” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]ぶっちゃけ、市場調査関係のビックデータなんてこんなヘンテコ入力ばかりやでほんま[/word_balloon]
これは入力ミスの例でしたが、他にも、「100mを7秒で走っている」というデータが入っていたら、それは少なくとも人間の正しいデータではないと判断可能です。(この記事は平成の時代に書いています、22世紀の人類にはそういう方もいるのかもしれませんが・・・)
こういったデータは外れた値ではなく、本来入って来てはいけない異常な値(異常値)と思われます。これらを解析から除外するのギリギリありでしょう、しかしできる限り、なぜこんなデータが入ってきたのか(異常が起こった背景)を特定することが望ましいです。
[word_balloon id=”6″ position=”L” size=”M” balloon=”talk” name_position=”under_avatar” name=”放出系能力者” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]週の飲酒回数のデータに”10回”ってのがあるんですが外していいですよね?[/word_balloon]
[word_balloon id=”9″ position=”R” size=”M” balloon=”talk” name_position=”under_avatar” name=”くまひろ” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]そういうやつもいるやろ(土曜日は朝昼晩3回飲んでる的な)?除外したらあかんで[/word_balloon]
[word_balloon id=”1″ position=”R” size=”M” balloon=”talk” name_position=”under_avatar” name=”てん” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]もとの質問の趣旨からすると”毎日飲んでいる”にほぼ該当するのでしょうから”7回以上”という区分に入れるほうがまだましかなぁ・・・[/word_balloon]
ご自身の実験・調査内容に関する背景知識を蓄えれば蓄えるほど、こういった異常なデータを正しく判断できるようになるはずです。ご自身の研究分野でどんな事がありえるか考えてみてください。
誤測定を特定する
「体重284kg」というデータは、科学的にありえないから抜いていいということになるでしょうか?それは、残念ながら難しいでしょう。なんせ小錦の現役時代の体重なので、「小錦は科学的に存在し得ない」という失礼な物言いをしてしまうことになるからです。
とはいえ、日本国内データだとすれば「体重284kg」というデータはそうそう想定するデータではないのも事実です。こういう場合は、そのデータの方に会いに行く、そのデータを入力した担当者にヒアリングする、といったアクションが必要かと思います。その結果、なんからしらのミステイクが特定できれば、正当な修正への道が開けます。
別の例では、精密な物理学上の測定なんかはちょっとした振動なんかでも、データが大暴れしかねませんね。
[word_balloon id=”9″ position=”L” size=”M” balloon=”talk” name_position=”under_avatar” name=”くまひろ” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]地震が来ちゃったとかね[/word_balloon]
地震が外れ値の原因って事なら、これは十分に解析から外す理由になりえそうです。
何れにしても重要なのは、外れ値が出てしまった証拠を掴み(異常値である根拠を持って)、可能な限り(ただ外すのではなく)正しい数値を埋めてあげる事です。
根拠もなく
[word_balloon id=”6″ position=”L” size=”M” balloon=”talk” name_position=”under_avatar” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]誤測定!!![/word_balloon]
って主張するのは改竄に当たりますのでご注意を。
変数変換を検討する
[word_balloon id=”3″ position=”L” size=”M” balloon=”talk” name_position=”under_avatar” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]俺の出番やな[/word_balloon]
[word_balloon id=”1″ position=”R” size=”M” balloon=”talk” name_position=”under_avatar” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]ある程度そうですね[/word_balloon]
例えば、音の大きさの単位としてdB(デシベル)ってのがありますね。あれは、音の振動の幅(エネルギー)の“対数”で表現された単位です。人間の体感としてはエネルギーの大きさそのものよりも、対数変換したdBの方が直感的だそうです。もし、対数変換をせずにエネルギーそのもので扱えば、そのデータには桁違いのデータが含まれてきます。この桁違いのデータを“外れ値”として原因探索し始めたり、はては除外などしていていわけありませんね。
エネルギー関係では対数変換はよく用いられるようで、地震のエネルギーマグニチュードや、放射線量シーベルトなんかも対数変換後の数値です。
対数変換以外にも無数に変数変換の方法はありますね、有名どころだとBox-Cox変換なんてのがあります。これは、パラメータλを変えれば、対数変換も内包している(λ=0の場合)、割となんでも屋な手法です。
[word_balloon id=”1″ position=”L” size=”M” balloon=”talk” name_position=”under_avatar” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]ただ、個人的にはあんまり好きじゃないんですよね〜[/word_balloon]
というのも、この変数変換のパラメータλはどうやって正当化するんですかね?正規分布に最もフィットすように「事前に」設定するのは至難の業でしょうし。変換後の数値は人が体感的に理解可能な単位になるのですか?機械学習などの分野でパワフルに使われている側面は理解しつつも、そのものの要約が(コンピュータは理解できても)人には理解できないものになるような気がします。
とはいえ、変数変換という手法そのものは正しく使えばとてもパワフルですので、外れ値に頭を抱える方の頭の片隅に置いておいて欲しいです。
ノンパラメトリック手法を活用する
お金のデータ、例えば「年収データ」なんかは結構外れた値を持ってますね。Z○Z○の社長の年収は、庶民の平均年収と文字通り桁が違うでしょう。(マーク・ザッカーバーグ氏の年収は逆の意味で桁違いですが)
お金関係のデータでも特に金融の世界では比率を多く扱ってますので、前述の対数変換がよく使われています。対数変換したデータの平均値をもともとの単位に逆変換したものを幾何平均値と言います(一つの定義の仕方です)。この、幾何平均値が、投資リターンの期待値算出に用いられたりしています。
しかし、年収などのデータで対数変換は駄目ですね。なんせ、0円というデータが正当なデータとして存在してしまうので…
[word_balloon id=”9″ position=”R” size=”M” balloon=”talk” name_position=”under_avatar” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]0を対数変換しようとすると-∞に発散してエラーになるよ[/word_balloon]
というわけで、よく使われている印象なのは、中央値です。
幾何平均値は対数変換後のデータの平均値をもとの単位に戻した代表値
でした
中央値は順位に変換したデータの平均値(必ず(データ数+1)/2になります)をもとの単位に戻した代表値
とも言えます。
この、順位への変換というのは、かなりのリーサルウェポンになります。極端な外れ値が出てようが、分布がどれだけ歪んでいようが、相当に目を瞑ることができてしまいます。順位に変換した上で行う解析は(正確性を犠牲にして言えば)ノンパラメトリック手法と呼ばれております。
原因を特定できない、変数変換も難しい、外れ値がある場合、ノンパラメトリック検定(Wilcoxon検定など)なら、有意差が付くようなケースは多々あるでしょう。但し、きれいな正規分布に従うデータに対してノンパラメトリック手法を使うと、無駄に推定精度を落とすので、むやみやたらに使うことはおすすめできません。
ダメ絶対な対処法
外れ値の検定ってのに興味をもつ方もいるのでしょうね。
あれ、絶対だめです。これについては、別の記事で詳細に記載させていただきました。
最後に
私は、この記事の対処法を実施していますが、あらゆる研究分野で適切な対処法であるかどうかはわかりません。その研究分野を詳しい統計家の意見が聞ける環境にあるなら、その方の意見を優先してください。
[word_balloon id=”1″ position=”L” size=”M” balloon=”talk” name_position=”under_avatar” radius=”true” avatar_border=”true” avatar_shadow=”false” balloon_shadow=”true”]そもそも外れ値が出ないようなデータ集めをするのが、最強の対処手段だ![/word_balloon]
外れ値を含まないデータ取得がしたい方はお声をかけてください。
でわでわ
[…] データをてんから見てみよう外れ値への対処法を考えてみたよhttps://www.ten-kara-data.com/how-to-outlier/てん@統計屋さんです以前の↓ネタ記事↓にたどり着いた方の検索ワードで、ひときわ目 […]
[…] データをてんから見てみよう外れ値への対処法を考えてみたよhttps://www.ten-kara-data.com/how-to-outlier/てん@統計屋さんです以前の↓ネタ記事↓にたどり着いた方の検索ワードで、ひとき […]
[…] てん 扱っているデータに外れ値が出てくるような場合は、以前の記事なんかも参考になるかと思います でわでわ […]
[…] この記事は、以前記事の続きです。外れ値の取扱として、だめな例を紹介しています。正当になりうる取扱いについてはリンク先の記事を確認ください。 […]