You can’t have factor/categorical response variables.
Illustration:
> d=data.frame(f=factor(c(1,2,1,2,1,2)),x=runif(6)) > glm(f~x,data=d) Error in glm.fit(x = c(1, 1, 1, 1, 1, 1, 0.351715633412823, 0.449422287056223, : NA/NaN/Inf in 'y' In addition: Warning messages: 1: In Ops.factor(y, mu) : - not meaningful for factors 2: In Ops.factor(eta, offset) : - not meaningful for factors 3: In Ops.factor(y, mu) : - not meaningful for factors
If you really want to do a logistic regression you should change them to 0 and 1, or FALSE and TRUE, and use family=binomial
:
# recode d$f==2 as TRUE, else FALSE d$f=d$f=="2" # fit glm(f~x,data=d,family=binomial) Call: glm(formula = f ~ x, family = binomial, data = d) Coefficients: (Intercept) x -0.9066 1.8922 Degrees of Freedom: 5 Total (i.e. Null); 4 Residual Null Deviance: 8.318 Residual Deviance: 8.092 AIC: 12.09