# Synthetic complete separation; base R. No finite ML slope exists.
x <- c(-3,-2,-1,1,2,3)
y <- as.integer(x > 0)
print(table(x > 0, y))
for (b in c(1,2,5,10)) {
  p <- plogis(b*x)
  loglik <- sum(ifelse(y == 1, log(p), log1p(-p)))
  cat(sprintf("slope=%g loglik=%.6f\n", b, loglik))
}
# Deliberately do not report the last optimizer iterate as an ML estimate.
