全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3796 6
2014-11-12
各位老师:
求助Censored Regression Models用R如何实现。具体的例子在伍德里奇计量经济学导论第五版(英文版),第611页,Example 17.4 Duration of Recidivism。要求可以用R来实现出例子中的结果。谢谢。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-11-13 04:37:14
提示: 作者被禁止或删除 内容自动屏蔽
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-11-13 13:37:25
谢谢老师。我给你论坛币,还是别的资源?太谢谢老师了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-11-14 20:28:39
thankyou
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-8-22 11:10:10
謝謝樓主
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-10-28 14:46:52
我也遇到这个问题,花了一些时间解决了。与各位分享。
二楼把censReg函数的help文档发出来有什么用,还一堆人感谢,根本不解决问题。

censReg函数有很大的缺陷,不能用向量设置截取上下限,只支持标量设置。这个例子的截取项是log(follow),对每个样本都不一样,所以不能使用censReg函数,要使用AER包中的tobit函数。

但是这里有两个小坑,不仔细的同学会得不到正确的结果。
因为有几个样本的durat是1,取对数后就是0,tobit函数默认的下限就是0,如果不特别设置的话,这几个样本点会被当做下限点处理,
但是这个例子只有上限,没有下限,所以要把下限设定为任意负数。
因变量已经给出了ldurat,有的同学会直接使用这个因变量。但是数据中的ldurat只保留了7位小数,而例子中的截取上限log(follow)是需要我们自行计算的,由于原始数据的精度问题,会导致部分上限样本没有按照上限点处理。
我们把ldurat自行计算,覆盖掉原始数据,或者也可以在设置截取上限的时候,减去一个很微小的量。就可以得到正确的结果。

代码如下:把数据载入,attach一下。
ldurat <- log(durat)  #原始数据精度不够,会出错,覆盖掉。
expr <- ldurat ~ workprg + priors + tserved + felon + alcohol + drugs + black + married + educ + age
library(AER)
m1 <- tobit(expr,  left = -Inf, right = log(follow))
summary(m1)
就可以看到和书上一样的结果了。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群