#5トービットモデル

被説明変数が小さい方か,大きい方か,どちらかで打ち切られている場合の回帰分析です。先の中古車オークションの例で,中古車価格priceが,130万円以上については,「130以上」とだけ記載されていた場合,トービットモデルというのを使います。以下をやってください。

  1. d01の変数priceの130以上をすべて130に変換する。
  2. d01\$price[d01$price>130]<-130

  3. ちゃんと変換されたか確認してみる
  4. hist(d01$price)

  5. OLS(lm)で回帰してみる
  6. トービットモデルで回帰してみる

R Tips

Rでトービットモデルを使う場合は,パッケージVGAMに入っているvglmという関数を使います。d00というデータフレームに入っているyという変数にx1,x2,x3を回帰させる場合,もし,yが0以下はすべて0となっているようなデータの場合,

vglm(price~x1+x2+x3,tobit(Lower=0))

とします。逆にyが100以上はすべて100となっているような場合,

vglm(price~x1+x2+x3,tobit(Upper=100))

とします。もちろん,

vglm(price~x1+x2+x3,tobit(Lower=0,Upper=100))

とすることも可能です。
ただし,vglm関数の出力に対して,step関数が使えないので,手動でAICの小さいモデルを選択する必要があります。
パッケージVGAMをインストールして,Rに読み込む手順については,前回のパッケージMASSのケースと同じです。

おすすめ