음 이항 GLM의 "정수가 아닌"경고를 처리하는 방법은 무엇입니까?


11

부정적인 이항 모델을 사용하여 R의 숙주에 영향을 미치는 기생충의 평균 강도를 모델링하려고합니다. 다음과 같은 경고가 계속 50 개 이상 나타납니다.

In dpois(y, mu, log = TRUE) : non-integer x = 251.529000

이 문제를 어떻게 처리 할 수 ​​있습니까? 내 코드는 다음과 같습니다

mst.nb = glm.nb(Larvae+Nymphs+Adults~B.type+Month+Season, data=MI.df)

1
사람들과 함께 작업 할 수있는 재현 가능한 예 를 추가하십시오 .
gung-모니 티 복원

5
음 이항 GLiM은 일종의 카운트 모델입니다. 응답은 중요합니다. 수는 , 정의에 의해, 소수 값이 될 수 없습니다. 그런 가치가 있습니까?
gung-모니 티 복원

1
"강도"의 의미를 명확하게 설명 할 수 있습니까? 기생충의 수를 예를 들어 숙주의 표면적의 양으로 나누고 있습니까?
gung-모니 티 복원

1
나는 카운트 데이터를 가지고 있지만 다른 샘플링 노력을 설명하기 위해 강도를 계산해야했습니다. 나는 거기에 카운트 데이터가 필요하다는 것을 이해하지만 동일한 모델을 사용하여 정수가 아닌 숫자로 작업 할 수있는 다른 방법이 있는지 궁금합니다. 강도를 위해 기생충 수를 감염된 숙주 수로 나누었습니다.
Natasha

2
@ 나타샤, 하지마. 이 문제를 처리하는 올바른 방법은 오프셋과 함께 Gung의 답변에 따른 것입니다. 확실하게하려면 차이 샘플링 강도의 출처에 대해 조금 더 설명하기 위해 질문을 편집하십시오. 서로 다른 수의 호스트입니까? 샘플링 시간이 다르거 나 수집기 수가 다른가요?
벤 볼커

답변:


9

음 이항은 카운트 데이터의 분포이므로 반응 변수가 카운트 (음수가 아닌 정수)가 되기를 원합니다 . 즉, "다른 샘플링 노력"을 설명하는 것이 적절합니다 (나는 당신이 무엇을 말하는지 정확히 알지 못하지만 그 요지를 얻습니다). 그러나 카운트를 다른 숫자로 나누어서 시도하지 마십시오. 대신, 다른 숫자를 오프셋 으로 사용해야합니다 . CV에 오프셋이 무엇인지에 대한 멋진 토론이 있습니다 : 포아송 회귀에서 오프셋을 언제 사용해야합니까? 내 생각에 당신의 모델은 다음과 같아야합니다.

mst.nb = glm.nb(Larvae+Nymphs+Adults~B.type+Month+Season + offset(log(num.hosts)), 
                data=MI.df)

감사합니다. 나는 이것을 시도하고 내가 한 일을 말해 줄 것이다.
Natasha

OT : 나는 무언가를 놓치고 있습니다. 회귀에 많은 결과가 있다는 것은 무엇을 의미합니까?
Bakaburg

@Bakaburg, 나는 당신이 말하는 것을 말할 수 없습니다.
gung-Monica Monica 복원

코드의 "Larvae + Nymphs + Adults ~"부분.
Bakaburg

1
@Bakaburg, 이것은 R의 작동 방식에 관한 것입니다. 덧셈은 요소별로입니다. 3 개의 벡터를 추가하면 각 요소가 3 개의 해당 요소의 합인 단일 벡터가 제공됩니다. R 공식의 LHS에 여러 반응 변수를 두려면을 사용해야 cbind()합니다.
gung-복원 Monica Monica

4

치명적인 오류가 아니라 경고입니다. glm.nb ()는 정수인 결과 변수로 계산합니다. 귀하의 데이터는 정수가 아닙니다 : 251.529.

R은 "흠 ... 당신은 이것을보고 그것을 확인하고 싶을 수도 있습니다. 그것이 옳지 않은 것처럼 보일 수도 있기 때문입니다." 내 기억이 정확하다면 SPSS는 그런 경고를하지 않습니다.

정수가 없어도 올바른 모델을 사용하고 있다고 확신하면 무시하고 계속 진행하십시오.


1
나는 그것이 경고라는 것을 알고, 그 주위에 방법이 있는지 궁금합니다. 나는 정수를 가지고 있기 때문에 정수로 작업하는 방법이 있지만 다른 코드로 동일한 모델을 사용하는지 확인하려고했습니다.
Natasha

1
어떻게 억제 경고에 설명한 여기 : stackoverflow.com/questions/16194212/...
할보 르센 kjetil B

-2

나는 생태학적인 기생충 학자입니다. 이것을 처리하는 방법은 기생 한 숙주와 그렇지 않은 숙주를 묶고 이항 분포를 사용하는 것입니다. 아래 코드를 참조하십시오.

나는 또한 하나 이상의 y 변수를 가진 glm을 사용한 적이 없다. 그래서 기생충 유충을보고 싶다고하자. 건강에 좋은 유충 수와 # 기생충이있을 것이다.

말할 수 있습니다 : Lh and Lp

예를 들어

parasitizedL = cbind (Lp, Lh) hist (parasitized) # glm과 함께 정규 이항 분포를 사용할 수 있다고 생각합니다. 네가티브 이항 분포가 필요하지 않을 수도 있습니다. PLarvae1 = glm (parasitizedL ~ B.type + Month + Season, 가족 = 이항, 데이터 = MI.df)

다음 단계적 모델 축소를 수행하여 어떤 요소가 기생충에 크게 영향을 미치는지 확인하십시오. 아래 링크 참조

http://bbolker.github.io/mixedmodels-misc/glmmFAQ.html

그러나 반복적 인 샘플링을 설명하기 위해 임의의 효과가 필요한 것 같습니다. 따라서 임의의 효과는 (1 | Season / Month) 일 것입니다.

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