i在r MASS
软件包中使用 glm.nb()
函数来估计负二项式回归模型的参数。我如何计算给定新数据的预测概率(概率质量函数),我可以使用哪个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
假设您像这样设置了数据:
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
。
您可以使用predict
从x
获取y
的预测值(使用type="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)
}