log(x+1)の代わりに何を使うべきか?

Marc Bellemareが表題のMetrics Monday(原題は「What to Do Instead of log(x +1)」)で、ゼロ値の多いサンプルで対数を取りたい場合の対処法として、以下の4つを挙げている

  1. x=0の観測値は無視してlog(x)を使う
    • xが実験的に割り当てられているならばそれで問題はないが、大抵の場合はxはランダムではないので、ゼロ値を単純に落とすとサンプルに選択が生じ、発見の外的妥当性を制約する。
  • 単にxを使う
    • それができるならばこの記事は読まない、というところだろうが、真面目な話、対数を取ることがどうしても必要な時がある。同僚のJason Kerwinの経験則によれば金融変数はすべて対数化する必要があるし、コブ=ダグラス関数や超越対数生産関数を推計したい場合もある。
  • log(x + 1)、log(x + 0.001)、等を使う
  • より新しい、広く受け入れられた手法である逆双曲線正弦変換をxに掛ける
    • 具体的な関数形は IHS(x) = ln(x + \sqrt(x^2 + 1))
      • cf. ここ。正式にはarsinhと表記するが、Bellemareはinverse hyperbolic sineの略としてIHSと表記している。

Bellemareによれば、最後の手法については7年前にWCIブログでFrances Woolleyが紹介していたので皆が知っていると思ったが、そうでもなさそうなので、同僚の勧めもあり今回Metrics Mondayで取り上げたとの由。ちなみにWoolleyは、特に資産データにおける変換の必要性を強調しており、同データの歪みを表す端的な例として、一人のオプラ・ウィンフリーによって独身のアフリカ系米国人女性であることの影響に関する推計がまったく変わってしまう一方で、資産を持たない人が多数いることを挙げている。


BellemareはIHS変換の特長として以下の3点を挙げている。

  1. 対数と同様に振る舞う
  2. 値がゼロの観測値を維持する
  3. 必要とあらば、値が負の観測値も維持する
    • 必要となる例:市場向け余剰(生産−消費)

また、欠点としては以下の2点を挙げている。

  1. Martin Ravallionが指摘するように、どこでも凹というわけではない(負の値においては凸になる)。そのため、貧困や格差を調べる際にピグー・ドールトンの移転原理*1を満たさないことになる。
  2. ざっと調べた範囲では、IHS変換を掛けた変数の係数から弾力性を導出する方法は存在しない。

Bellemareは、Ravallionが指摘するような欠点はあるものの、それ以外の用途としては十分ではないか(特に直接の興味の対象ではないコントロール変数に使う場合は)、と述べている。またエントリの最後ではIHS変換関連の幾つかの論文にリンクしている。