データの価値を図る

この記事は2017年08月07日に公開されました。 情報が古い可能性があります。

こんにちは、殿内(@tonoccho)です

統計では標準偏差、中央値、分散、平均値、というものを学ぶのですが、それぞれが一体なんのために使うのか、ということを考えないと単に求めて終わる、ということになるかと思います。

中央値と平均値

中央値は最大値と最小値を足して半分にした数で、平均値はすべてのデータを足して個数で割った数ですね。平均値は、例えば、ドラゴンボールの世界でいうと、すべてのZ戦士の戦闘力の平均値を出した場合、とんでもない値になると思います。なぜならナメック星人やサイヤ人といった方々がわけのわからない数字を出すからです。
仮に平均の戦闘力が5億くらいだとした場合、ヤムチャってそんなに強い?チャオズとか、多分今でも1000くらいだよね、という感じになるかと思います。多分サイヤ人だけで平均とった場合とそんなに数字変わらないと思います。
一方で、中央値、仮に悟空の戦闘力が1兆、チャオズの戦闘力が1000とすると、中央値は5000億500になるので、平均値との間にとんでもない開きがあることがわかります。
というように、平均値がこの数字でも、何かに引っ張り込まれてる、または引き摺り下ろされている、というような場合は、中央値との差が大きくなるので、両方求めるといいと思います。
Rでは、平均値はmean関数、中央値はmedian関数で求まりますね。

分散と標準偏差

平均値に対して、各値がどれだけ離れているか、というのが分散ですね。Z戦士の平均戦闘力が5億だとした場合、チャオズも悟空も宇宙の果てまで離れている気がします(というかこのデータ役に立つのか・・・?)
分散の値が小さいほど、データは平均値に近いところに集まっている、と言えます。一方で、標準偏差は分散の値を平方根した値ですね。分散と標準偏差がどう使い分けられるかは良くわかりませんね。分散は、各デーが平均からどれだけ離れているかを二乗して、その平均を取り、標準偏差は、それをさらに平方根した値。良くわかりません。。。で、少し調べたのですが、分散と標準偏差の違いは?(CETOL 6σ)というページを見つけました。
まず、目の前のあるデータが、どれだけばらつくか、工業機械の場合は、出来上がる部品のサイズがどれだけバラバラか、というようなことを求めたい、という場合があります。単にどれだけバラバラか、という場合は、平均値と出来上がる各部品の差を求めればいいでしょう。
しかし、出て来た誤差の合計が、0になってしまう場合(+2,-2,+1,-1)、ばらつきが0になってしまう、という問題があります。そこで、(平均値-サイズ)^2とすることで、すべての値が+4,+4,+1,+1になり、合計値が0になることを防ぎます。
とは言え、比較する機械のデータ数に違いがあれば、それが影響するので、平均値を出してデータ数の違いを打ち消します。
つまり、統計における「式」というのは、計算をすることで発生する問題を打ち消す、という目的で使っているのでしょう。なんで二乗なのかと言えば、符号の影響でデータが消えることを防ぐし、なんで平均値なのかと言えば、データ件数の影響で誤った結論に導かれることを防ぐ、ということですね。
分散はこういった理由でデータの値がすべて二乗された状態なので、直感的ではないので、平方根をとることで標準偏差を求め、同次元での比較を実現している、ということのようです。つまり、この平方根も、「値がより直感的」というのを表現するためにやっている、ということですね。本当統計はいい加減にしていただきたい。

偏差値

そう言えば、偏差値、という数字に青春時代を翻弄された方がjapanには多いかと思います。困難単なる相対地だろとしか思っていませんが、自分も当時は結構翻弄されたものです。
偏差値は、テストの点が仮に100点だとしても、かたや偏差値75、かたや偏差値65というように同じ点でも偏差値に違いがあったのを思えています。これは、データの分散が大きい中でとった100点(つまり100点をとった人があまり多くない)のか、データの分散が小さい中でとった100点(つまり結構100点とった人が多い)のか、ということですね。
これも標準偏差を利用して求めるのですが、大きいからいい、小さいからいい、というのではなく、偏差値50からどれだけ離れているかで、「平均点をどれだけ上回ったか又は下回ったか」ということを直感的にわかるためのものと言えます。
例えば、平均点50点のテストで100点をとった場合ですが、全員の得点が0点と100点で半々に分かれたような場合、偏差値は幾つなんでしょうか、というのをRで求めてみますね。求め方は偏差値の求め方(すぐる学習会)を参考にしました。

exam_score_data <- data.frame(
student=c("A","B","C","D","E","F"),
score=c(0,0,0,100,100,100)
)

mean_val <- mean(exam_score_data$score)
sd_val <- sd(exam_score_data$score)

print(10*(exam_score_data$score-mean_val)/sd_val+50)

こんな感じでしょうか、結果は

40.87129 40.87129 40.87129 59.12871 59.12871 59.12871

でした。見辛いですが、一体このテストはなんなんでしょうね。たった一文のTFテストでしょうか?一方で、一人だけ100点、一人だけ0点だった場合(用は、scoreの内容を変えれば良い)の各人の偏差値はこんな感じでした。

一人だけ100点
45.91752 45.91752 45.91752 45.91752 45.91752 70.41241

一人だけ0点
29.58759 54.08248 54.08248 54.08248 54.08248 54.08248

というように、一人だけ取れた100点の方が、一人だけ0点の時よりも偏差値が高いことが良くわかりますね。そういうわけなので、このテストでとった100点というものが一体どういうものかがわかると思います。ちなみに、チャオズ(戦闘力1000位と仮定)と悟空(戦闘力1兆2000億という情報がググれたのでこれにする)の場合の偏差値は・・・

-300000000000 300000000000

左がチャオズで右が悟空ですね。足した50はどこにいったんでしょうか・・・偏差値ってマイナスになるの初めて知った。まぁ、お遊びということでw

ニュージーランドの最新記事

移住の最新記事

勉強の最新記事