外れ値(異常値) | package入門(rpnマイスター編) [講座] | 逆ポーランド電卓の実践ウェブ rpn hacks!

逆ポーランド電卓の実践ウェブ rpn hacks!

逆ポーランド電卓rpnの実践ウェブ   
rpn hacks! アールピーエヌ・ハックスサイトマップ

rpn | 講座 | package入門 | ポテンシャルを飛躍的に高めるrpnパッケージを学習。

HOME > 講座 > package入門 > rpnマイスター編 > 外れ値(異常値)

hatena twitter facebook rss ソーシャルブックマーク

外れ値(異常値)

 2008年に黒点数がゼロになったと報道されましたが、では21世紀になってからの黒点数の推移はどうなっているのでしょう。以下は2001年から2008年までの8年間の年間平均黒点数です。

  2001 111
  2002 104
  2003 63.7
  2004 40.4
  2005 29.8
  2006 15.2
  2007 7.5
  2008 2.9


確かに2007年、2008年の黒点数は2001年、2002年の100以上の頃と比べてとても少ないような感じがします。仮に過去の黒点数の動向を知らないとすると、これら9個のデータの中でどんな黒点数を異常値と見なせばよいのでしょうか。

異常値とは他の数値と比べて極端に違う数値のことですが、もしかして、黒点数が少ないことが異常なのではなく、多いことが異常なのかも知れません。

さて、ここに棄却検定という重要な統計手法があります。事前に特定の分布を想定しておいて、その分布からどれだけ掛け離れているかによって、異常値かどうかを統計的に判定する手法です。

棄却検定では異常値のことを外れ値とも言います。他の値から外れた値という意味です。この棄却検定に関しては、ビジネス統計(検定編)に詳しく説明してありますが、有意水準%点を決めて外れ値の範囲を特定します。そして、範囲を外れた値を抽出することになります。どうしても、外れ値を求めるまでの手順や計算が面倒なことは否めません。

警告きちんと棄却検定するのであればビジネス統計(検定編)の手順に従ったほうが安全です。

簡単に外れ値を見つける

 そこで、もっと簡単に外れ値を抽出する方法をrpnマイスターパッケージに用意しました。それがoutlierプログラムです。

outlierプログラムは、上記の棄却検定のような手順を省略して、有意水準の指定が必要なく、データだけあれば外れ値を判定して抽出してくれるのでとても便利です。詳しい原理は省きますが、上記のデータがdata.txtに格納されていると考えて、このoutlierに渡してみましょう。

  >rpn x _ <data.txt | rpn -c outlier
  63.7
  104
  111


黒点数だけのデータに加工してからoutlierプログラムに渡していますが、2001年から2003年の3年間の黒点数を外れ値だと判定しました。グラフにすると以下のような感じです。

  >xyp -x2001,2008 -y,150 -s1,50 <data.txt | npd
  ^ 150
  |
  |
  *  <--- 外れ値
  -    *  <--- 外れ値
  |
  |
  |
  |          *  <--- 外れ値
  -
  |               *
  |
  |                     *
  |                          *
  |                                *     *
  +----|-----|-----|----|-----|-----|---->
  2001                                2008


なぜ、2003年の黒点数が外れ値なのかしらとは思いますが、他の2004年から2008年までの黒点数が安定して少ないので、外れ値として判定されたのでしょう。

300年超の黒点数データではどうなる

 では、21世紀からの黒点数データではなく、過去300年を超える黒点数データの場合には、外れ値が出てくるのでしょうか。以下に再掲するのは、1700年から2008年までの309年の黒点数データです。

  1700 5
  1701 11
  1702 16
     :
  (中略)
     :
  2006 15.2
  2007 7.5
  2008 2.9


data.txtにデータが格納されていると考えて、外れ値を検出してみましょう。

  >rpn x _ <data.txt | rpn -c outlier


かなり長い間計算してようやくDOSプロンプトが表示されましたが、値は出てきませんでした。つまり、外れ値はないと判断されています。

実際のところ、黒点数の多い少ないには周期性(有名な11年周期や55年周期)があります。従って、大抵の黒点数は過去に出現しているはずで、外れ値が出るのは逆におかしいということになるので妥当な結論でしょう。

警告outlierは500個の数値程度を目安に使用してください。

情報本講座で使用したプログラムは、rpnマイスターパッケージとして購入することができます。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。

rpnマイスターパッケージ

マイスター

ユーティリティー

カレンダー

警告文字で作られた図表や式が崩れることがあります。ブラウザによっては固定幅フォントをMSゴシックにするときれいに表示されます。それでも崩れる場合は図表や式をメモ帳にコピー後、閲覧下さい。

警告rpn標準版(2kリビジョン)はダブルクォートで囲って下さい。

rpn 1 2 + ⇒ rpn "1 2 +"
rpn 1 -c foo ⇒ rpn "1" -c "foo"

ダブルクォートは省略できることが多いのですが、慣れない間は囲んだほうが無難です。なお、本ウェブサイトの記事ではrpn標準版(98リビジョン)を使用しているため囲っていません。詳しくは技術サポートの「rpn TIPS」を参照ください。

注意rpnの障害情報と対策はこちら