gpt4 book ai didi

r - 为什么当 # 失败次数为负数时逻辑回归仍然有效?

转载 作者:行者123 更新时间:2023-12-02 08:42:18 26 4
gpt4 key购买 nike

我正在 R 中运行二项式 glm,并且在某些情况下失败次数为负数。 (出现这种情况是因为数据中存在一些测量误差)。我希望 glm 函数不适用于这些情况,因为 log(#successes/#failures) 未定义。令我惊讶的是,glm 运行并提供回归系数的估计。我不明白为什么 glm 起作用,也不明白如何解释结果。

例如:

succ=c(3,0,1,4,2,4,4,7,15,4);
fail=c(1016,1506,1285,1152,868,610,432,211,129,-4);
x_age=c(42.5,47.5,52.5,57.5,62.5,67.5,72.5,77.5,82.5,87.5);

glm(cbind(succ,fail) ~ x_age, family=binomial);

Call: glm(formula = cbind(succ, fail) ~ x_age, family = binomial)

Coefficients:
(Intercept) x_age
-14.15 0.14

Degrees of Freedom: 8 Total (i.e. Null); 7 Residual
Null Deviance: 105
Residual Deviance: 17.7 AIC: 47.3

最佳答案

基本上,我认为包作者并没有预期负数的失败或成功作为输入。这是没有意义的,你不应该这样做。

查看 R 源代码:

每个案例的观察次数是成功次数 + 失败次数。

n <- y[, 1] + y[, 2]

然后 y 被指定为成功的概率:

 y <- ifelse(n == 0, 0, y[, 1]/n)

令 $s_i$ 为成功次数。令 $f_i$ 为失败次数。

在 $s_i + f_i\neq 0$ 的情况下,我们有 $ y_i =\frac{s_i}{s_i + f_i}$。

在 $s_i + f_i = 0$ 的情况下,我们有 $y_i = 0$。

观察它的作用!在您的情况下,有 4 次成功和 -4 次失败,成功的概率设置为零!

然后它设置必须启动:

mustart <- (n * y + 0.5)/(n + 1)

令 $s_i$ 为成功次数,$f_i$ 为失败次数。总之,我们有:

如果 $s_i + f_i\neq 0$ 我们有:

$$\mu^{start}_i =\frac{s_i + .5}{s_i + f_i + 1}$$

如果 $s_i + f_i = 0$ 我们有:$$\mu^{start}_i =\frac{1}{2}$$

然后是c function logit_link 检查 Mustart 是否在 (0,1) 范围内。因此,如果您通过了 4 次成功和 -2 次失败,则会抛出错误,但不会抛出成功 + 失败 = 0 的错误。

if (x < 0 || x > 1)
error(_("Value %g out of range (0, 1)"), x);

无论如何,我不明白这与统计有什么关系。对我来说,这个 R 代码似乎有一些不完善的错误检查。

关于r - 为什么当 # 失败次数为负数时逻辑回归仍然有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40429890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com