评估分数 Logit 模型 - 麦克法登调整 R^2



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

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

以及

fracreg logit y x, vce(robust)

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

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

你们中有谁知道麦克法登调整后的 r^2 的替代命令吗?还是必须使用其他评估方法?

似乎出现在fracreg输出中的伪 R 平方是麦克法登的伪 R 平方。我不确定这是否与您提到的麦克法登调整后的 r^2 相同。

你可以看到这是麦克法登的伪R平方,从调查maximize命令中可以看出,正如@nick-cox在 Stata.com 上的帖子所建议的那样。在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)

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

您可以

通过以下方式执行此操作:

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))

最新更新