2014-03-06 3 views
5

Я использую функцию glm.nb() в пакете R MASS для оценки параметров отрицательной биномиальной регрессионной модели. Как я могу вычислить прогнозируемую вероятность (функцию массы вероятности) с учетом новых данных, какую функцию R я могу использовать?Как рассчитать предсказанную вероятность отрицательной биномиальной модели регрессии?

Мой набор данных выглядит следующим образом. y следует за отрицательным биномиальным распределением, а x является ковариантным. И я использую glm.nb(y ~ x, data=data) для оценки параметров модели. Учитывая новые x и y, как я могу рассчитать прогнозируемую вероятность.

Есть ли способ вычислить его с помощью Java?

y  x 

91 1.000000                      
79 1.000000 

86 1.000000 

32 1.000000 

41 1.000000 

29 0.890609 

44 1.000000 

42 1.000000 

31 0.734058 

35 1.000000 
+1

Когда вы говорите, новые точки данных, вы имеете в виду новый 'x' и' y'? (Было бы полезно показать воспроизводимый пример) –

ответ

9

Допустим, вы создали свои данные, как это:

set.seed(1) 
x = seq(-2, 8, .01) 
y = rnbinom(length(x), mu=exp(x), size=10) 
fit = glm.nb(y ~ x) 

и у вас есть новый пункт: вы хотите, чтобы найти вероятность y=100 данной x=5.

Вы можете получить прогнозируемое значение y из x с помощью predicttype="response" сказать ему, вы хотите после обратной функции связи была применена):

predicted.y = predict(fit, newdata=data.frame(x=5), type="response") 

Тогда вы могли бы выяснить вероятность с:

dnbinom(100, mu=predicted.y, size=fit$theta) 

(Это использование fit$theta, оценки максимального правдоподобия параметра «размер» отрицательного биномиального).

Таким образом, в одной функции:

prob = function(newx, newy, fit) { 
    dnbinom(newy, mu=predict(fit, newdata=data.frame(x=newx), type="response"), size=fit$theta) 
} 
Смежные вопросы