被説明変数が小さい方か,大きい方か,どちらかで打ち切られている場合の回帰分析です。先の中古車オークションの例で,中古車価格priceが,130万円以上については,「130以上」とだけ記載されていた場合,トービットモデルというのを使います。以下をやってください。
- d01の変数priceの130以上をすべて130に変換する。
- ちゃんと変換されたか確認してみる
- OLS(lm)で回帰してみる
- トービットモデルで回帰してみる
d01\$price[d01$price>130]<-130
hist(d01$price)
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のケースと同じです。