我想估计一个响应的协变量效应,其值取[0,1]中的值 . 也就是说,响应变量的值存在于0-1(包括)之间 . 我想使用Papke和Wooldridge(1996)描述的分数logit模型,见下文:

http://faculty.smu.edu/millimet/classes/eco6375/papers/papke%20wooldridge%201996.pdf

是否有R函数(或库)来促进分数logit模型的估计?我可以用某种方式修改 glm() 吗?

编辑的问题从这里开始

我很欣赏@Jibler的评论 - 这可以从分数logit模型得到估计的beta值 . 但是,正如@Ben指出的那样,鉴于此规范,将无法正确估计SE .

我认为这是一个更受欢迎的经济学模型,因此STATA期刊撰稿人对此进行了很好的讨论:http://fmwww.bc.edu/EC-C/S2013/823/EC823.S2013.nn06.slides.pdf http://www.stata.com/meeting/germany10/germany10_buis.pdf

我能够从Papke和Wooldridge 401k计划示例中获取数据(见下文) . 在我看来,至少在分数logit模型中的稳健性是通过方差的三明治估计 - Papke和Wooldridge的方程(9)得到的 . 也就是说,等式(10)继续展示如何通过将估计的 vcov 矩阵与标准 glm(...,family=binomial(link=logit)) 拟合乘以Pearson残差的估计来获得稳健性 .

Buis的幻灯片似乎使用参数vce(robust)实现了小数logit估计器的形式 . 这些与R中 sandwich() 函数的应用完全一致,与标准二项GLM相符 . 我假设,但我不确定,因为我只是 robust 的论点?如果有人拥有STATA并且可以检查这将有所帮助 . family=quasibinomial GLM给出的模型给出了略微不同的SE估计值 . 但它似乎也是分数logit模型的均值/方差参数的合理估计 .

下面是一些R代码,它复制了上面Buis文章中给出的数据拟合(它还显示了准二项式模型如何给出略微不同的SE估计):

##
## Replicate what some STATA Journal editors call "fractional logit"
## get data from: "http://fmwww.bc.edu/repec/bocode/k/k401.dta" 
##
library(sandwich)
library(foreign)

X <- read.dta("F:/ProportionsDepVar/k401.dta")
class(X)
names(X)
dim(X)
X$totemp1 <- X$totemp/10000

glmfit <- glm(prate ~ mrate + totemp1 + age + sole, family=binomial(link=logit), data=X)
summary(glmfit)

##
## And the SE's are off here and biased large
## Use sandwich estimator instead
##
sand_vcov <- sandwich(glmfit)
sand_se <- sqrt(diag(sand_vcov))
robust_z <- glmfit$coef/sand_se
robust_z

##
## Quasi binomial fit is close to replicating SE's
##
flogit1 <- glm(prate ~ mrate + totemp1 + age + sole, family=quasibinomial(link=logit), data=X)
summary(flogit1)

所以...感谢@Ben提供有用的建议 . 我的观点是 family=quasibinomialsandwich 库在估算R中的分数logit模型(由Papke和Wooldridge的等式(9)或(10)定义)中的鲁棒SE方面做得很好 . 如果这个结论不正确,请赞赏评论/批评 .