2014-03-06 4 views
5

나는 R패키지의 glm.nb() 함수를 사용하여 음 이항 회귀 모델의 매개 변수를 추정합니다. R 함수가 사용할 수있는 새로운 데이터가 주어질 때 예측 된 확률 (확률 질량 함수)을 어떻게 계산할 수 있습니까?부정 이항 회귀 모형의 예측 된 확률을 계산하는 방법은 무엇입니까?

내 데이터 세트는 다음과 같습니다. y는 음 이항 분포를 따르고 x는 공변수입니다. 그리고 모델 매개 변수를 추정하기 위해 glm.nb(y ~ x, data=data)을 사용합니다. xy이 새로 주어지면 예측 된 확률을 어떻게 계산할 수 있습니까?

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) 

당신은 새로운 지점이 : 당신은 x=5 주어진 y=100의 가능성을 찾고 싶어요.

할 수 있습니다 (이 링크 기능의 역을 적용한 후 원하는 그에게 type="response"와) predict를 사용 x에서 y의 예측 값을 얻을 :

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) 
} 
관련 문제