【发布时间】:2021-01-26 05:08:47
【问题描述】:
我有一个如下所示的数据集:
Act Day Sin
1 1 Monday 3
2 0 Tuesday 0
3 0 Wednesday 1
我正在尝试对 Act 列进行线性回归。我读到了虚拟变量,所以我每天都在添加列,如下所示:
data$Mon = ifelse(data$Day=="Monday", 1, 0)
... and so on for the other days
这给了我这样的数据
Act Day Sin Mon Tue Wed Thu Fri Sat
1 1 Monday 3 1 0 0 0 0 0
2 0 Tuesday 0 0 1 0 0 0 0
3 0 Wednesday 1 0 0 1 0 0 0
... and so on
然后当我尝试像这样创建我的模型时:
glm.fit <- glm(Activity ~ Mon, data = data, family = binomial)
我收到以下错误:
Error in eval(family$initialize) : y values must be 0 <= y <= 1
我查看了很多关于此错误的其他帖子,他们都建议将 y 值设为 1 和 0。但是我的“星期一”列已经是 0 和 1 的值。我做错了什么?
【问题讨论】:
-
typeof(data$Activity)、typeof(data$Activity)和range(data$Activity)返回什么?错误来自binomial()$initialize,它在前几行进行检查。可能尝试检查with(data, any(Activity < 0 | Activity > 1))。