Как рассчитать прогнозируемую вероятность модели отрицательной биномиальной регрессии?

Я использую функцию 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

r glm
person user22062    schedule 06.03.2014    source источник
comment
Когда вы говорите о новой точке данных, вы имеете в виду новые x и y? (Было бы полезно показать воспроизводимый пример)   -  person David Robinson    schedule 06.03.2014


Ответы (1)


Допустим, вы настроили свои данные следующим образом:

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)
}
person David Robinson    schedule 06.03.2014