我想估计一个响应的协变量效应,其值取[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的幻灯片似乎sandwich()
使用参数vce(robust)实现了小数logit估计器的一种形式.这些与sandwich()
R 中的函数的应用完全一致,与标准二项式GLM一致.我假设,但我不确定,因为我不是STATA,这与Baum的论点一样简单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)
Run Code Online (Sandbox Code Playgroud)
所以...感谢@Ben提供有用的建议.我的观点是,family=quasibinomial
或者sandwich
库在估算R中的分数logit模型(由Papke和Wooldridge的等式(9)或(10)定义)的鲁棒SE方面做得很好.如果这个结论不正确,请赞赏评论/批评.