分位点回帰をRで使う。

久々にRの話でも。

分位点回帰を最近使う機会があったので、Rでどうやるんだっけ?って話をします。

P5020882

1. そもそも分位点回帰ってなに?

普通の回帰分析は条件付きの平均を予測するモデルになっているわけですが、分位点回帰の場合には、指定したパーセンタイル点を予測します。

つまり、50%と指定すれば中央値を予測する事が出来るわけです。

そして、90%と指定すれば分布の裾の部分の値を予測することが出来るわけです。

これが出来ると何がうれしいんでしょうか?

例えば、パーセンタイルを10%から90%まで10%刻みで指定して分位点回帰を解いたとすれば、要因xがyのある分位点をどの位変化させたか?という事を分析結果として得ることができます。(endogeneityとかは考えないとして)

その結果として、10 – 80%では推定されたパラメーターの値がかなり小さいが、90%ではパラメーターの値が大きく得られるといったような分析結果を得ることができるかもしれません。

つまり、複数の分位点の変化を分析することで分布全体の変化を大まかに得ることが出来、平均のみに着目していた場合などには見落としているような関係性を見ることが出来るかもしれないわけです。

他にも外れ値に大きない影響を受けない等の特性もあったりするようです。(参照)

ちゃんと勉強したい人はまずこれの7章から入るのが良いのではないかと思います。

 

2. Rでどうするの?

quantregというパッケージがあります。

単純に分位点回帰をしたいだけであれば以下のように推定することが可能です。

data(engel)
engel_rq_res <- rq(formula = foodexp ~ income, data = engel, tau = seq(0.1, 0.9, 0.1))
plot(engel_rq_res)

engel_rq

plotを投げると各分位点において推定されたパラメーターを変数ごとにプロットしてくれます。赤い点線はOLSによる推定結果で、平均のみに着目した際に入手する結果という感じでしょうか。

カテゴリー: 未分類 パーマリンク

コメントを残す