したがって、私は survreg を使用しており、予測結果が 0 の下限に従うことを期待していますが、頻繁に負の結果を示しています。私が作成しようとしている生存モデルではなく、何らかの形で線形の結果を推定していると思います。これが私がやったことです:
linear.first.stage<-lm(y ~ x, data=clip)
最初に、推定プロセスを高速化するためにいくつかのポイントを推定しました。この最初の段階がないと収束しません。tobit 回帰の明示的な例を提供する ?survreg のコードに従って、サバイバル オブジェクトを作成します。これを x と y について以下に複製しました。私のデータセットでは、y は非負の値でしか観測できませんが、正の場合は、sd が 20 程度で 200 前後に正規分布する傾向があります。X は任意の値をとることができ、理論的には拘束されません。すぐに頭に浮かぶ特定の番号で。
surv_y<-Surv(clip$y, clip$y>0,type="left")
first.stage<-survreg(surv_y ~ x,init=(linear.first.stage), dist="gaussian", data=clip)
Tobit と同等の生存回帰を実行します。イベントの解釈が同じであることを確認するために、次のコマンドを実行しました。
test<-tobit(y~x, left=0, right=Inf, dist="gaussian", data=clip)
p_test<-predict(test)
p<-predict(first.stage)
plot(p_test-p)
プロットはゼロで平坦な線を示しているため、目視検査では、これらのコマンドは同じである必要があります。ただし、どちらの場合も、0 未満の結果が予測されます。観測可能な情報の左方向の境界は 0 であると述べたので、これは問題です。私の期待は、すべての予測値が >0 でなければならないということです。
タイプ「リンク」、「応答」、「線形」を使用して予測しようとしましたが、役に立ちませんでした。予測コマンドは、検閲が発生していないかのように結果を生成していると思います。0 の下限に従う予測を生成するにはどうすればよいですか?
参考文献: