2014-12-31 3 views
1

Я пытаюсь определить доверительные интервалы для прогнозируемых вероятностей из биномиальной логистической регрессии в R. Модель оценивается с использованием lrm (из пакета rms), чтобы обеспечить стандартную ошибку кластеризации при опросе респондентов (каждый респондент появляется до 3 раз в данных):Доверительные интервалы для прогнозируемых вероятностей из прогноза.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, существует ли еще один способ оценить логит с кластерными стандартными ошибками, для которых более легко получить доверительные интервалы?

+0

Закрыть как более подходящее на другом сайте SE. Без примера данных это только статистический вопрос. Кроме того, Фрэнк, скорее всего, увидит это на CrossValidated.com, чем он здесь, во всяком случае. –

+0

Непонятно, какой сайт более подходит для такого типа вопросов. Речь идет о программировании, но определенно затрагивает stat. –

+0

@FrankHarrell Я рассматривал возможность предлагать 'exp (fit +/- 1.96 * se)/(1+ exp (fit +/- 1.96 * se))' strategy, но, посмотрев на '? 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))) 

Для некоторых проблем, которые вы можете захотеть использовать функции 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 
+0

Спасибо за помощь - работает как шарм. У меня есть один следующий вопрос: может ли быть использована аналогичная стратегия для определения доверительных интервалов для прогнозируемых вероятностей из упорядоченной логистической регрессии (т. Е. Вероятность посадки в одну из двух верхних категорий шкалы в отличие от нижних двух) ? – Corn

+0

Да. См. Аргумент 'kint' для' Predict'. –

Смежные вопросы