トービットモデル
トービットモデルについて。
まだ勉強中で、間違っているところがあるかもしれないが、メモ。
それでは、どのように普通の回帰分析と結果が異なるのか。簡単に実験してみた。
まず、独立変数x(平均3000、標準偏差1000)と従属変数y(平均3000、標準偏差1000)が相関0.6くらいになるように乱数(n=1000個)を発生させる。
そこで、xが2500以下の場合、yを0とする(打ち切り)。
このデータは、上のpdf中のプロット図を作成した手順と同じである。
このデータにおいて、回帰分析とトービットモデルによる分析を回してみて、その係数および標準誤差を取り出す。
以上を1000回繰り返す事で、どのように回帰分析とトービットモデルのxの係数が異なるのかを確認する。
なお、青色が回帰分析の係数、赤色がトービットモデルの係数である。
これをみると、赤色、すなわちトービットモデルの係数の方が大きくなる傾向にある事がわかる。
この傾向は、独立変数xと従属変数yの相関係数をいろいろいじっても変わらなかった。
よって、今回の実験からは、トービットモデルは通常の回帰分析の係数よりも、大きくなる傾向にある事がわかった。
なお、そのコードは以下の通り。
library(AER) #トービットモデルのパーケッジ
N<-1000 #試行回数
b_lm<-numeric(N) #回帰分析の係数収納
b_tobit<-numeric(N) #トービットモデルの収納
for(i in 1:N){
n<-1000 #サンプル数
y<-rnorm(n,mean=3000,sd=1000) #従属変数
r<-0.6
z<-rnorm(n,mean=3000,sd=1000)
x<-r*y+sqrt(1-r^2)*z #独立変数
y<-ifelse(x<=2500,0,y) #xが2500以下で打ち切り
data<-data.frame(cbind(x,y))
lm<-summary(lm(y~x)) #回帰分析
tobit<-summary(tobit(y~x)) #トービットモデル
b_lm[i]<-lm$coefficients[2] #回帰分析の係数を収納
b_tobit[i]<-tobit$coefficients[2] #トービットモデルの係数を収納
}
#図示
library(ggplot2)
g1<-ggplot()
g1<-g1+geom_histogram(mapping=aes(x=b_lm),colour="blue",alpha=0.5) #回帰分析の係数(青色)
g1<-g1+geom_histogram(mapping=aes(x=b_tobit),colour="red",alpha=0.5,position="identity") #トービットモデルの係数(赤色)
print(g1)