2012-08-06 124 views
0

簡單的問題我想不通。我試圖從包含交互的模型中生成條件預測概率。例如,我希望能夠比較x2 == 1和x3 == 0的預測概率與x2 == 0和x3 == 1的預測概率。使用glm的條件預測概率

我試圖做到這一點,如下所示:

model <- glm(y~x1 + x2 * x3, family=binomial(link="logit"), data=data) 
predprob1 <- predict(model, type="response", newdata=(x1=mean(x1) & x2==1 & x3==0)) 
predprob2 <- predict(model, type="response", newdata=(x1=mean(x1) & x2==0 & x3==1)) 
probdiff<-predprob1-predprob2 

在那之後,我需要計算95CI爲probdiff。我相信這對你來說很簡單。感謝您的幫助!

+0

正如所提出的,該問題承認沒有可能的解決方案,因爲glm與默認的高斯分佈不會產生概率估計。由於您沒有在'newdata'參數中包含所有預測值(並且您已將其錯誤地命名),因此您也可能因此得到原始數據(或錯誤)的估計值。 – 2012-08-06 18:10:47

+0

嗨,我在補充我認爲應該幫助的補充內容?我試圖將X1設置爲平均值,但也許代碼也是錯誤的。 – roody 2012-08-06 18:13:37

+0

您仍然不提供'newdata'數據框對象,並且即使您提供了正確的類,您也不會爲其分配mean(x1)名稱(即'x1')的結果。 – 2012-08-06 18:26:23

回答

0

也許(在沒有工作實施例的未測試):

model <- glm(y~x1 + x2 * x3, family=binomial(link="logit"), data=data) 
predprob1 <- predict(model, type="response", 
        newdata=with(data, data.frame(x1=mean(x1) & x2=1 & x3=0)) 
predprob2 <- predict(model, type="response", 
        newdata=with(data, data.frame(x1=mean(x1) & x2=0 & x3=1)) 
probdiff <- predprob1-predprob2 

其他R-誤差是使用 '==' 用於分配。這是爲了邏輯測試。