मुझे शून्य सहित गैर-नकारात्मक डेटा को कैसे बदलना चाहिए?


191

यदि मेरे पास अत्यधिक सकारात्मक डेटा है तो मैं अक्सर लॉग लेता हूं। लेकिन मुझे अत्यधिक तिरछे गैर-नकारात्मक डेटा के साथ क्या करना चाहिए जिसमें शून्य शामिल हैं? मैंने दो परिवर्तन देखे हैं:

  • लॉग इन करें(एक्स+1) जिसमें नीट फीचर है जो 0 मैप से 0 तक है।
  • लॉग इन करें(एक्स+सी) जहाँ c या तो अनुमानित है या कुछ बहुत छोटे धनात्मक मान पर सेट है।

क्या कोई अन्य दृष्टिकोण हैं? क्या दूसरों पर एक दृष्टिकोण पसंद करने के लिए कोई अच्छा कारण हैं?


19
मैंने कुछ उत्तर संक्षेप में बताए हैं
Rob

5
stat.stackoverflow को बदलने और बढ़ावा देने का शानदार तरीका!
रॉबिन जिरार्ड

हां, मैं सहमत हूं @robingirard (मैं अभी रोब के ब्लॉग पोस्ट के कारण यहां पहुंचा हूं)!
ऐली केसलमैन

बाएं-सेंसर किए गए डेटा के लिए एक आवेदन के लिए, आँकड़े भी देखें ।stackexchange.com/questions/39042/… (जो वर्तमान प्रश्न के अनुसार, स्थान की एक पाली तक विशेषता हो सकता है)।
whuber

2
यह पहली बार में बदलने के उद्देश्य के बिना बदलने के तरीके के बारे में पूछना अजीब लगता है। परिस्थिति क्या है? क्यों बदलना आवश्यक है? यदि हम नहीं जानते कि आप क्या हासिल करना चाहते हैं, तो कोई भी किसी भी चीज़ का सुझाव कैसे दे सकता है ? (जाहिर है एक, सामान्य करने के लिए बदलने के लिए आशा नहीं कर सकते क्योंकि एक (गैर शून्य) सटीक शून्य की संभावना के अस्तित्व शून्य पर वितरण में एक कील, जो कोई परिवर्तन स्पाइक निकाल देंगे तात्पर्य -। यह केवल उसके चारों ओर स्थानांतरित कर सकते हैं)
Glen_b

जवाबों:


55

यह मुझे लगता है कि परिवर्तन का सबसे उपयुक्त विकल्प मॉडल और संदर्भ पर आकस्मिक है।

'0' बिंदु कई अलग-अलग कारणों से उत्पन्न हो सकता है जिनमें से प्रत्येक को अलग तरीके से इलाज करना पड़ सकता है:

  • ट्रंकेशन (रॉबिन के उदाहरण के अनुसार): उपयुक्त मॉडल (जैसे, मिश्रण, उत्तरजीविता मॉडल आदि) का उपयोग करें
  • गुम डेटा: यदि उपयुक्त हो तो डेटा / ड्रॉप टिप्पणियों को इंप्रूव करें।
  • प्राकृतिक शून्य बिंदु (जैसे, आय का स्तर; एक बेरोजगार व्यक्ति की शून्य आय है): आवश्यकतानुसार ट्रांसफ़ॉर्म करें
  • मापने के उपकरण की संवेदनशीलता: शायद, डेटा में एक छोटी राशि जोड़ें?

मैं वास्तव में एक जवाब नहीं दे रहा हूं क्योंकि मुझे संदेह है कि आपके पास शून्य होने पर कोई सार्वभौमिक, 'सही' परिवर्तन नहीं है।


6
मेरे प्रश्न के हर उत्तर ने उपयोगी जानकारी प्रदान की है और मैंने उन सभी को वोट दिया है। लेकिन मैं केवल एक उत्तर का चयन कर सकता हूं और श्रीकांत सर्वश्रेष्ठ अवलोकन आईएमओ प्रदान करता है।
रोब हंडमैन

2
यह भी ध्यान दें कि शून्य-फुलाया मॉडल (अतिरिक्त शून्य हैं और आप कुछ शून्य के बारे में परवाह करते हैं: एक मिश्रण मॉडल), और बाधा मॉडल (शून्य और आप गैर-शून्य के बारे में परवाह करते हैं: एक प्रारंभिक सेंसर मॉडल के साथ दो-चरण मॉडल)।
वेन

82

किसी ने भी उलटा हाइपरबोलिक साइन परिवर्तन का उल्लेख नहीं किया। इसलिए पूर्णता के लिए मैं इसे यहां जोड़ रहा हूं।

इस बॉक्स कॉक्स परिवर्तनों के लिए एक विकल्प है और द्वारा परिभाषित किया गया है जहां θ > 0 । के किसी भी मूल्य के लिए θ , शून्य शून्य करने के लिए मैप करता है। शिफ्ट की अनुमति देने वाला दो पैरामीटर संस्करण भी है, जैसे कि दो-पैरामीटर बीसी परिवर्तन।

f(y,θ)=sinh1(θy)/θ=log[θy+(θ2y2+1)1/2]/θ,
θ>0θBurbidge, मैगी और रॉब (1988) के आकलन सहित आईएचएस परिवर्तन पर चर्चा θ

IHS परिवर्तन नकारात्मक मूल्यों और शून्य सहित पूरे वास्तविक रेखा पर परिभाषित डेटा के साथ काम करता है। के बड़े मूल्यों के लिए यह एक लॉग परिवर्तन की तरह बर्ताव का मूल्य की परवाह किए बिना, θ (0 को छोड़कर)। के रूप में सीमित मामले θ 0 देता है ( y , θ ) yyθθ0f(y,θ)y

यह मुझे ऐसा लगता है जैसे आईएचएस परिवर्तन बहुत बेहतर होना चाहिए, जितना कि यह जाना जाता है।


1
एक अच्छा विकल्प की तरह लग रहा करने के लिए / रसद परिवर्तनोंtanh
Firebug

1
IHS के बारे में कुछ असहमत प्रतीत होते हैं: onlinelibrary.wiley.com/doi/10.1890/10-0340.1/abstract
kjetil b halvorsen

3
वह कागज उलटा साइन परिवर्तन के बारे में है, उलटा हाइपरबोलिक साइन नहीं।
ब्रायन

42

जब प्रतिगमन में एक स्वतंत्र कारक के रूप में चर का उपयोग किया जाता है तो एक उपयोगी दृष्टिकोण इसे दो चर द्वारा प्रतिस्थापित करना है: एक यह द्विआधारी का सूचक है कि क्या यह शून्य है और दूसरा मूल चर का मान है या इसका फिर से अभिव्यक्ति है, जैसे कि इसका लघुगणक। इस तकनीक पर लॉजिस्टिक रिग्रेशन (और अन्य स्थानों पर, मुझे यकीन है) पर होस्मेर और लेमेशो की पुस्तक में चर्चा की गई है । मूल चर के सकारात्मक भाग के छंटनी की संभावना वाले प्लॉट एक उपयुक्त पुनः अभिव्यक्ति की पहचान करने के लिए उपयोगी होते हैं। ( उदाहरण के लिए https://stats.stackexchange.com/a/30749/919 पर विश्लेषण देखें ।)

जब चर एक रेखीय मॉडल में आश्रित होता है, तो सेंसर युक्त प्रतिगमन (जैसे टोबिट ) उपयोगी हो सकता है, फिर से शुरू किए गए लघुगणक का उत्पादन करने की आवश्यकता को कम करता है। यह तकनीक अर्थशास्त्री के बीच आम है।


1
क्या डेटा को शून्य-फुलाया हुआ पॉइज़न इस दृष्टिकोण का एक विशेष मामला है?
डेविड लेबॉयर

4
@ डेविड, हालांकि यह समान लगता है, यह नहीं है, क्योंकि ज़िप आश्रित चर का एक मॉडल है , न कि स्वतंत्र चर।
whuber

1
@whuber इस तकनीक पर लॉजिस्टिक रिग्रेशन पर होस्मेर एंड लेमेशो की पुस्तक में चर्चा की गई है। क्या किसी भी संयोग से आपको पता होगा कि वे इस तकनीक पर किस अध्याय में चर्चा करते हैं? मैं उनकी किताब को देख रहा हूं, लेकिन सही पेज नहीं ढूंढ पा रहा हूं ...
18-22 बजे लैंड्रोनी

1
@landroni H & L तब मेरे दिमाग में ताजा था, इसलिए मुझे विश्वास है कि इस विषय से संबंधित पुस्तक में कुछ है। (मैंने कुछ बहुत बड़े प्रतिगमन मॉडल विकसित करने के लिए इसके साथ परामर्श किया था और कई स्वतंत्र चर का इस तरह से इलाज किया जाना था।) हालांकि, मुझे इस बिंदु पर संदर्भ नहीं मिल रहा है, या तो। इस तकनीक के बारे में मैंने बाद के पोस्टों में लिखा है, यदि आप विवरण की तलाश कर रहे हैं। दो जो साइट खोज में दिखाई देते हैं, वे आँकड़े .stackexchange.com / questions / 6563 और आँकड़े . stackexchange.com/questions/4831 पर हैं
whuber

1
@landroni हां, वे समान हैं, उसी तरह जैसे कि किसी भी बाइनरी वैरिएबल के सभी संख्यात्मक एन्कोडिंग समान हैं। जो भी आप व्याख्या करने के लिए सबसे सुविधाजनक पाते हैं उसे चुनें।
व्हिबर

37

लॉग ट्रांसफ़र शिफ़्ट बॉक्स-कॉक्स परिवर्तनों के विशेष मामले हैं :

y(λ1,λ2)={(y+λ2)λ1-1λ1कब λ10लॉग इन करें(y+λ2)कब λ1=0

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

बॉक्स-कॉक्स परिवर्तनों को प्राथमिकता देने का एक कारण यह है कि वे रैखिक मॉडल के लिए मान्यताओं को सुनिश्चित करने के लिए विकसित किए गए हैं। यह दिखाने के लिए कुछ कार्य किए गए हैं कि यदि आपका डेटा सामान्यता में परिवर्तित नहीं किया जा सकता है, तब भी अनुमानित एक सममित वितरण के लिए ले जाता है।λ

मुझे यकीन नहीं है कि यह आपके डेटा को कितनी अच्छी तरह से संबोधित करता है, क्योंकि यह हो सकता है कि जो आपके द्वारा उल्लिखित लॉग ट्रांसफ़ॉर्म है, लेकिन यह requried λ के दूसरे आकलन को देखने के लायक हो सकता है। उचित।λ=(0,1)λ

आर में, boxcox.fitपैकेज में फ़ंक्शन geoRआपके लिए मापदंडों की गणना करेगा।


हम्म, नई लाइनों को स्वीकार करने के लिए लेटेक्स "शुरुआती मामले" नहीं प्राप्त कर सकते हैं। : - /
ars

@ मैं शुरू मामलों का उपयोग करने के लिए eqns तय की। मुझे उम्मीद है कि मैं इस प्रक्रिया में eqns mangle नहीं किया था।

1
@ रोब: ओह, सॉरी। डिगल का जियोआर जाने का रास्ता है - लेकिन lambda2=TRUEतर्कों में निर्दिष्ट है boxcox.fit। (जवाब भी अद्यतन।)
ars

3
@ gd047: यहां एक अच्छा संदर्भ है: एलिवेटर
ars

6
जो कोई भी यह पढ़कर सोचता है कि इस फ़ंक्शन का क्या हुआ, अब इसे कहा जाता है boxcoxfit
स्ट्रगू

19

मैं उस शून्य! = अनुपस्थित डेटा को मान रहा हूं, क्योंकि यह एक बिल्कुल अलग प्रश्न है।

जब कई रैखिक प्रतिगमन में शून्य को कैसे संभालना है, इसके बारे में सोचते हुए, मैं विचार करता हूं कि वास्तव में हमारे पास कितने शून्य हैं?

केवल शून्य का एक जोड़ा

यदि मेरे पास एक बड़े डेटा सेट में एक भी शून्य है, तो मैं निम्नलिखित करता हूं:

  1. बिंदु निकालें, लॉग लें और मॉडल को फिट करें
  2. बिंदु में एक छोटा सी जोड़ें , लॉग लें और मॉडल को फिट करें

क्या मॉडल में बदलाव होता है? पैरामीटर मूल्यों के बारे में क्या? यदि मॉडल बिंदु को हटाने के लिए काफी मजबूत है, तो मैं सी जोड़ने के त्वरित और गंदे दृष्टिकोण के लिए जाऊंगा ।

आप इस प्रक्रिया को थोड़ा कम क्रूड कर सकते हैं और आर्क्स के उत्तर में वर्णित पारियों के साथ बॉक्सकॉक्स विधि का उपयोग कर सकते हैं।

बड़ी संख्या में शून्य

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


15

यदि आप जल्दी और गंदे कुछ चाहते हैं तो वर्गमूल का उपयोग क्यों नहीं करें?


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

2
+1। घन जड़ों पर एक छोटे से लेख के लिए, stata-journal.com/article.html?article=st0223 देखें (यह पहली तिमाही 2014 से एक मुफ्त .pdf होगा।)
निक कॉक्स

2
शून्य का एक वर्गमूल, शून्य है, इसलिए केवल गैर-शून्य मानों को बदल दिया जाता है। यह स्पाइक से निपटने के लिए कुछ भी नहीं करता है, यदि शून्य फुलाया जाता है, और गंभीर समस्याएं पैदा कर सकता है, अगर समूहों में, प्रत्येक में शून्य की एक अलग राशि होती है। दूसरे शब्दों में, यदि कुछ समूहों में कई शून्य हैं और अन्य में कुछ हैं, तो यह परिवर्तन कई चीजों को नकारात्मक तरीके से प्रभावित कर सकता है। सबसे बड़े विचरण वाले समूह के लिए (जिसमें सबसे कम शून्य भी था), लगभग सभी मूल्यों को रूपांतरित किया जा रहा है। इसके विपरीत, सबसे अधिक शून्य वाले, बहुत अधिक मूल्यों को रूपांतरित नहीं किया जाता है। यह बदल सकता है कि किस समूह में सबसे बड़ा विचरण है।
D_Williams

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

10

मेरा मानना ​​है कि आपके पास निरंतर डेटा है।

यदि डेटा में शून्य शामिल है तो इसका मतलब है कि आपके पास शून्य पर स्पाइक है जो आपके डेटा के कुछ विशेष पहलू के कारण हो सकता है। यह पवन ऊर्जा में उदाहरण के लिए प्रकट होता है, 2 मीटर / सेकंड के नीचे की हवा शून्य शक्ति (इसे कट इन कहा जाता है) और हवा के ऊपर (लगभग कुछ) 25 मीटर / सेकंड में भी शून्य बिजली का उत्पादन होता है (सुरक्षा कारण के लिए, इसे कट ऑफ कहा जाता है) । जबकि उत्पादित पवन ऊर्जा का वितरण निरंतर लगता है कि शून्य में स्पाइक है।

मेरा समाधान: इस मामले में, मैं शून्य में स्पाइक के मिश्रण के साथ काम करके जीरो का अलग से इलाज करने का सुझाव देता हूं और आपके द्वारा वितरण के भाग के लिए उपयोग किए जाने वाले मॉडल की निरंतरता (wrt Lebesgue) है।


9

@RobHyndman द्वारा उपलब्ध कराए गए उत्तर की तुलना फ़ॉर्म के साथ नकारात्मक मानों में परिवर्तित किए गए लॉग-प्लस-वन में करने के लिए:

टी(एक्स)=संकेत(एक्स)लॉग इन करें(|एक्स|+1)
r = -1000:1000

l = sign(r)*log1p(abs(r))
l = l/max(l)
plot(r, l, type = "l", xlab = "Original", ylab = "Transformed", col = adjustcolor("red", alpha = 0.5), lwd = 3)

#We scale both to fit (-1,1)
for(i in exp(seq(-10, 100, 10))){
  s = asinh(i*r)

  s = s / max(s)
  lines(r, s, col = adjustcolor("blue", alpha = 0.2), lwd = 3)
}
legend("topleft", c("asinh(x)", "sign(x) log(abs(x)+1)"), col = c("blue", "red"), lty = 1)

θθ1θ0

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


θएक्स=0


8

चूंकि दो-पैरामीटर फिट बॉक्स-कॉक्स प्रस्तावित किया गया है, यहां इनपुट डेटा को फिट करने के लिए कुछ आर है, इस पर एक मनमाना फ़ंक्शन चलाएं (जैसे समय श्रृंखला पूर्वानुमान), और फिर उलटा आउटपुट लौटाएं:

# Two-parameter Box-Cox function
boxcox.f <- function(x, lambda1, lambda2) {
  if (lambda1!=0) {
    return(((x + lambda2) ^ lambda1 - 1) / lambda1)
  } else {
    return(log(x + lambda2))
  }
}

# Two-parameter inverse Box-Cox function
boxcox.inv <- function(x, lambda1, lambda2) {
  if (lambda1!=0) {
    return((lambda1 * x + 1) ^ (1 / lambda1) - lambda2)
  } else {
    return(exp(x) - lambda2)
  }
}

# Function to Box-Cox transform x, apply function g, 
# and return inverted Box-Cox output y
boxcox.fit.apply <- function(x, g) {
  require(geoR)
  require(plyr)

  # Fit lambdas
  t <- try(lambda.pair <- boxcoxfit(x, lambda2=T)$lambda)

  # Estimating both lambdas sometimes fails; if so, estimate lambda1 only
  if (inherits(t, "try-error")) {
    lambda1 <- boxcoxfit(x)$lambda
    lambda2 <- 0
  } else {
    lambda1 <- lambda.pair[1]
    lambda2 <- lambda.pair[2]
  }
  x.boxcox <- boxcox.f(x, lambda1, lambda2)

  # Apply function g to x.boxcox. This should return data similar to x (e.g. ts)
  y <- aaply(x.boxcox, 1, g)

  return(boxcox.inv(y, lambda1, lambda2))
}

5

मान लीजिए कि प्रत्येक अमेरिकी एक निश्चित वर्ष (कुल खरीद मूल्य) में एक नई कार पर खर्च करता है। वाई 0 पर स्पाइक करेगा; 0 और लगभग 12,000 के बीच कोई मान नहीं होगा; और अन्य मूल्य ज्यादातर किशोर, बीस और तीस के दशक में ले लेंगे। इस तरह की खरीदारी करने की आवश्यकता और / या ब्याज के स्तर के लिए भविष्यवाणियां भविष्यवाणियां होंगी। आवश्यकता या रुचि शायद ही उन व्यक्तियों के लिए शून्य कहा जा सकता है जिन्होंने कोई खरीद नहीं की; इन पैमानों पर गैर-खरीदार वाई की तुलना में खरीदारों के बहुत करीब होंगे या वाई का लॉग भी सुझाव देगा। इस तरह के मामले में, लेकिन स्वास्थ्य देखभाल में, मैंने पाया कि सबसे सटीक भविष्यवाणियां, परीक्षण-सेट / प्रशिक्षण-सेट क्रॉसवालिडेशन द्वारा, बढ़ती क्रम में, द्वारा प्राप्त की गईं,

  1. Y के बाइनरी संस्करण पर लॉजिस्टिक रिग्रेशन,
  2. Y पर OLS,
  3. 5 श्रेणियों में वाई पर आधारित साधारण प्रतिगमन (PLUM) (ताकि खरीदारों को 4 समान आकार के समूहों में विभाजित करें),
  4. 5 श्रेणियों में वाई बिन्ड पर बहुराष्ट्रीय लॉजिस्टिक रिग्रेशन,
  5. Y के लॉग पर OLS (10) (मैंने क्यूब रूट को आज़माने के बारे में नहीं सोचा था), और
  6. Y पर ओएलएस को 5 श्रेणियों में रखा गया है।

कुछ एक निरंतर निर्भर चर के इस वर्गीकरण पर याद करेंगे। हालाँकि, यह कुछ जानकारी का त्याग करता है, लेकिन श्रेणीबद्धता स्थिति के एक महत्वपूर्ण अंतर्निहित पहलू को पुनर्स्थापित करने में मदद करती है - फिर से, कि "शून्य" बाकी की तुलना में वाई के संकेत के समान है।


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

1
@HongOoi - क्या आप इस दृष्टिकोण के लागू होने और लागू नहीं होने पर कोई रीडिंग सुझा सकते हैं?
rolando2

4

यहां चर्चा की गई Yeo-Johnson पावर ट्रांसफॉर्मेशन की में बॉक्स कॉक्स पावर ट्रांसफॉर्मेशन की खूबियों पर निर्माण करते हुए शून्य और निगेटिव को संभालने के लिए डिज़ाइन किए गए उत्कृष्ट गुण हैं। यह वही है जो मैं आमतौर पर जाता हूं जब मैं शून्य या नकारात्मक डेटा के साथ काम कर रहा हूं।

यहां येओ-जॉनसन बेहतर क्यों है, यह स्पष्ट करने के लिए पेशेवरों / विपक्ष के साथ परिवर्तनों का एक सारांश है।

लॉग

पेशेवरों: सकारात्मक डेटा के साथ अच्छा करता है।

विपक्ष: शून्य को नहीं संभालता है।

> log(0)
[1] -Inf

लॉग प्लस 1

पेशेवरों: प्लस 1 ऑफसेट सकारात्मक डेटा के अलावा शून्य को संभालने की क्षमता जोड़ता है।

विपक्ष: नकारात्मक डेटा के साथ विफल

> log1p(-1)
[1] -Inf
> log1p(-2)
[1] NaN
Warning message:
In log1p(-2) : NaNs produced

वर्गमूल

पेशेवरों: एक बिजली परिवर्तन का उपयोग करता है जो शून्य और सकारात्मक डेटा को संभाल सकता है।

विपक्ष: नकारात्मक डेटा के साथ विफल

> sqrt(-1)
[1] NaN
Warning message:
In sqrt(-1) : NaNs produced

बॉक्स कॉक्स

आर कोड:

box_cox <- function(x, lambda) {

    eps <- 0.00001
    if (abs(lambda) < eps)
        log(x)
    else
        (x ^ lambda - 1) / lambda

}

पेशेवरों: बड़े पैमाने पर बिजली परिवर्तनों को सक्षम करता है

विपक्ष: शून्य और नकारात्मक के साथ मुद्दों से पीड़ित (यानी केवल सकारात्मक डेटा को संभाल सकता है।

> box_cox(0, lambda = 0)
[1] -Inf
> box_cox(0, lambda = -0.5)
[1] -Inf
> box_cox(-1, lambda = 0.5)
[1] NaN

येओ जॉनसन

आर कोड:

yeo_johnson <- function(x, lambda) {

    eps <- .000001
    not_neg <- which(x >= 0)
    is_neg  <- which(x < 0)

    not_neg_trans <- function(x, lambda) {
        if (abs(lambda) < eps) log(x + 1)
        else ((x + 1) ^ lambda - 1) / lambda
    }

    neg_trans <- function(x, lambda) {
        if (abs(lambda - 2) < eps) - log(-x + 1)
        else - ((-x + 1) ^ (2 - lambda) - 1) / (2 - lambda)
    }

    x[not_neg] <- not_neg_trans(x[not_neg], lambda)

    x[is_neg] <- neg_trans(x[is_neg], lambda)

    return(x)

}

पेशेवरों: सकारात्मक, शून्य और नकारात्मक डेटा को संभाल सकते हैं।

विपक्ष: कोई भी नहीं जो मैं सोच सकता हूं। गुण बॉक्स-कॉक्स के समान हैं लेकिन शून्य और नकारात्मक डेटा को संभाल सकते हैं।

> yeo_johnson(0, lambda = 0)
[1] 0
> yeo_johnson(0, lambda = -0.5)
[1] 0
> yeo_johnson(-1, lambda = 0.5)
[1] -1.218951

1
येओ-जॉनसन के लिए विपक्ष: सकारात्मक और नकारात्मक के लिए अलग-अलग परिवर्तन, और लैम्ब्डा के दोनों ओर मूल्यों के लिए, जादुई ट्यूनिंग मूल्य (एप्सिलॉन; और लैम्ब्डा क्या है?)। फायरबग के उत्तर में दिखाए गए सरल नकारात्मक-विस्तारित लॉग परिवर्तन की तुलना में कोई स्पष्ट रूप से स्पष्ट लाभ नहीं है, जब तक कि आपको स्केल्ड पावर ट्रांसफ़ॉर्मेशन (बॉक्स-कॉक्स के रूप में) की आवश्यकता न हो।
कोनराड रुडोल्फ

1

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

आप यहां क्लिक करके पेपर पा सकते हैं: https://ssrn.com/abstract=3444996

लॉग इन करें(y)=βलॉग इन करें(एक्स)+εβyएक्स

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

हमारे लेख में, हम वास्तव में एक उदाहरण प्रदान करते हैं जहां बहुत छोटे स्थिरांक वास्तव में उच्चतम पूर्वाग्रह प्रदान करते हैं। हम पूर्वाग्रह की अभिव्यक्ति प्रदान करते हैं।

दरअसल, पॉइसन स्यूडो मैक्सिमम लाइकेलिहुड (पीपीएमएल) को इस मुद्दे का अच्छा समाधान माना जा सकता है। निम्नलिखित प्रक्रिया पर विचार करना होगा:

yमैं=मैंexp(α+एक्समैं'β)(मैं|एक्समैं)=1

βमैंyमैं=0(मैं|एक्समैं)=1(yमैं-exp(α+एक्समैं'β)|एक्समैं)=0

Σमैं=1एन(yमैं-exp(α+एक्समैं'β))एक्समैं'=0

yमैं=0

β

लॉग इन करें(yमैं+exp(α+एक्समैं'β))=एक्समैं'β+ηमैं

हम दिखाते हैं कि यह अनुमान निष्पक्ष है और इसका अनुमान जीएमएम के साथ किसी भी मानक सांख्यिकीय सॉफ्टवेयर से लगाया जा सकता है। उदाहरण के लिए, स्टैटा के साथ कोड की सिर्फ एक पंक्ति को निष्पादित करके इसका अनुमान लगाया जा सकता है।

हमें उम्मीद है कि यह लेख मदद कर सकता है और हम आपसे प्रतिक्रिया प्राप्त करना पसंद करेंगे।

क्रिस्टोफ बेलेगो और लुई-डैनियल पप क्रेस्ट - इकोले पॉलीटेक्निक - ENSAE

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.