2015-07-10 28 views
3

我正在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<-glm(Outcome~Group+Age+BMI, data=data.1, family=binomial(link="log"), start=c(0,0,0,0)甚至開始=(1,4)或開始= 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) 
+1

什麼是'typeof運算(data.1 $ BMI)'? –

+0

爲什麼使用日誌鏈接而不是logit? – AdmiralWen

+0

typeof(數據,1 $ BMI)是雙倍的。 – Tina

回答

4

一些試驗和錯誤之後,使用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 
+0

這工作!非常感謝。 – Tina

+0

謝謝你這個問題和答案!我一直試圖使用R來測試與具有日誌鏈接功能的二項式結果變量的關聯,並且還一直得到「無效集...」錯誤。它看起來像這個解決方案也適用於我。 – John

+0

Upvoted兩個。我不認爲它會讓我再次高興。 :) – John