Poisson GLM이 정수가 아닌 숫자를 어떻게 받아 들일 수 있습니까?


17

Poisson GLM이 정수가 아닌 숫자를 허용한다는 사실에 정말 놀랐습니다! 보기:

데이터 (의 내용 data.txt) :

1   2001    0.25  1
1   2002    0.5   1
1   2003    1     1
2   2001    0.25  1
2   2002    0.5   1
2   2003    1     1

R 스크립트 :

t        <- read.table("data.txt")
names(t) <- c('site', 'year', 'count', 'weight')
tm       <- glm(count ~ 0 + as.factor(site) + as.factor(year), data = t, 
                family = "quasipoisson")  # also works with family="poisson"
years    <- 2001:2003
plot(years, exp(c(0, tail(coef(tm), length(years)-1))), type = "l")

결과 연도 지수는 "예상", 즉 1-2-4연도 2001-2003입니다.

그러나 포아송 GLM이 정수가 아닌 숫자를 어떻게 사용할 수 있습니까? 푸 아송 분포는 항상 정수 전용입니다!


2
정확히 알고 싶은 것을 명확히 할 수 있습니까? 피팅 알고리즘이 정수가 아닌 것을 어떻게 처리합니까? 또는 R이 응답이 정수인지 확인하지 않는 이유는 무엇입니까? 또는 비정 수를 제공했을 때 결과에 ​​문제가 있는지 여부
Momo

@Momo, 네,이 모든 질문은 흥미 롭습니다!
Curious

2
이를 반영하여 질문을 편집하십시오. 이런 식으로 좋은 답변을 얻을 가능성이 높습니다.
모모

8
이것이 사실이기 때문에 이것이 실제로 중요 family="poisson"하지는 않지만 quasipoisson가족을 사용할 때 귀하의 예제는 Poisson GLM이 아니라는 점에 유의하십시오. 어쨌든 평균과 분산의 관계에만 의존합니다. 정수가 아닌 숫자를 취하는 것에 놀라지 않아야합니다.
Aaron-복직 모니카

1
다음은 몇 가지 참고 문헌 이 적합 할 수 있습니다 이유에가.
Dimitriy V. Masterov

답변:


17

물론 포아송 분포는 기술적으로 정수에 대해서만 정의되어 있습니다. 그러나 통계 모델링은 근사치가 좋은 기술 ( " 모든 모델이 잘못되었습니다 ")이며, 정수가 아닌 데이터를 마치 대략 포아송 인 것처럼 처리하는 것이 합리적입니다.

예를 들어, 동일한 카운트 데이터를 기록하기 위해 두 개의 옵저버를 전송하는 경우 두 옵저버가 카운트에 항상 동의하지 않을 수 있습니다. 하나는 무언가가 3 번 발생하고 다른 하나는 4 번 발생했다고 말할 수 있습니다. Poisson 계수를 피팅 할 때 3과 4 중에서 선택하는 대신 3.5를 사용하는 옵션을 사용하는 것이 좋습니다.

계산적으로 Poisson의 계승은 정수가 아닌 사람과 작업하기가 어려워 보일 수 있지만 계승에 대한 지속적인 일반화 가 존재합니다. 또한, 포아송에 대해 최대 우도 추정을 수행 하면 식을 단순화하면 요인 함수를 포함하지 않아도됩니다 .


15

yx

EYi=expβTxi
VarYi=EYi
β
inxi(yiexpβTxi)=0
물론 일관성은 테스트 나 신뢰 구간의 유효성을 의미하지 않습니다. 가능성이 지정되지 않았습니다.

이것은 우리가 학교에서 배웠던 순간적인 방법론에서 비롯되며 일반적인 추정 방정식으로 이어집니다. .

@Aaron은 실제로 코드에 준 Poisson을 사용하고 있다고 지적했습니다. 이는 분산이 평균에 비례한다는 것을 의미합니다

VarYi=ϕEYi

ϕ

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