일부 관측치에 대해 오프셋 변수가 0 인 모델링 카운트 데이터


9

동료의 학생을 돕기 위해 노력하고 있습니다. 학생은 실험 설정에서 조류 행동 (전화 수)을 관찰하고 계산했습니다. 각각의 실험 동안 특정 관찰 된 조류에 기인 한 호출 수는 결정될 수 없었지만, 기록 된 호출 수에 기여한 조류 수를 세는 것이 가능했다. 따라서 초기 제안은 Poisson GLM 모델에서 새 수를 오프셋 용어로 포함하는 것이 었으므로 새 당 예상되는 호출 수에 적합합니다 .

이것에 대한 문제는 많은 관측 기간 동안 새 (따라서 부름)가 관찰되지 않았다는 것입니다. 소프트웨어 (이 경우에는 R)의 불평 때문에 (R 뿌려 함유 데이터하지만 순수의 결과 인 ).log(0)=infy-Infoffset(log(nbirds))-Inf

실제로 "통화 관찰"에 대한 별도의 이항 모델이있는 허들 모델 (또는 이와 유사한)이 필요하다고 생각합니다. (또는 그렇지 않음) 및 호출이 발생한 상황에서 (조류 당) 호출 수에 대한 잘린 카운트 모델, 모델의 카운트 부분에만 오프셋 용어를 포함합니다.

R 의 pscl 패키지를 사용하여 시도했지만 여전히 같은 오류가 발생합니다.

mod1 <- hurdle(NumberCallsCOPO ~ Condition * MoonVis +
               offset(log(NumberCOPO)) | 1, data = Data,
               dist = "poisson")

glm.fit내부적 hurdle()으로이 모델이 카운트 모델 부분을 맞추기 위해 사용됨에 따라 동일한 -Inf관측치에 대한 모형 적합에 영향을 줄 것이라고 생각하지 않더라도 검사하고 있기 때문입니다. (정확한 가정입니까?)

NumberCOPO(예를 들어 0.0001)에 작은 숫자를 추가하여 모델을 적합하게 만들 수 있지만 이것은 최선의 퍼지입니다.

실제로 작은 연속성 보정을 추가해도 괜찮습니까? 그렇지 않다면 오프셋 변수가 0을 취할 수있는 포아송 모델에서 오프셋을 사용하고자하는 데이터를 처리 할 때 고려해야 할 다른 접근 방법은 무엇입니까? 내가 본 모든 예제는 오프셋 변수에 0을 사용할 수없는 상황에 대한 것입니다.


2
이 경우, 모델이 타우 톨 로지에 맞추려고하는 것 같습니다. 0 마리의 새가 관찰되면 0 개의 버드 콜도들을 수 있습니다. 이 경우 오프셋이 0 인 행에 모델을 맞추는 것이 적절하다고 확신하지 않습니다.
Sycorax는 Reinstate Monica가

고마워, 아래 언급했듯이, 그것은 내 장 반응이기도합니다. 아래 Barry (Spacedman)의 답변에 대한 답변에서 조금 확장했습니다.
개빈 심슨

2
포아송 비율 모델 (즉, 상쇄 항이 있음)이 해당 사례에 부적절 하다는 것을 암시하는 의견에 동의 할 것입니다. . 비율은 0 분모를 기준으로 할 수 없습니다.
ttnphns 2019

답변:


5

따라서 모델링하려는 응답은 "조류 당 통화 수"이며 까다로운 라인은 조류를 관찰하지 못한 곳입니까? 그 줄을 삭제하십시오. 모델링하려는 것에 정보를 추가하지 않습니다.


그것은 내 직감 반응이기도합니다. 아마 이것을 지나치게 생각했지만 새들이 관찰했지만 전화를하지 않은 상황을 상상할 수 있습니다. 따라서 허들 모델이지만 내부적으로는 여전히 glm.fit값을 사용하여 모델의 카운트 부분에 해당 값이 포함되지 않아도 흔들림을 발생시킵니다. 나는 허들 모델을 손으로 할 수 있다고 생각하지만 이것을 하고 싶지는 않습니다. 학생에게 조언하십시오.
Gavin Simpson

3
0이 아닌 관측 된 조류로 이루어진 호출이 많지 않은 경우 0으로 팽창 된 포아송 모델 (또는 유사)을 수행 할 수 있지만 조류 당 호출 수에 관심이있는 경우에는 관찰되지 않은 조류와는 매우 다릅니다 .
Spacedman 2019

이 경우에 우리는 그 중 많은 것이 있다고 생각하지 않습니다. 0으로 관측 된 조류 데이터를 버리고 음 이항으로 피팅하는 것은 합리적인 첫 단계 인 것으로 보입니다.
개빈 심슨

2

포아송 GLM에서 오프셋은 단순히 모델링되는 푸 아송 비율의 곱셈 스케일링입니다. 비율이 0 인 포아송은 도움이되지 않거나 의미가 없습니다 ...

이것이 Spacedman이 올바른 이유입니다!


0

그냥 손으로 (허들)을 시도하십시오 ( "치과 / 체조"purporse를 위해) : 이항 부분과 cout 부분으로 분리하고 적당한 로짓과 cout 회귀를 별도로 즐기십시오! / Gamma ..., GAM. 여기서 "offset"var가 필요하지 않은 것 같습니다. ;-)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.