【发布时间】:2020-08-08 15:17:04
【问题描述】:
我正在使用标准化和转换后的数据集运行 GLM 分析,但遇到如下警告消息。
glm.fit:拟合概率为 0 或 1 glm.fit:算法没有收敛 glm.fit: 拟合概率为 0 或 1
然后,我创建了一个模拟数据框,并以与实际数据集相同的方式运行它,并且没有任何警告。 下面是我的代码和模拟数据集 任何帮助,将不胜感激! 谢谢!
library(tidyverse)
library(broom)
data <- data.frame(B = c("m","m","m","m","m", "m", "f","f","f","f","f"),
G= c("s","s","s","u","u", "u", "k","k","k","r","r"),
g1 = c(35, 2, 3, 4, 5, 6, 7, 10, 12, 41, 76),
g2 = c(20, 2, 7, 2, 8, 5, 5, 3, 7, 2, 12),
g3 = c(5, 0, 4, 5, 2, 4, 8, 9, 20, 1, 11,
g4 = c(1,3,4,5,7,3,1,5,7,3,10),
g5= c(20,23, 27, 35, 12, 10, 17, 24, 21, 15, 16)))
data %>%
pivot_longer(-c(1:3)) %>%
group_split(name) %>%
set_names(nm = map(., ~ first(.x$name))) %>%
map(~ tidy(glm(factor(data$B) ~ value,family="binomial", data = .))) %>%
map(~ filter(., p.value > 0.05)) %>%
bind_rows(.id = "var")```
【问题讨论】:
标签: r