내 질문은 포아송 회귀와 GLM에 대한 전반적인 이해가 부족하다는 것을 보여줍니다. 내 질문을 설명하기 위해 가짜 데이터가 있습니다.
### some fake data
x=c(1:14)
y=c(0, 1, 2, 3, 1, 4, 9, 18, 23, 31, 20, 25, 37, 45)
psuedo-R2를 리턴하는 일부 사용자 정의 함수 :
### functions of pseudo-R2
psuR2 <- function(null.dev, model.dev) { 1 - (model.dev / null.dev)}
predR2 <- function(actuals, predicted) { 1 - (sum((actuals - predicted)^2)) / sum((actuals - mean(actuals))^2)}
4 가지 모델에 적합 : OLS, ID 링크가있는 가우시안 GLM, 로그 링크가있는 Poisson GLM, ID 링크가있는 Poisson GLM
#### OLS MODEL
mdl.ols=lm(y~x)
summary(mdl.ols)
pred.ols = predict(mdl.ols)
summary(mdl.ols)$r.squared
predR2(y, pred.ols)
#### GLM MODEL, family=gaussian(link="identity")
mdl.guass <- glm(y~x, family=gaussian(link="identity"), maxit=500)
summary(mdl.guass)
pred.guass = predict(mdl.guass)
psuR2(mdl.guass$null.deviance, mdl.guass$deviance)
predR2(y, pred.guass)
#### GLM MODEL, family=possion (canonical link)
mdl.poi_log <- glm(y~x, family=poisson(link="log"), maxit=500)
summary(mdl.poi_log)
pred.poi_log= exp(predict(mdl.poi_log)) #transform
psuR2(mdl.poi_log$null.deviance, mdl.poi_log$deviance)
predR2(y, pred.poi_log)
#### GLM MODEL, family=poisson((link="identity")
mdl.poi_id <- glm(y~x, family=poisson(link="identity"), start=c(0.5,0.5), maxit=500)
summary(mdl.poi_id)
pred.poi_id = predict(mdl.poi_id)
psuR2(mdl.poi_id$null.deviance, mdl.poi_id$deviance)
predR2(y, pred.poi_id)
마지막으로 예측을 플로팅하십시오.
#### Plot the Fit
plot(x, y)
lines(x, pred.ols)
lines(x, pred.guass, col="green")
lines(x,pred.poi_log, col="red")
lines(x,pred.poi_id, col="blue")
두 가지 질문이 있습니다.
아이덴티티 링크를 가진 OLS 및 가우시안 GLM에서 나오는 계수와 예측은 정확히 동일합니다. 이것이 항상 사실입니까?
OLS 추정 및 예측이 ID 링크가 있는 Poisson GLM과 매우 다르다는 사실에 매우 놀랐습니다 . 두 가지 방법 모두 E (Y | X)를 추정하려고한다고 생각했습니다. 포아송에 신원 링크를 사용할 때 우도 기능은 어떻게 생깁니 까?