R, Poisson ve negatif binom (NB) regresyonlarında, kategorik fakat sürekli olmayan tahminler için daima aynı katsayılara uyduğunu farkettim.
Örneğin, burada kategorik bir yordayıcılığa sahip bir regresyon:
data(warpbreaks)
library(MASS)
rs1 = glm(breaks ~ tension, data=warpbreaks, family="poisson")
rs2 = glm.nb(breaks ~ tension, data=warpbreaks)
#compare coefficients
cbind("Poisson"=coef(rs1), "NB"=coef(rs2))
Poisson ve NB'nin farklı katsayılara uyduğu sürekli bir yordayıcı örneği:
data(cars)
rs1 = glm(dist ~ speed, data=cars, family="poisson")
rs2 = glm.nb(dist ~ speed, data=cars)
#compare coefficients
cbind("Poisson"=coef(rs1), "NB"=coef(rs2))
(Tabii ki bunlar veri sayılmaz ve modeller anlamlı değildir ...)
Sonra öngörücüyü bir faktöre yeniden kodlarım ve iki model yine aynı katsayılara uyar:
library(Hmisc)
speedCat = cut2(cars$speed, g=5)
#you can change g to get a different number of bins
rs1 = glm(cars$dist ~ speedCat, family="poisson")
rs2 = glm.nb(cars$dist ~ speedCat)
#compare coefficients
cbind("Poisson"=coef(rs1), "NB"=coef(rs2))
Bununla birlikte, Joseph Hilbe'nin Negatif Binom Regresyonu , kategorik bir tahmin edenin , cinsiyetin, Poisson ( ) ve NB ( b = 0.881 ) tarafından biraz farklı katsayılara sahip olduğu bir örnek (6.3, s . 118-119 ) vermektedir. Dedi ki: “Poisson ve NB modelleri arasındaki insidans oranları oldukça benzer. Bu yakınlık göz önüne alındığında şaşırtıcı değildir a [tekabül eden 1 / θ sıfır R].”
Bunu anlıyorum ama yukarıdaki örneklerde, summary(rs2)
söyler sırasıyla 9.16 ve 7.93 olarak tahmin ediliyor.
Peki neden katsayılar tamamen aynı? Ve neden sadece kategorik tahminciler için?
# 1 düzenle
İki ortogonal olmayan prediktör ile ilgili bir örnek. Aslında, katsayılar artık aynı değil:
data(cars)
#make random categorical predictor
set.seed(1); randomCats1 = sample( c("A","B","C"), length(cars$dist), replace=T)
set.seed(2); randomCats2 = sample( c("C","D","E"), length(cars$dist), replace=T)
rs1 = glm(dist ~ randomCats1 + randomCats2, data=cars, family="poisson")
rs2 = glm.nb(dist ~ randomCats1 + randomCats2, data=cars)
#compare coefficients
cbind("Poisson"=coef(rs1), "NB"=coef(rs2))
Ve, bir başka tahminde bulunmak, modelin yeni tahminde sürekli olsa bile, farklı katsayılara uymasına neden olur. Yani, orijinal örneğimde yarattığım kukla değişkenlerin ortogonallığı ile ilgisi var mı?
rs1 = glm(dist ~ randomCats1 + speed, data=cars, family="poisson")
rs2 = glm.nb(dist ~ randomCats1 + speed, data=cars)
#compare coefficients
cbind("Poisson"=coef(rs1), "NB"=coef(rs2))