微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Logistic回归错误:y值必须为0 <= y <= 1

如何解决Logistic回归错误:y值必须为0 <= y <= 1

我正在尝试使用lme4 package在程序R中使用glmer function进行逻辑回归。

但是,每次运行回归时,都会出现错误

Error in eval(family$initialize,rho) : y values must be 0 <= y <= 1

我知道这个错误告诉我,我的一个变量需要更改。我所有的变量都是数字,所以我不确定这个问题。通常,如果变量是数据帧中的字符,则会发生这种情况。

这是我的回归代码

speedmod <- glmer(speed ~ HaFP + HaFPWFeed + NumFeeder + (1|trackId),data=befacorn,family=binomial(link=logit))

这是我正在使用的数据框的头部:

    structure(list(trackId = c(100,100,13,17,17),speed = c(116.999313,128.9319019,164.6205906,141.6179845,209.5512926,159.5864867
),Encamped = c(27.04731971,26.65969681,13.82608696,11.25608907,22.45217391,32.26981099),Constrained = c(48.36738257,44.71162223,54.33043478,60.17745303,40.48695652,34.76677649),Unconstrained = c(24.58529771,28.62868095,31.84347826,28.5664579,37.06086957,32.96341252
),dist = c(33.47023812,30.73586278,40.05010243,36.29203072,46.60945598,39.90154752),NDP = c(6812.840821,1454.308521,959.0027313,971.1027189,766.8727274,654.5480648),area = c(1212.470847,58.93086937,125.1207848,63.17518578,439.2532168,182.1664135
),HaFP = c(45.05,2.2,12.49,10.2,9.6,3.1),HaFPWFeed = c(7.58,9.32,9.3,0),NumFeeder = c(14,5,1,1)),row.names = c(NA,6L),class = "data.frame")

解决方法

错误代码y values must be 0 <= y <= 1告诉您响应变量(或y)必须在0到1之间。这是因为您选择了family=binomial,用于二进制数据(0,1 )。 Logistic回归是这种回归的另一个名称。正如@MiguelTrejo在评论中所说,方程glmer(response ~ predictor1 + predictor2...)中的响应变量是连续的。

在这种情况下,选择线性模型之前,请确保您知道为什么要选择模型族:例如,参见https://stats.stackexchange.com/questions/190763/how-to-decide-which-glm-family-to-usehttp://bbolker.github.io/mixedmodels-misc/glmmFAQ.html。 输出的解释因链接函数而异(该链接函数经常随族而变化)。

此外,您的结构+ (1|trackId)表示随机截距,有关编码随机效果及其含义的信息,请参见https://stats.stackexchange.com/questions/31569/questions-about-how-random-effects-are-specified-in-lmer

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。