自举逻辑模型 - 一些子集不收敛

bootstrapping logistic model - some subsets do not converge

我想要 bootstrap 逻辑模型。具有整个数据集的模型收敛得很好。然而,引导函数选择不再收敛的子集。我能做什么?

library(boot)
set.seed(2)
y <-  c(rep(0,10),rep(1,10))
x <- c(rnorm(10,2,1),rnorm(10,6,1))
dat = data.frame(x, y)

fit <- glm(y ~ x, quasibinomial(), data=dat)           # Model with all data workes fine

bs <- function(data, indices) {
  d <- data[indices,]
  fitboot <- glm(y ~ x, family = quasibinomial(), data=d)
  return(coef(fitboot)) 
} 

results <- boot(data=dat, statistic=bs, R=10)          # I get warnings

我收到警告说:

1: glm.fit: algorithm did not converge 
2: glm.fit: algorithm did not converge 
3: glm.fit: algorithm did not converge 
4: glm.fit: algorithm did not converge 

这似乎是由于选择的子集。

有趣的是这个子集有效:

 fit <- glm(y ~ x, quasibinomial(), data=dat[1:13,]) 

但这不是:

 fit <- glm(y ~ x, quasibinomial(), data=dat[1:14,]) 

这是为什么?我可以对 bootstrap 这个模型做些什么?

也许尝试获取 Wilcox 包的源代码,它有几个允许引导的功能。 http://dornsife.usc.edu/labs/rwilcox/software/。也许它还为您提供了其他有用的功能,以便将来使用。

迭代重新加权最小二乘算法在默认的 25 次迭代中未能收敛。如果您增加迭代次数,警告就会消失,如下所示:

fitboot <- glm(y ~ x, family = quasibinomial(), data=d,
               control=glm.control(maxit=50))