1

可能重复:
为什么我会收到“算法不收敛”和“用 glm 拟合概率为 0 或 1”的警告?

我正在尝试使用以下数据与响应变量y1作为分类来拟合 glm。该代码给了我以下警告消息:

glm.fit: fitted probabilities numerically 0 or 1 occurred

有时,它确实给了我错误

glm.fit: algorithm did not converge

从数据可以看出,预测变量和响应变量之间存在明显的关系。

  1. 是因为数据点数量较少而导致“未收敛”错误吗?

  2. glm正在将响应变量转换为因子,如下所示。这是正常的吗?

  3. 有一个x1x2值,我怎么知道响应?

      x1 = c(runif(10,50,100) , runif(10,101,150) )
      x2 = c(runif(10,1,50) , runif(10,51,100) )
      y1 = c(rep('n',10), rep('y',10)) 
      tmpData = data.frame(x1,x2,y1)
      tmpData
      str(tmpData)
      model <- glm(formula = 'y1~x1+x2', family=binomial(), na.action=na.omit, data=tmpData)
      summary(model) 
    
     >str(tmpData)
    'data.frame':   20 obs. of  3 variables:
     $ x1: num  97.9 90.3 62.1 76 63.5 ...
     $ x2: num  18.6 49.4 21.2 47.7 24.8 ...
     $ y1: Factor w/ 2 levels "n","y": 1 1 1 1 1 1 1 1 1 1 ...
    
4

0 回答 0