评估分数Logit模型 - McFadden的调整R ^ 2

时间:2016-06-09 10:10:05

标签: stata glm

我正在估算一个模型,其中因变量是一个分数(介于0和1之间)。我使用了Stata 14.1中的命令

glm y x, link(logit) family(binomial) robust nolog

以及

fracreg logit y x, vce(robust)

两个命令都会提供相同的结果。

现在我想评估结果,最好用McFadden调整后的r ^ 2。然而,在我运行回归之后,fitstatestat gof似乎都无法工作。我收到错误消息fitstat does not work with the last model estimatednot available after fracreg r(321)

你们有没有人知道McFadden调整后的r ^ 2的另一个命令? 或者我必须使用不同的评估方法吗?

2 个答案:

答案 0 :(得分:1)

看来fracreg输出中出现的伪R平方是McFadden的伪R平方。我不确定这是否与您提到的McFadden的调整后的 r ^ 2相同。

根据@ nick-cox post on Stata.com的建议,您可以看到McFadden的伪R-squared调查maximize命令。在maximize的参考手册,第1478页(Stata 14)中,它说:

  

令L1为完整模型的对数似然(即输出中显示的对数似然值),并且让L0为“仅恒定”模型的对数似然。 ...伪R2(McFadden 1974)定义为1-L1 / L0。这只是比例上的对数似然,其中0对应于“仅恒定”模型,1对应于离散模型的完美预测(在这种情况下,整体对数似然为0)。

如果您正在寻找此项,则可以使用

取出此值
fracreg logit y x, vce(robust)
scalar myRsquared =  e(r2_p)

答案 1 :(得分:0)

要调整McFadden的R ^ 2,您只需要从小数部分的分子中减去完整模型对数似然的预测变量数。公式为here。请注意,您可能会得到负值。

您可以这样做:

set more off
webuse set http://fmwww.bc.edu/repec/bocode/w
webuse wedderburn, clear 

/* (1) Fracreg Way */
fracreg logit yield i.site i.variety, nolog
di "Fracreg McFadden's Adj. R^2:" %-9.3f 1-(e(ll)-e(k))/(e(ll_0))

/* (2) GLM Way */
glm yield, link(logit) family(binomial) robust nolog // intercept only model
local ll_0 = e(ll)
glm yield i.site i.variety, link(logit) family(binomial) robust nolog // full model
di "McFadden's Adj. R^2: " %-9.3f 1-(e(ll)-e(k))/`ll_0'

GLM R ^ 2会略有不同,因为最大化算法是不同的,因此可能性也会不同。我不确定如何调整ML选项以使它们完全匹配。

您可以使用fitstat工作的命令验证我们是否正确执行了操作:

sysuse auto, clear
logit foreign price mpg
fitstat
di "McFadden's Adj. R^2: " %-9.3f 1-(e(ll)-e(k))/(e(ll_0))