私の質問は、ポアソン回帰とGLMの一般的な理解が不十分であることを示しています。ここに私の質問を説明するためのいくつかの偽のデータがあります:
### some fake data
x=c(1:14)
y=c(0, 1, 2, 3, 1, 4, 9, 18, 23, 31, 20, 25, 37, 45)
擬似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、アイデンティティリンク付きガウスGLM、ログリンク付きポアソンGLM、アイデンティティリンク付きポアソン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")
2つの質問があります。
OLSとアイデンティティリンク付きのガウスGLMから得られる係数と予測はまったく同じであるようです。これは常に本当ですか?
OLSの見積もりと予測が、アイデンティティリンクを備えたポアソンGLMとは大きく異なることに非常に驚いています。どちらの方法もE(Y | X)を推定しようとすると思いました。ポアソンのIDリンクを使用すると、尤度関数はどのように見えますか?