Box-Cox変換

仕事と関係ないところである人のデータ解析の報告を聞く機会があった。そこで、報告者がデータの平方根を取って解析していた。
矢野「なぜ平方根を取っているのですか?」
報告者「(平方根を取るのは)うちの業界では常識です。」

・・・そんな常識、始めて聞いたよ_| ̄|○



さて、データを解析する際にデータの平方根を取ったり、自然対数を取ったりすることは実務上よく行われます

多くの場合、データの分布が正規分布から外れている場合にこれらの変換が行われることが多いです。そして、それは「変換した場合に変換後のデータがより正規分布に近づく」場合にのみ正当化されます(というのは統計学の手法で、「データが正規分布でないと分析できない」手法が多く存在し、データが正規分布に近くないと困る[場合がある]から)。

このような「無理矢理でもいいので、データを(分布が正規分布になるように)変換したい」という場合には昔からよく知られるBox-Cox変換を用いる方法が考えられます。

[Box-Cox変換]
\bf{z = \frac{1}{\lambda} (y^\lambda -1),\;\lambda \neq 0}
さらに \bf{\lambda \to 0}の時、この式は自然対数に収束するので、
\bf{z = log(y),\;\lambda = 0}
ここで\bf{y}がデータ、\bf{z}が変換されたデータ

つまりBox-Cox変換を用いれば、 \lambda=1/2の時には平方根をとることになるし、 \lambda=0の時には自然対数を取ることになるわけです。

結局、「無理矢理でもいいので、データを(分布が正規分布になるように)変換したい」場合にはBox-Cox変換で \lambdaを変化させて、正規分布に近づくようにしてやればいいわけです(少なくとも原理的には)。

ただし、これはあくまでも「実務上」の話でして、「(そもそも)本当にこんな変換をして良いのか」というのは別問題です。変換する場合は変換されたデータの意味をよく考えるべきではないかと思います。

僕自身は非正規分布性を許容する解析手法を使うと思います*1

[参考] http://en.wikipedia.org/wiki/Box-Cox_transformation