RのrandomForestパッケージ(Rバージョン2.13.1、randomForestバージョン4.6-2)を回帰に使用していて、結果に大きなバイアスがあることに気付きました。予測エラーは応答変数の値に依存しています。高い値は予測不足であり、低い値は予測過剰です。最初はこれが私のデータの結果であると疑いましたが、次の簡単な例は、これがランダムフォレストアルゴリズムに固有であることを示唆しています。
n = 1000;
x1 = rnorm(n, mean = 0, sd = 1)
response = x1
predictors = data.frame(x1=x1)
rf = randomForest(x=predictors, y=response)
error = response-predict(rf, predictors)
plot(x1, error)
バイアスは応答の分布に依存していると思います。たとえば、x1
均一に分布している場合、バイアスはありません。場合x1
指数関数的に分布され、バイアスは片側です。基本的に、正規分布の裾での応答の値は異常値です。モデルが外れ値を予測するのが難しいのは当然のことです。randomForestの場合、分布の裾からの極端な大きさの応答値は最終的にリーフに到達する可能性が低くなり、その効果はアンサンブル平均では洗い流されます。
前の例「R線形回帰の尾のランダムフォレストmtry」でこの効果をキャプチャしようとしたことに注意してください。これは悪い例でした。上記の例のバイアスがアルゴリズムに本当に固有のものである場合、予測しようとしている応答分布を前提としてバイアス補正を定式化でき、より正確な予測が得られます。
ランダムフォレストなどのツリーベースの方法は、応答分布バイアスの影響を受けますか?もしそうなら、これは以前に統計コミュニティーに知られていますか、そしてそれは通常どのように修正されますか(例えば、バイアスされたモデルの残差を入力として使用する2番目のモデル)?
本来、応答は不明であるため、応答依存バイアスの修正は困難です。残念ながら、推定/予測応答はバイアスと同じ関係を共有しないことがよくあります。