Poisson Regresyonu için Kimlik Bağlantısına Karşı Log Link'in Artıları ve Eksileri


12

Ben karşılaştırarak (ve farkını alarak) benim modelinde iki faktör düzeyleri arasında tahmin edilen ortalama sayımlar sonu hedefi olan bir Poisson regresyon yerine getiriyorum: , tutma sırasında diğer model ortak değişkenler (hepsi ikili) sabittir. Herkes ne zaman bir günlük bağlantısı kimlik kimlik karşı kullanılacağı konusunda bazı pratik tavsiyeler verebilir olmadığını merak ediyordum. Farklılıkları karşılaştırma amacım göz önüne alındığında, Poisson regresyonundaki bu iki farklı bağlantı fonksiyonunun artıları neler olabilir?μ^1μ^2

Aynı zamanda, iki faktör düzeyi arasındaki oranlardaki farkı karşılaştırmak ve benzer tavsiyeye ihtiyaç duymak için bir lojistik / binom regresyonu (bir logit bağlantısı veya bir kimlik bağlantısı kullanmak) için de aynı hedefi göz önünde bulunduruyorum. Burada bu konuya değinen bazı yayınları okudum, ancak hiçbiri neden veya ne zaman bir bağlantıyı diğerine ve artı / eksilerin ne olabileceğini açıklamıyor gibi görünüyor. Yardımınız için şimdiden teşekkürler!

GÜNCELLEME:

Ayrıca, belirli bağlantılar işlevlerini kullanmanın temel amacının, olası öngörülen değerlerin aralık aralığını ortalama yanıt aralığı dahilinde sınırlamak olduğunu da anlıyorum (örneğin, lojistik için, aralığın 0 ile 1 arasında ve günlük için sınırlandırıldığını) bağlantısında, tahminler pozitif sayılarla sınırlıdır). Yani, sorduğum şey, eğer bir lojistik / binom regresyonu söylemek için bir kimlik bağlantısı kullanırsam ve sonuçlarım (0,1) aralığındaysa, gerçekten bir lojistik bağlantı fonksiyonu kullanmaya gerek var mı? sadece bir kimlik bağlantısı kullanımını basitleştirebilir miyim?


2
Güzel bir soru. Bununla birlikte, nasıl belirtildiği göz önüne alındığında, sadece bir ikili faktörünüz olduğunda ve başka bir değişkeniniz olmadığında, seçtiğiniz bağlantının hiçbir farkı olmadığını bilmek yararlı olabilir.
whuber

1
Teşekkürler, @whuber. Modelde başka eş değişkenlerin bulunduğunu açıkça belirtmek için sorumu güncelledim. Ayrıca sorumu biraz daha açıklayan bir "GÜNCELLEME" bölümü ekledim.
İstatistiklerÖğrenci

1
Bağlantı işlevlerinin rolü ile ilgili farklı bir bakış açısı için, stats.stackexchange.com/questions/63978 adresindeki yakından ilgili soruya verdiğim cevaba bakın .
whuber

1
Büyüleyici örnek @whuber!
İstatistiklerÖğrenci

1
Genellikle bağlantı işlevi seçiminin sorun ve eldeki veriler tarafından belirlendiğini söyleyebilirim - somut bir örnek için aşağıya bakın ...
Tom Wenseleers

Yanıtlar:


4

Poisson regresyonu durumunda bir kimlik bağlantısının eksileri:

  • Bahsettiğiniz gibi aralık dışı tahminler üretebilir.
  • Modele uymaya çalışırken garip hatalar ve uyarılar alabilirsiniz, çünkü bağlantı lambda'nın 0'dan küçük olmasına izin verir, ancak bu değerler için Poisson dağılımı tanımlanmamıştır.
  • Poisson regresyonu, ortalama ve varyansın aynı olduğunu varsayarken, bağlantıyı değiştirdiğinizde, varyansla ilgili varsayımları da değiştirirsiniz. Deneyimlerime göre, bu son nokta en çok anlatıyor.

Ancak, sonuçta bu ampirik bir sorudur. Her iki modeli de takın. İstediğiniz kontrolleri yapın. Kimlik bağlantısının daha düşük bir AIC'si varsa ve diğer tüm denetimlerinizde iyi veya daha iyisi varsa, kimlik bağlantısıyla çalıştırın.

Logit modeline karşı doğrusal olasılık modeline karşı (yani kimlik bağlantısı olarak adlandırdığınız şey), durum çok daha basittir. Ekonometride (bir arama yaparsanız bulacağınız) bazı egzotik durumlar dışında, logit modeli daha iyidir: daha az varsayım yapar ve çoğu insanın kullandığı şeydir. Doğrusal olasılık modelini yerinde kullanmak sapkın olmaya başlayabilir.

Modellerin yorumlanması ile ilgili olarak, R kullanıyorsanız, tüm ağır kaldırmayı yapacak iki harika paket vardır: kullanımı çok kolay olan efektler ve kullanımı zor ancak tahmin yapmak istiyorsanız harika olan zelig .


1
Doğrusal olasılık modellerinin "egzotik" olduğunu söylüyorsunuz, ancak ekonomistlerle olan etkileşimlerimden (ben bir istatistikçiyim) iki kamp var gibi görünüyor, bunlardan biri doğrusal olasılığın daha iyi olduğunu çünkü daha az varsayım içerdiğini ve doğrudan beklentiyi modellediğini söylüyor Bu normalde umurunda olan şeydir.
zipzapboing

1
Cevabımı iktisattaki egzotik olaylara atıfta bulunarak uyartım. Bunu söyledikten sonra, doğrusal olasılık modelindeki sorun, OLS ile tahmin ederseniz varsayımlarının yaygın olarak ihlal edilmesidir. Modelin parametrelerde doğrusal olduğu varsayımı birçok durumda mantıklı değildir (yani, OLS kullanılarak tahmin edildiğinde 0 ve 1 dışında olasılıklar elde edebilirsiniz). Ve artıklar uzaktan normale yakın olamaz, bu nedenle bir sandviç tahmincisi veya başka bir şey kullanmanız gerekir.
Tim

Poisson modelleri söz konusu olduğunda, uygulamanın genellikle ortak değişkenlerinizin (daha sonra bir kimlik bağlantısı anlamına gelir) katkı maddesi (veya daha sonra bir kimlik bağlantısı anlamına gelir) veya çarpma yoluyla doğrusal bir ölçekte (daha sonra bir günlük bağlantısı anlamına gelir) hareket edeceğini belirlediğini söyleyebilirim. Ancak kimlik bağlantısına sahip Poisson modelleri de normalde mantıklıdır ve yalnızca takılan katsayılara negatiflik kısıtlamaları uyguladığında kararlı bir şekilde sığabilir - bu, R addreg paketindeki nnpois işlevi veya NNLM paketindeki nnlm işlevi kullanılarak yapılabilir .
Tom Wenseleers

0

Poisson modelleri söz konusu olduğunda, uygulamanın sıklıkla ortak değişkenlerinizin (daha sonra bir kimlik bağlantısı anlamına gelir) katkı maddesi olarak mı, yoksa doğrusal ölçekte (o zamanlar bir günlük bağlantısı anlamına gelir) çarpımsal olarak mı hareket edeceğini belirlediğini söyleyebilirim. Ancak bir kimlik bağlantısına sahip Poisson modelleri de normalde mantıklıdır ve yalnızca takılan katsayılara olumsuzluk kısıtlamaları uyguladığında kararlı bir şekilde sığabilir - bu nnpois, R addregpaketindeki nnlmişlev kullanılarak veyaNNLMpaketlemek. Bu yüzden, Poisson modellerine hem kimlik hem de günlük bağlantısı ile uyması ve hangisinin en iyi AIC'ye sahip olduğunu ve tamamen istatistiksel temellere dayanan en iyi modeli çıkardığını görmüyorum - aksine, çoğu durumda çözülmeye çalışılan sorunun ya da eldeki verilerin temel yapısı.

Örneğin, kromatografide (GC / MS analizi) çoğu zaman Gauss biçimli birkaç tepe noktasının üst üste binmiş sinyali ölçülür ve bu üst üste binmiş sinyal bir elektron çarpanı ile ölçülür, yani ölçülen sinyal iyon sayımıdır ve bu nedenle Poisson dağıtılır. Zirvelerin her biri tanım gereği pozitif bir yüksekliğe sahip olduğu ve katkı maddesi olarak hareket ettiği ve gürültü Poisson olduğu için, burada kimlik bağlantılı negatif olmayan bir Poisson modeli uygun olacaktır ve bir günlük bağlantısı Poisson modeli basit yanlış olacaktır. Mühendislikte Kullback-Leibler kaybı genellikle bu tür modeller için bir kayıp fonksiyonu olarak kullanılır ve bu kaybın en aza indirilmesi, negatif olmayan bir kimlik bağlantılı Poisson modelinin olasılığını optimize etmeye eşdeğerdir (ayrıca alfa veya beta sapması gibi diğer ıraksama / kayıp önlemleri de vardır. özel bir durum olarak Poisson olan).

Aşağıda, düzenli bir sınırlandırılmamış kimlik bağlantısı Poisson GLM'nin (negatiflik kısıtlamalarının olmaması nedeniyle) uymadığının ve negatif olmayan kimlik bağlantısı Poisson modellerinin nasıl kullanılacağına dair bazı detaylar içeren sayısal bir örnek bulunmaktadır.nnpoisburada, tek bir zirvenin ölçülen şeklinin kaydırılmış kopyalarını içeren şeritli bir eş değişkenli matris kullanarak, üzerlerinde Poisson gürültüsü ile ölçülen bir kromatografik piklerin üst üste binmesini çözme bağlamında. Buradaki negatif olmayanlık çeşitli nedenlerden dolayı önemlidir: (1) eldeki veriler için tek gerçekçi modeldir (buradaki zirveler negatif yüksekliğe sahip olamaz), (2) kimlik bağlantılı bir Poisson modelini ( Aksi takdirde, bazı değişken değerlerin tahminleri negatif olabilir, bu da mantıklı olmayacaktır ve olasılık değerlendirilmeye çalışıldığında sayısal problemler verecektir), (3) negatiflik, regresyon problemini düzenli hale getirmek için hareket eder ve istikrarlı tahminler elde etmeye büyük ölçüde yardımcı olur (örn. sıradan kısıtsız regresyonda olduğu gibi tipik olarak aşırı uydurma problemlerini alamazsınız,olumsuzluk kısıtlamaları, çoğunlukla yer gerçeğine daha yakın olan daha seyrek tahminlerle sonuçlanır; Aşağıdaki dekonvolüsyon problemi için, örneğin performans LASSO regülasyonu kadar iyidir, ancak herhangi bir regülasyon parametresinin ayarlanmasını gerektirmeden. ( L0-psödomon cezalandırılmış regresyon hala biraz daha iyi ama daha büyük bir hesaplama maliyetiyle çalışıyor )

# we first simulate some data
require(Matrix)
n = 200
x = 1:n
npeaks = 20
set.seed(123)
u = sample(x, npeaks, replace=FALSE) # unkown peak locations
peakhrange = c(10,1E3) # peak height range
h = 10^runif(npeaks, min=log10(min(peakhrange)), max=log10(max(peakhrange))) # unknown peak heights
a = rep(0, n) # locations of spikes of simulated spike train, which are assumed to be unknown here, and which needs to be estimated from the measured total signal
a[u] = h
gauspeak = function(x, u, w, h=1) h*exp(((x-u)^2)/(-2*(w^2))) # peak shape function
bM = do.call(cbind, lapply(1:n, function (u) gauspeak(x, u=u, w=5, h=1) )) # banded matrix with peak shape measured beforehand
y_nonoise = as.vector(bM %*% a) # noiseless simulated signal = linear convolution of spike train with peak shape function
y = rpois(n, y_nonoise) # simulated signal with random poisson noise on it - this is the actual signal as it is recorded
par(mfrow=c(1,1))
plot(y, type="l", ylab="Signal", xlab="x", main="Simulated spike train (red) to be estimated given known blur kernel & with Poisson noise")
lines(a, type="h", col="red")

resim açıklamasını buraya girin

# let's now deconvolute the measured signal y with the banded covariate matrix containing shifted copied of the known blur kernel/peak shape bM

# first observe that regular OLS regression without nonnegativity constraints would return very bad nonsensical estimates
weights <- 1/(y+1) # let's use 1/variance = 1/(y+eps) observation weights to take into heteroscedasticity caused by Poisson noise
a_ols <- lm.fit(x=bM*sqrt(weights), y=y*sqrt(weights))$coefficients # weighted OLS
plot(x, y, type="l", main="Ground truth (red), unconstrained OLS estimate (blue)", ylab="Peak shape", xlab="x", ylim=c(-max(y),max(y)))
lines(x,-y)
lines(a, type="h", col="red", lwd=2)
lines(-a_ols, type="h", col="blue", lwd=2)

resim açıklamasını buraya girin

# now we use weighted nonnegative least squares with 1/variance obs weights as an approximation of nonnegative Poisson regression
# this gives very good estimates & is very fast
library(nnls)
library(microbenchmark)
microbenchmark(a_wnnls <- nnls(A=bM*sqrt(weights),b=y*sqrt(weights))$x) # 7 ms
plot(x, y, type="l", main="Ground truth (red), weighted nnls estimate (blue)", ylab="Signal (black) & peaks (red & blue)", xlab="Time", ylim=c(-max(y),max(y)))
lines(x,-y)
lines(a, type="h", col="red", lwd=2)
lines(-a_wnnls, type="h", col="blue", lwd=2)
# note that this weighted least square estimate in almost identical to  the nonnegative Poisson estimate below and that it fits way faster!!!

resim açıklamasını buraya girin

# an unconstrained identity-link Poisson GLM will not fit:
glmfit = glm.fit(x=as.matrix(bM), y=y, family=poisson(link=identity), intercept=FALSE)
# returns Error: no valid set of coefficients has been found: please supply starting values

# so let's try a nonnegativity constrained identity-link Poisson GLM, fit using bbmle (using port algo, ie Quasi Newton BFGS):
library(bbmle)
XM=as.matrix(bM)
colnames(XM)=paste0("v",as.character(1:n))
yv=as.vector(y)
LL_poisidlink <- function(beta, X=XM, y=yv){ # neg log-likelihood function
  -sum(stats::dpois(y, lambda = X %*% beta, log = TRUE)) # PS regular log-link Poisson would have exp(X %*% beta)
}
parnames(LL_poisidlink) <- colnames(XM)
system.time(fit <- mle2(
  minuslogl = LL_poisidlink ,
  start = setNames(a_wnnls+1E-10, colnames(XM)), # we initialise with weighted nnls estimates, with approx 1/variance obs weights
  lower = rep(0,n),
  vecpar = TRUE,
  optimizer = "nlminb"
)) # very slow though - takes 145s 
summary(fit)
a_nnpoisbbmle = coef(fit)
plot(x, y, type="l", main="Ground truth (red), nonnegative Poisson bbmle ML estimate (blue)", ylab="Signal (black) & peaks (red & blue)", xlab="Time", ylim=c(-max(y),max(y)))
lines(x,-y)
lines(a, type="h", col="red", lwd=2)
lines(-a_nnpoisbbmle, type="h", col="blue", lwd=2)

resim açıklamasını buraya girin

# much faster is to fit nonnegative Poisson regression using nnpois using an accelerated EM algorithm:
library(addreg)
microbenchmark(a_nnpois <- nnpois(y=y,
                                  x=as.matrix(bM),
                                  standard=rep(1,n),
                                  offset=0,
                                  start=a_wnnls+1.1E-4, # we start from weighted nnls estimates 
                                  control = addreg.control(bound.tol = 1e-04, epsilon = 1e-5),
                                  accelerate="squarem")$coefficients) # 100 ms
plot(x, y, type="l", main="Ground truth (red), nonnegative Poisson nnpois estimate (blue)", ylab="Signal (black) & peaks (red & blue)", xlab="Time", ylim=c(-max(y),max(y)))
lines(x,-y)
lines(a, type="h", col="red", lwd=2)
lines(-a_nnpois, type="h", col="blue", lwd=2)

resim açıklamasını buraya girin

# or to fit nonnegative Poisson regression using nnlm with Kullback-Leibler loss using a coordinate descent algorithm:
library(NNLM)
system.time(a_nnpoisnnlm <- nnlm(x=as.matrix(rbind(bM)),
                                 y=as.matrix(y, ncol=1),
                                 loss="mkl", method="scd",
                                 init=as.matrix(a_wnnls, ncol=1),
                                 check.x=FALSE, rel.tol=1E-4)$coefficients) # 3s
plot(x, y, type="l", main="Ground truth (red), nonnegative Poisson nnlm estimate (blue)", ylab="Signal (black) & peaks (red & blue)", xlab="Time", ylim=c(-max(y),max(y)))
lines(x,-y)
lines(a, type="h", col="red", lwd=2)
lines(-a_nnpoisnnlm, type="h", col="blue", lwd=2)

resim açıklamasını buraya girin


1
Görünüşe göre tüm katsayıları negatif olmaya zorlamaya yönelik olan olumsuzluk kısıtlamalarının ihtiyacını ve hatta geçerliliğini anlamıyorum. Sadece olsaydı Sonuçta, yanıtın (dönüştürme kodlama tersine çevirmek için için ), sonra bütün katsayılar bunlardan herhangi birinin işareti anlamsız olduğunu gösteren, negated olacaktır. Belki de bu tür kısıtlamalarla ne demek istediğinizi yanlış anlıyor muyum? 1 - YY1Y
whuber

1
@whuber Şimdi daha açık bir şekilde ifade etmek için somut bir örnek ekledim! Gerçek bir negatif olmayan kimlik bağlantısı Poisson modeline yaklaşmak için ağırlıklı negatif olmayan en küçük kareler kullanmam üzerine herhangi bir düşünce de memnuniyetle karşılanacaktır!
Tom Wenseleers

Btw - negatif olmayan bir kimlik bağlantısı Poisson GLM'ye yaklaşmak için kullandığım ağırlıklı nnls aslında negatif olmayan bir Poisson GLM'ye (R'nin kendisi 1 / (y + 0.1) kullanır. Poisson GLM başlatma olarak uyuyor)
Tom Wenseleers
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.