2014-12-31 228 views
1

我正试图确定R中来自二项logistic回归的预测概率的置信区间。该模型使用lrm(来自包rms)进行估计,以允许在调查时将聚类标准误差受访者(每个受访出现最多3次的数据):来自predict.lrm的预测概率的置信区间

library(rms) 
model1<-lrm(outcome~var1+var2+var3,data=mydata,x=T,y=T,se.fit=T) 
model.rob<-robcov(model1,cluster=respondent.id) 

我能够估计使用predict.lrm结果为预测概率:

predicted.prob<-predict(model.rob,newdata=data.frame(var1=1,var2=.33,var3=.5), 
type="fitted") 

我想确定的是此预测概率的95%置信区间。我试过指定se.fit=T,但这在predict.lrm时不允许type=fitted

我花了几个小时在网上搜索如何做到这一点与lrm无济于事(显然)。任何人都可以指出我确定这个置信区间的方法吗?或者,如果lrm模型不可能或困难,是否有另一种方法来估计具有聚类标准误差的logit,其中置信区间更容易获得?

+0

在另一个SE网站上关闭更合适。没有数据的例子,这只是一个统计问题。此外,无论如何,弗兰克更有可能在CrossValidated.com上看到它比他在这里更多。 –

+0

我不清楚哪个网站更适合这类问题。问题是关于编程,但肯定涉及stat。 –

+0

@FrankHarrell我正在考虑提供'exp(fit +/- 1.96 * se)/(1+ exp(fit +/- 1.96 * se))'策略,但是在看了'?predict.lrm'后发现有一个你没有提供的原因。我认为或许没有考虑协方差就有问题。正如你所看到的,我没有理解这些例子。我错误地想象到,如果坐在这里,你可能不会马上看到它。 –

回答

2

predict.lrm的帮助文件有一个明显的例子。下面是它的一个轻微的修改:

L <- predict(fit, newdata=data.frame(...), se.fit=TRUE) 
plogis(with(L, linear.predictors + 1.96*cbind(- se.fit, se.fit))) 

对于您可能希望使用gendataPredict功能,例如一些问题

L <- predict(fit, gendata(fit, var1=1), se.fit=TRUE) # leave other vars at median/mode 
Predict(fit, var1=1:2, var2=3) # leave other vars at median/mode; gives CLs 
+0

感谢您的帮助 - 像魅力一样的作品。我有一个后续问题:可以使用类似的策略来确定来自有序逻辑回归的预测概率的置信区间(即,落在相对于底部两个尺度的尺度的前两类中的一类中的概率) ? – Corn

+0

是的。查看'预测'的'kint'参数。 –