r - eval 中的 glm 错误(family$initialize):y 值必须是 0 <= y <= 1 但值是 0 和 1
问题描述
我有一个如下所示的数据集:
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 的值。我做错了什么?
解决方案
我将我的因变量包装成一个 as.factor 并且有效:
glm.fit <- glm(as.factor(Activity) ~ Mon, data = data, family = binomial)
推荐阅读
- android - 无法使用 dPad(或遥控器)在 ListView 中导航/选择
- c# - WPF InkCanvas - 一些未收集的笔画
- r - R - 展平列表中的数据框
- java - 计算具有重复项的数组列表中每个不同的数组出现次数
- android - Jplayer 无法在 Android Webview 中播放
- sql - SQL Select Columns WHERE value IN GROUP BY Clause BY Distinct
- android - 无法在 android 中使用 google play 服务启动定位服务
- html - 你如何使图像高度适合它旁边的列的内容?
- node.js - 使用 node-soap 设置 WSSecurity 时输出错误
- integration - 数学或python中的轨道