Доверительные интервалы для предсказанных вероятностей от predic.lrm

Я пытаюсь определить доверительные интервалы для прогнозируемых вероятностей из биномиальной логистической регрессии в R. Модель оценивается с использованием lrm (из пакета rms), чтобы учесть стандартные ошибки для кластеризации респондентов опроса (каждый респондент появляется в данных до 3 раз. ):

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 моделями, есть ли другой способ оценить логит с кластеризованными стандартными ошибками, для которых было бы легче получить доверительные интервалы?


r rms
person Corn    schedule 31.12.2014    source источник
comment
Закройте как более подходящее на другом сайте SE. Без примера данных это только статистический вопрос. Более того, Фрэнк с большей вероятностью увидит это на CrossValidated.com, чем он здесь.   -  person IRTFM    schedule 01.01.2015
comment
Я не понимаю, какой сайт больше подходит для этого типа вопросов. Речь идет о программировании, но однозначно касается статистики.   -  person Frank Harrell    schedule 01.01.2015
comment
@FrankHarrell Я подумывал предложить стратегию exp(fit +/- 1.96*se)/(1+ exp(fit +/- 1.96*se) ), но, посмотрев на ?predict.lrm, понял, что есть причина, по которой вы этого не предоставили. Я подумал, что, возможно, возникла проблема с игнорированием ковариаций. Как видите, я не разбирался в примерах. И я ошибочно полагал, что вы могли бы не увидеть его сразу же, если бы он сидел здесь.   -  person IRTFM    schedule 01.01.2015


Ответы (1)


В файле справки для predict.lrm есть наглядный пример. Вот его небольшая модификация:

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

Для некоторых проблем вы можете использовать функции gendata или Predict, например

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
person Frank Harrell    schedule 31.12.2014
comment
Спасибо за помощь - работает как шарм. У меня есть один дополнительный вопрос: можно ли использовать аналогичную стратегию для определения доверительных интервалов для прогнозируемых вероятностей из упорядоченной логистической регрессии (то есть вероятность попадания в одну из двух верхних категорий шкалы в отличие от двух нижних) ? - person Corn; 11.02.2015
comment
да. См. Аргумент kint для Predict. - person Frank Harrell; 11.02.2015