पॉसन रिग्रेशन के लिए लॉग लिंक वर्सेस आइडेंटिटी लिंक के पेशेवरों और विपक्ष


12

मैं की तुलना (और के अंतर देखकर) अपने मॉडल में दो कारक स्तरों के बीच भविष्यवाणी मतलब मायने रखता है के अंत लक्ष्य के साथ एक प्वासों प्रतिगमन बाहर ले जाने , अन्य मॉडल covariates दबाते हुए (जो सभी बाइनरी हैं ) लगातार। मैं सोच रहा था कि क्या कोई लॉग लिंक बनाम किसी पहचान लिंक का उपयोग करने पर कुछ व्यावहारिक सलाह दे सकता है। पॉसन प्रतिगमन में इन दो अलग-अलग लिंक फ़ंक्शंस के बारे में क्या विपक्ष कर सकते हैं, मतभेदों की तुलना करने के मेरे लक्ष्य को देखते हुए?μ^1μ^2

दो कारक स्तरों के बीच के अनुपात में अंतर की तुलना करने और इसी तरह की सलाह की आवश्यकता के लिए एक लॉजिस्टिक / द्विपद प्रतिगमन (एक लॉगिट लिंक या एक पहचान लिंक का उपयोग करने के लिए) के लिए भी मेरे मन में एक ही लक्ष्य है। मैंने यहाँ कुछ पोस्ट पढ़ी हैं जो इस मुद्दे पर स्पर्श करती हैं, लेकिन कोई भी यह नहीं समझाता कि क्यों या कब एक ने दूसरे पर एक लिंक चुना और क्या पेशेवरों / विपक्ष हो सकते हैं। आपकी सहायता के लिये पहले से ही धन्यवाद!

अपडेट करें:

मुझे यह भी पता चलता है कि कुछ लिंक फ़ंक्शंस का उपयोग करने का मुख्य उद्देश्य औसत अनुमानित प्रतिक्रिया की सीमा के भीतर होने के लिए संभावित अनुमानित मानों की सीमा को सीमित करना है (जैसे कि लॉजिस्टिक के लिए, सीमा 0 और 1 के बीच और लॉग के लिए सीमित है। लिंक, भविष्यवाणियां सकारात्मक संख्या तक सीमित हैं)। इसलिए, मुझे लगता है कि मैं जो पूछ रहा हूं वह यह है कि अगर मैं लॉजिस्टिक / द्विपद प्रतिगमन कहने के लिए एक पहचान लिंक का उपयोग करता हूं, और मेरे परिणाम सीमा (0,1) के भीतर हैं, तो क्या वास्तव में किसी लॉजिस्टिक लिंक फ़ंक्शन का उपयोग करने की आवश्यकता है या क्या मैं सिर्फ सोच को सरल बनाने के लिए एक पहचान लिंक का उपयोग कर सकता हूं?


2
यह एक अच्छा सवाल है। यह देखते हुए कि यह कैसे कहा जाता है, हालांकि, यह जानना उपयोगी हो सकता है कि जब आपके पास सिर्फ एक द्विआधारी कारक होता है और कोई अन्य चर नहीं होता है, तो इससे कोई फर्क नहीं पड़ता है कि आप क्या लिंक चुनते हैं।
व्हिबर

1
धन्यवाद, @whuber मैंने अपना प्रश्न अपडेट किया है ताकि यह स्पष्ट हो सके कि मॉडल में अन्य सहसंयोजक हैं। मैंने एक "अद्यतन" खंड भी जोड़ा है जो मेरे प्रश्न को थोड़ा और आगे बढ़ाता है।
स्टेट्सटूडेंट

1
लिंक फ़ंक्शंस की भूमिका के विषय में एक अलग नज़रिए के लिए, आँकड़े.स्टैकएक्सचेंज . com/ questions/ 63978 पर बारीकी से संबंधित प्रश्न के लिए मेरा उत्तर देखें ।
व्हुबेर

1
आकर्षक उदाहरण @whuber!
स्टैट्सस्टूडेंट

1
आमतौर पर मैं कहूंगा कि लिंक फ़ंक्शन का विकल्प समस्या और हाथ में डेटा द्वारा निर्धारित होता है - एक ठोस उदाहरण के लिए नीचे देखें ...
टॉम वेन्सलेर्स

जवाबों:


4

पॉसों प्रतिगमन के मामले में एक पहचान कड़ी के होते हैं:

  • जैसा कि आपने उल्लेख किया है, यह आउट-ऑफ-द-रेंज भविष्यवाणियों का उत्पादन कर सकता है।
  • मॉडल को फिट करने का प्रयास करते समय आपको अजीब त्रुटियां और चेतावनी मिल सकती है, क्योंकि लिंक लैम्ब्डा को 0 से कम होने की अनुमति देता है, लेकिन ऐसे मूल्यों के लिए पॉइसन वितरण को परिभाषित नहीं किया गया है।
  • जैसा कि पॉइसन प्रतिगमन मानता है कि माध्य और विचरण समान हैं, जब आप लिंक को बदलते हैं तो आप विचरण के बारे में धारणा भी बदल रहे हैं। मेरा अनुभव रहा है कि यह अंतिम बिंदु सबसे अधिक बता रहा है।

लेकिन, अंततः यह एक अनुभवजन्य प्रश्न है। दोनों मॉडलों को फिट करें। आपको जो भी चेक पसंद हो वो करे। यदि पहचान लिंक में AIC कम है, और आपके सभी अन्य चेक पर भी या बेहतर है, तो पहचान लिंक के साथ चलाएं।

लोजिस्टिक मॉडल बनाम रैखिक संभाव्यता मॉडल (यानी, जिसे आप पहचान लिंक के रूप में संदर्भित करते हैं) के मामले में स्थिति बहुत अधिक सीधी है। इकोनोमेट्रिक्स में कुछ बहुत ही आकर्षक मामलों को छोड़कर (जो आप पाएंगे कि अगर आप खोज करते हैं), तो लॉजिट मॉडल बेहतर है: यह कम धारणा बनाता है और ज्यादातर लोग इसका उपयोग करते हैं। इसके स्थान पर रैखिक संभाव्यता मॉडल का उपयोग करने से विकृत होने का संकेत मिलेगा।

जैसा कि मॉडल की व्याख्या करने के संबंध में, यदि आप आर का उपयोग कर रहे हैं, तो दो महान पैकेज हैं जो सभी भारी उठाने करेंगे: प्रभाव , जो कि उपयोग करने के लिए सुपर आसान है, और ज़ेलिग , जो उपयोग करना कठिन है लेकिन यदि आप भविष्यवाणियां करना चाहते हैं तो महान है ।


1
आप उल्लेख करते हैं कि रैखिक संभावना मॉडल "विदेशी" हैं, लेकिन अर्थशास्त्रियों के साथ मेरी बातचीत से (मैं खुद एक सांख्यिकीविद् हूं) ऐसा लगता है कि दो शिविर हैं, जिनमें से एक का तर्क है कि रैखिक संभावना बेहतर है क्योंकि इसमें कम धारणाएं और सीधे मॉडल की अपेक्षा शामिल है , जो एक सामान्य रूप से परवाह है।
zipzapboing

1
मैंने अर्थशास्त्र में विदेशी मामलों का हवाला देकर अपना जवाब दिया। कहा जाता है कि, रैखिक संभाव्यता मॉडल के साथ परेशानी यह है कि यदि आप इसका अनुमान ओएलएस के माध्यम से लगाते हैं तो इसकी धारणाओं का आमतौर पर उल्लंघन होता है। यह मानकर कि मॉडल मापदंडों में रैखिक है, कई मामलों में प्रशंसनीय नहीं है (यानी, जब ओएलएस का उपयोग करके अनुमान लगाया जा सकता है कि आप 0 और 1 के बाहर की संभावनाएं प्राप्त कर सकते हैं)। और, अवशिष्ट दूर से सामान्य के करीब नहीं हो सकते हैं, इसलिए आपको एक सैंडविच अनुमानक या कुछ का उपयोग करने की आवश्यकता है।
टिम

पॉइसन मॉडल के मामले में, मैं यह भी कहूंगा कि एप्लिकेशन अक्सर यह निर्धारित करता है कि आपके सहसंयोजक एडिटिवली कार्य करेंगे (जो तब एक पहचान लिंक होगा) या रैखिक स्तर पर गुणा (जो तब लॉग लिंक होगा)। लेकिन एक पहचान कड़ी के साथ पॉइसन मॉडल भी सामान्य रूप से केवल समझ में आता है और केवल तभी फिट किया जा सकता है जब कोई फिट किए गए गुणांकों पर गैर-सक्रियता की बाधाओं को लागू करता है - यह आर आरजी पैकेज में nnpois फ़ंक्शन का उपयोग करके या NNLM पैकेज में nnlm फ़ंक्शन का उपयोग करके किया जा सकता है। ।
टॉम वेन्सलेर्स

0

पॉइसन मॉडल के मामले में, मैं यह भी कहूंगा कि एप्लिकेशन अक्सर यह निर्धारित करता है कि आपके सहसंयोजक एडिटिवली कार्य करेंगे (जो तब एक पहचान लिंक होगा) या रैखिक स्तर पर गुणा (जो तब लॉग लिंक होगा)। लेकिन एक पहचान लिंक के साथ पॉइसन मॉडल भी सामान्य रूप से केवल समझ में आता है और केवल तभी फिट किया जा सकता है जब कोई फिट किए गए गुणांकों पर गैर-सक्रियता बाधाओं को लागू करता है - यह nnpoisआर addregपैकेज में nnlmफ़ंक्शन का उपयोग करके या फ़ंक्शन का उपयोग करके किया जा सकता है ।NNLMपैकेज। इसलिए मैं इस बात से सहमत नहीं हूं कि किसी को एक पहचान और लॉग लिंक के साथ पॉइसन मॉडल फिट करने चाहिए और यह देखना चाहिए कि कौन सबसे अच्छा एआईसी है और विशुद्ध रूप से सांख्यिकीय आधार पर सर्वश्रेष्ठ मॉडल का अनुमान लगाता है - बल्कि, ज्यादातर मामलों में यह तय होता है। समस्या की अंतर्निहित संरचना जिसे कोई हल करने या हाथ में डेटा लेने की कोशिश करता है।

उदाहरण के लिए, क्रोमैटोग्राफी (जीसी / एमएस विश्लेषण) में एक अक्सर कई अनुमानित गौसियन आकार की चोटियों के सुपरिम्पोज्ड सिग्नल को मापता है और इस सुपरिंपोज्ड सिग्नल को एक इलेक्ट्रॉन गुणक के साथ मापा जाता है, जिसका अर्थ है कि मापा संकेत आयन गणना है और इसलिए पॉइसन वितरित किया गया है। चूँकि प्रत्येक चोटियों की परिभाषा एक सकारात्मक ऊँचाई की होती है और यह क्रियात्मक रूप से कार्य करती है और शोर पोइसन है, इसलिए पहचान लिंक वाला एक नॉनवेजिव पॉइसन मॉडल यहाँ उपयुक्त होगा, और लॉग लिंक पॉइसन मॉडल सादा गलत होगा। इंजीनियरिंग में कुल्बैक-लीब्लर नुकसान का उपयोग अक्सर ऐसे मॉडलों के लिए एक हानि समारोह के रूप में किया जाता है, और इस नुकसान को कम करने के लिए एक गैर-पहचान पहचान-लिंक पॉइसन मॉडल की संभावना का अनुकूलन करने के बराबर है ( अल्फा या बीटा विचलन जैसे अन्य विचलन या हानि उपाय भी हैं) कि एक विशेष मामले के रूप में पॉइसन है)।

नीचे एक संख्यात्मक उदाहरण दिया गया है, जिसमें यह दिखाया गया है कि एक नियमित अप्रतिबंधित पहचान लिंक Poisson GLM फिट नहीं है (गैर-सक्रियता बाधाओं की कमी के कारण) और nonnegativity पहचान-लिंक Poisson मॉडल का उपयोग करने के तरीके पर कुछ विवरणnnpois, यहां एक बैंडेड कोवरिएट मैट्रिक्स का उपयोग करके उन पर पोइसोन शोर के साथ क्रोमैटोग्राफिक चोटियों के एक मापा सुपरपोज़िशन को डिकॉन्फ़ोल्यूट करने के संदर्भ में जिसमें एक चोटी के मापा आकार की स्थानांतरित प्रतियां शामिल हैं। गैर-व्यावहारिकता कई कारणों से महत्वपूर्ण है: (1) यह हाथ में डेटा के लिए एकमात्र यथार्थवादी मॉडल है (यहां चोटियां नकारात्मक ऊंचाई नहीं हो सकती हैं), (2) यह पहचान लिंक के साथ पॉइसन मॉडल को स्थिर रूप से फिट करने का एकमात्र तरीका है अन्यथा कुछ सहसंयोजक मूल्यों के लिए भविष्यवाणियां नकारात्मक हो सकती हैं, जो समझ में नहीं आएंगी और संख्यात्मक समस्याओं को दे देगी जब कोई संभावना का मूल्यांकन करने की कोशिश करेगा), (3) गैर-सक्रियता प्रतिगमन समस्या को नियमित करने के लिए कार्य करती है और स्थिर अनुमान प्राप्त करने में बहुत मदद करती है (जैसे) आप आम तौर पर सामान्य अप्रतिबंधित प्रतिगमन के साथ ओवरफिटिंग की समस्याएं नहीं लेते हैं,nonnegativity बाधाओं का परिणाम है कि अक्सर जमीनी सच्चाई के करीब होते हैं; उदाहरण के लिए प्रदर्शन समस्या नीचे दिए गए उदाहरण के लिए LASSO नियमितीकरण जितना अच्छा है, लेकिन किसी भी नियमितीकरण पैरामीटर को ट्यून करने की आवश्यकता के बिना। ( L0-pseudonorm दंडित प्रतिगमन अभी भी थोड़ा बेहतर प्रदर्शन करता है लेकिन अधिक कम्प्यूटेशनल लागत पर )

# 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")

यहाँ छवि विवरण दर्ज करें

# 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)

यहाँ छवि विवरण दर्ज करें

# 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!!!

यहाँ छवि विवरण दर्ज करें

# 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)

यहाँ छवि विवरण दर्ज करें

# 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)

यहाँ छवि विवरण दर्ज करें

# 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)

यहाँ छवि विवरण दर्ज करें


1
Y1Y

1
@ जब मैंने अब स्पष्ट रूप से अपनी बात बनाने के लिए एक ठोस उदाहरण जोड़ा! भारहीन nonnegative कम से कम वर्गों के मेरे उपयोग पर कोई भी विचार एक वास्तविक nonnegative पहचान-लिंक Poisson मॉडल का स्वागत करने के लिए भी स्वागत किया जाएगा!
टॉम वेसलर्स

Btw - भारित nnls, जिसका उपयोग मैं एक नॉनवेजेटिव आइडेंटिटी-लिंक पॉइसन GLM को लगभग करने के लिए करता हूं, वास्तव में एक नॉनगेटिव पॉइज़न GLM (R + 1 (y + 0.1) का उपयोग करने के लिए एक पुनरावृत्त नॉनवेजेटिव कम से कम वर्गों के एक एकल पुनरावृत्ति का उपयोग करने के लिए मेल खाता है
पॉइसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.