泊松回归错误,log link 和因子作为结果
Error with Poisson regression with a log link and factor as outcome
我在尝试 运行 泊松回归 link = "log"
时遇到了一些问题:
model <- glm(formula = var1 ~ var2,
family = poisson(link = "log"),
data = a)
var1
是一个分类变量(class:因子),有两个类别:“有抑郁症”和“没有抑郁症”。
var2
是另一个具有四个年龄类别的分类变量(class:因子)。
此错误不断出现:
Error in if (any(y < 0)) stop("negative values not allowed for the 'Poisson' family") :
missing value where TRUE/FALSE is necessary.
Warning message:
In Ops.factor(y, 0) : '<' not meaningful for factors
当我用运行型号family = binomial
时,问题没有出现。
正如评论所说,你的结果是二元的,所以你可能想坚持使用逻辑回归,或者使用 log link 的二项式回归。
但在某些情况下,使用二元结果的泊松回归是合适的。在这种情况下,您需要将结果重新编码为数字(0 对 1),因为在 R 泊松回归中不能使用因子作为结果。
要了解错误消息,泊松回归之前 R 将检查响应中的负值。但是有一个因素作为结果 y<0
returns NA
,这会导致测试失败。
我在尝试 运行 泊松回归 link = "log"
时遇到了一些问题:
model <- glm(formula = var1 ~ var2,
family = poisson(link = "log"),
data = a)
var1
是一个分类变量(class:因子),有两个类别:“有抑郁症”和“没有抑郁症”。
var2
是另一个具有四个年龄类别的分类变量(class:因子)。
此错误不断出现:
Error in if (any(y < 0)) stop("negative values not allowed for the 'Poisson' family") :
missing value where TRUE/FALSE is necessary.
Warning message:
In Ops.factor(y, 0) : '<' not meaningful for factors
当我用运行型号family = binomial
时,问题没有出现。
正如评论所说,你的结果是二元的,所以你可能想坚持使用逻辑回归,或者使用 log link 的二项式回归。
但在某些情况下,使用二元结果的泊松回归是合适的。在这种情况下,您需要将结果重新编码为数字(0 对 1),因为在 R 泊松回归中不能使用因子作为结果。
要了解错误消息,泊松回归之前 R 将检查响应中的负值。但是有一个因素作为结果 y<0
returns NA
,这会导致测试失败。