【问题标题】:Error: please supply starting values错误:请提供起始值
【发布时间】:2015-09-29 07:30:57
【问题描述】:

我在 R 中进行对数二项式回归。我想控制模型中的协变量(年龄和 BMI - 两个连续变量),而因变量是结果(是或否),自变量是组(1 或2)。

fit<-glm(Outcome~Group, data=data.1, family=binomial(link="log"))

而且效果很好。

当我尝试将年龄放入模型中时,它仍然可以正常工作。 但是,当我将 BMI 放入模型时,它给了我以下信息:

Error: no valid set of coefficients has been found: please supply starting values

我尝试过不同的起始值组合,例如:

fit&lt;-glm(Outcome~Group+Age+BMI, data=data.1, family=binomial(link="log"), start=c(0,0,0,0) 甚至 start=(1,4) 或 start =4 但它仍然给我错误。

它还说:

Error in glm.fit(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  : 
  length of 'start' should equal 4 and correspond to initial coefs for c("(Intercept)", "group1", "age", "bmi")

对此的任何帮助将不胜感激!

已编辑:添加可重现的示例。

N=50
data.1=data.frame(Outcome=sample(c(0,0,1),N, rep=T),Age=runif(N,8,58),BMI=rnorm(N,25,6),
                  Group=rep(c(0,1),length.out=N))
data.1$Group<-as.factor(data.1$Group)
fit<-glm(Outcome~Group, data=data.1, family=binomial(link="log"))
coefini=coef(glm(Outcome~Group+Age+BMI, data=data.1,family =binomial(link = "logit") ))
fit<-glm(Outcome~Group+Age+BMI, data=data.1, family=binomial(link="log"),start=coefini)

【问题讨论】:

  • typeof(data.1$BMI) 是什么?
  • 你为什么使用日志链接而不是 logit?
  • typeof(data,1$BMI) 是双倍的。
  • 我使用日志链接而不是 logit,因为我想要相对风险估计而不是优势比。这是正确的方法吗?
  • 看看这篇帖子stats.stackexchange.com/questions/8661/…的cmets,看来OR是更好的建模方式。

标签: r error-handling regression glm


【解决方案1】:

经过反复试验,使用set.seed(123)

coefini=coef(glm(Outcome~Group+Age, data=data.1,family =binomial(link = "log") ))
fit2<-glm(Outcome~Group+Age+BMI, data=data.1, family=binomial(link="log"),start=c(coefini,0))

summary(fit2)

Call:
glm(formula = Outcome ~ Group + Age + BMI, family = binomial(link = "log"), 
    data = data.1, start = c(coefini, 0))

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.2457  -0.9699  -0.7725   1.2737   1.6799  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.5816964  1.0616813  -1.490    0.136
Group1       0.4987848  0.3958399   1.260    0.208
Age          0.0091428  0.0138985   0.658    0.511
BMI         -0.0005498  0.0331120  -0.017    0.987

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 65.342  on 49  degrees of freedom
Residual deviance: 63.456  on 46  degrees of freedom
AIC: 71.456

Number of Fisher Scoring iterations: 3

【讨论】:

  • 感谢您的提问和回答!我一直在尝试使用 R 来测试与具有日志链接函数的二项式结果变量的关联,并且还不断收到“没有有效的集合......”错误。看起来这个解决方案也适用于我。
  • 两者都赞成。我不认为它会让我再次投票。 :)
猜你喜欢
  • 2012-08-03
  • 2016-06-07
  • 1970-01-01
  • 1970-01-01
  • 2021-03-01
  • 2017-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多