Почему функция glm вернула это предупреждение: glm.fit: подобраны вероятности, численно 0 или 1 - PullRequest
0 голосов
/ 08 мая 2020

Я создал несколько искусственных данных для проведения регрессионного анализа.

n=500
set.seed(100)
x1=seq(from=-3,to=3,length.out = n)
a=rnorm(n,mean=0,sd=0.2)
z=1+2*x1+a
p=1/(1+exp(-z))
y=(p>=(runif(n,min=0.4,max=0.6)))*1
X=data.frame(x1=x1,y=y)
K=glm(formula=y~x1,data=X,family=binomial(link="logit"))
p_fit=1/(1+exp(-(K$coefficients[1]+K$coefficients[2]*x1)))

ggplot()+xlab("x1")+ylab("y")+facet_grid()+
  geom_point(data=data.frame(x1,y), aes(x=x1, y=y),size=4)+
  geom_line(data=data.frame(x1,p), aes(x=x1, y=p,color='simulation'),size=1.2)+
  geom_line(data=data.frame(x1,p_fit), aes(x=x1, y=p_fit,color='fit'),size=1.5)+
  theme(legend.position =c(0.8,0.5),legend.title = element_blank())+
  scale_color_manual(values =c(rgb(1,0,0),rgb(0,0.2,1)))

R возвращает предупреждение:

Warning message:
glm.fit: fitted probabilities numerically 0 or 1 occurred 

Как избежать этого предупреждения?

data and fit

...