どのようなときに目的変数Yではなくlog(Y)にしたほうがよいのか?~対数変換するメリットとデメリット~

回帰分析では、目的変数 Y と説明変数 X との間でモデル Y = f(X) を構築します。このとき、Y ではなく、それを対数変換した log(Y) を用いることがあります。モデル log(Y) = f(X) を構築し、モデルに X を入力して得られた予測値は逆に指数変換して元の Y に戻します。

このような Y の対数変換は、基本的には対数をとったほうが、回帰モデルの意味が妥当になるときに有効です。たとえば、アレニウスの式における速度定数と温度の逆数の間の関係のように、X と Y の間の関係が指数関数と考えられるときに、対数変換することで直線的な関係に変換できます。変換した方が線形の回帰分析手法で対応できるようになり、AD が広がる可能性があるなどよい結果になると考えられます。

アレニウスの式のような本来の Y と X との間の関係の情報がないときには、対数変換のメリットとデメリットを考えて、対数変換をするかどうかを決めるとよいでしょう。ひとことで言えば、

 

メリット: Y の値が小さいサンプルの誤差が小さくなる

デメリット: Y の値が大きいサンプルの誤差が大きくなる

 

傾向があるということです。

対数変換することにより、元々 Y の値が小さい 0 付近のサンプルは、絶対値が比較的大きくなり、Y の値が大きいサンプルは、比較的小さくなります。回帰分析における誤差関数、たとえば Y の誤差の二乗和を考えたとき、サンプルの値が大きくなるということは、誤差に対する寄与が大きくなり、その誤差が小さくなる傾向があります。逆にサンプルの値が小さくなるということは、誤差に対する寄与が小さくなり、その誤差が大きくなる傾向があります。

まとめると、対数変換することで、もともと Y の値が小さいサンプルの誤差を小さくできる一方、Y の値の大きなサンプルの誤差が大きくなってしまう傾向があります。そのため、Y の値がなるべく小さくなるようにサンプルを設計したいときは、積極的に対数変換をするとよいと思います。逆に Y の値がなるべく大きくなるようにサンプルを設計したいときは、対数変換することで不利になります。このあたりを考えて対数変換するかどうかを判断するとよいでしょう。

 

以上です。

質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。

タイトルとURLをコピーしました