คำถามของฉันเปิดเผยความเข้าใจที่ไม่ดีของฉันเกี่ยวกับการถดถอยปัวซองและ GLMs โดยทั่วไป นี่คือข้อมูลปลอมที่จะแสดงคำถามของฉัน:
### 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)}
พอดีกับรุ่นสี่รุ่น: OLS, Gaussian 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 และ Gaussian GLM พร้อมลิงค์ตัวตนเหมือนกันทุกประการ สิ่งนี้เป็นจริงเสมอหรือไม่?
ฉันประหลาดใจมากที่การประมาณและการคาดการณ์ของ OLS นั้นแตกต่างจาก Poisson GLM มากโดยมีลิงก์ตัวตน ฉันคิดว่าทั้งสองวิธีจะพยายามประมาณ E (Y | X) ฟังก์ชั่นความน่าจะเป็นอย่างไรเมื่อฉันใช้ลิงก์ประจำตัวสำหรับปัวซอง