【发布时间】:2021-02-06 21:47:38
【问题描述】:
我正在尝试使用 glmer function 在程序 R 中使用 lme4 package 运行逻辑回归。
但是,每次我运行回归时都会出错:
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, 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,
2.2, 9.32, 9.3, 0, 0), NumFeeder = c(14, 5, 1, 0, 1, 1)), row.names = c(NA,
6L), class = "data.frame")
【问题讨论】:
-
你知道你的 y 变量是什么吗?
-
注意
speed是一个连续变量speed = c(116.999313, 128.9319019, 164.6205906, 141.6179845, 209.5512926, 159.5864867 ),在这种情况下考虑线性回归。 -
@MiguelTrejo 是对的。如果您的目标变量是数字,您可以运行线性回归。如果目标变量是包含不同值的类,那么您可以对该数据应用逻辑回归。 stackoverflow.com/questions/12146914/…
-
也许您正在尝试拟合非线性混合效应模型?例如见asancpt.github.io/nlme/chapter-6.html
-
谢谢你,@MiguelTrejo。总是容易被忽视。
标签: r regression