क्या स्वतंत्र चरों के लिए परिवर्तन जैसा एक बॉक्स-कॉक्स है? यही है, एक परिवर्तन जो चर का अनुकूलन करता है ताकि एक रैखिक मॉडल के लिए अधिक उचित फिट हो सके?y~f(x)
यदि हां, तो क्या इसके साथ कोई कार्य करना है R
?
क्या स्वतंत्र चरों के लिए परिवर्तन जैसा एक बॉक्स-कॉक्स है? यही है, एक परिवर्तन जो चर का अनुकूलन करता है ताकि एक रैखिक मॉडल के लिए अधिक उचित फिट हो सके?y~f(x)
यदि हां, तो क्या इसके साथ कोई कार्य करना है R
?
जवाबों:
जॉन टुके ने रिश्तों को रैखिक बनाने के लिए चर के फिर से अभिव्यक्ति खोजने के लिए अपनी " तीन बिंदु पद्धति " की वकालत की ।
मैं उनकी पुस्तक, Exploratory Data Analysis की एक अभ्यास के साथ वर्णन करूंगा । ये एक प्रयोग से पारा वाष्प दबाव डेटा हैं जिसमें तापमान विविध था और वाष्प दबाव मापा गया था।
pressure <- c(0.0004, 0.0013, 0.006, 0.03, 0.09, 0.28, 0.8, 1.85, 4.4,
9.2, 18.3, 33.7, 59, 98, 156, 246, 371, 548, 790) # mm Hg
temperature <- seq(0, 360, 20) # Degrees C
संबंध जोरदार ढंग से अस्पष्ट है: चित्रण में बाएं पैनल को देखें।
क्योंकि यह एक खोजपूर्ण अभ्यास है, हम उम्मीद करते हैं कि यह इंटरैक्टिव होगा। विश्लेषक को भूखंड में तीन "विशिष्ट" बिंदुओं की पहचान करके शुरू करने के लिए कहा जाता है : प्रत्येक छोर के पास और बीच में एक। मैंने यहां ऐसा किया है और उन्हें लाल रंग में चिह्नित किया है। (जब मैंने पहली बार यह अभ्यास किया था, तो मैंने अलग-अलग बिंदुओं का इस्तेमाल किया, लेकिन एक ही परिणाम पर पहुंचे।)
तीन बिंदु पद्धति में, एक खोज - जानवर बल द्वारा या अन्यथा - एक बॉक्स-कॉक्स परिवर्तन के लिए कि जब निर्देशांक में से किसी एक पर लागू किया जाता है - या तो y या x - होगा (ए) ठेठ बिंदुओं को लगभग एक पर रखें लाइन और (बी) एक "अच्छी" शक्ति का उपयोग करता है, जिसे आमतौर पर शक्तियों की "सीढ़ी" से चुना जाता है जो विश्लेषक द्वारा व्याख्या योग्य हो सकता है।
बाद में स्पष्ट होने वाले कारणों के लिए, मैंने "ऑफसेट" की अनुमति देकर बॉक्स-कॉक्स परिवार को बढ़ाया है ताकि रूप में परिवर्तन हो सकें
R
box.cox <- function(x, parms=c(1,0)) {
lambda <- parms[1]
offset <- parms[2]
if (lambda==0) log(x+offset) else ((x+offset)^lambda - 1)/lambda
}
threepoint <- function(x, y, ladder=c(1, 1/2, 1/3, 0, -1/2, -1)) {
# x and y are length-three samples from a dataset.
dx <- diff(x)
f <- function(parms) (diff(diff(box.cox(y, parms)) / dx))^2
fit <- nlm(f, c(1,0))
parms <- fit$estimate #$
lambda <- ladder[which.min(abs(parms[1] - ladder))]
if (lambda==0) offset = 0 else {
do <- diff(range(y))
offset <- optimize(function(x) f(c(lambda, x)),
c(max(-min(x), parms[2]-do), parms[2]+do))$minimum
}
c(lambda, offset)
}
जब पारा वाष्प डाटासेट में दबाव (y) मूल्यों पर तीन-बिंदु पद्धति लागू होती है, तो हम भूखंडों के मध्य पैनल को प्राप्त करते हैं।
data <- cbind(temperature, pressure)
n <- dim(data)[1]
i3 <- c(2, floor((n+1)/2), n-1)
parms <- threepoint(temperature[i3], pressure[i3])
y <- box.cox(pressure, parms)
parms
हम प्रश्न के संदर्भ में एक बिंदु पर पहुंच गए हैं: जो भी कारण (आमतौर पर अवशिष्ट विचरण को स्थिर करने के लिए) के लिए, हमने आश्रित चर को फिर से व्यक्त किया है, लेकिन हम पाते हैं कि एक स्वतंत्र चर के साथ संबंध nonlinear है। इसलिए अब हम संबंध को रेखीय बनाने के प्रयास में स्वतंत्र चर को फिर से व्यक्त करने की ओर मुड़ते हैं । यह उसी तरह से किया जाता है, केवल x और y की भूमिकाओं को उलट कर:
parms <- threepoint(y[i3], temperature[i3])
x <- box.cox(temperature, parms)
parms
यह एक अच्छा उदाहरण है कि जांच के विषय को समझने के लिए सांख्यिकीय अन्वेषण की आवश्यकता कैसे है । वास्तव में, पारस्परिक निरपेक्ष तापमान भौतिक कानूनों में हर समय दिखाई देते हैं। नतीजतन, इस सदी पुराने, सरल, डेटासेट का पता लगाने के लिए अकेले सरल ईडीए विधियों का उपयोग करके , हमने क्लॉजियस-क्लैप्रोन संबंध को फिर से खोज लिया है : वाष्प दबाव का लघुगणक पारस्परिक पूर्ण तापमान का एक रैखिक कार्य है। इतना ही नहीं, हमारे पास निरपेक्ष शून्य ( का बहुत बुरा अनुमान नहीं है
जॉन फॉक्स द्वारा "रिग्रेशन डायग्नोस्टिक्स" पर इन स्लाइड्स पर एक नज़र डालें ( यहां से उपलब्ध है , संदर्भों के साथ पूर्ण), जो कि गैर-अस्तित्वता को बदलने के मुद्दे पर संक्षेप में चर्चा करते हैं। इसमें शक्ति परिवर्तनों (स्वीकृत उत्तर द्वारा संबोधित) का चयन करने के लिए तुकी के "उभरे हुए नियम" को शामिल किया गया है, लेकिन परिवर्तनों के बॉक्स-कॉक्स और यिओ-जॉनसन परिवारों का भी उल्लेख किया गया है। स्लाइड्स में देखें खंड 3.6। एक ही लेखक द्वारा अधिक औपचारिक रूप से लेने के लिए जे। फॉक्स, एप्लाइड रिग्रेशन एनालिसिस और सामान्यीकृत रैखिक मॉडल, दूसरा संस्करण (ऋषि, 2008) देखें ।
जैसा कि वास्तविक आर पैकेजों की मदद से होता है, जे। फॉक्स और एस वीसबर्ग द्वारा लिखित कार पैकेज पर एक नज़र डालें । यह पैकेज जे। फॉक्स और एस। वीसबर्ग, एन आर कंपैनियन टू एप्लाइड रिग्रेशन, दूसरा संस्करण, (ऋषि, 2011) के साथ है , एक और पढ़ना चाहिए। उस पैकेज का उपयोग करके आप basicPower()
(साधारण पावर ट्रांसफॉर्मेशन), bcPower()
(बॉक्स-कॉक्स ट्रांसफॉर्मेशन) और yjPower()
(यो-जॉनसन ट्रांसफॉर्मेशन) से शुरुआत कर सकते हैं । पावरट्रेनफॉर्म () भी है :
फ़ंक्शन पावरट्रेनफॉर्म का उपयोग एक अविभाज्य या एक बहुभिन्नरूपी यादृच्छिक चर के परिवर्तनों को सामान्य करने के लिए किया जाता है।
इन परिवर्तनों के पीछे सिद्धांत पर और कम्प्यूटेशनल दृष्टिकोण पर अधिक जानकारी के लिए दोनों पुस्तकों की जांच करें।
R
और, इसके बारे में एक पल के लिए सोच रहा हूं, मुझे यकीन नहीं है कि कोई भी ऐसा कैसे करेगा। "सबसे अधिक रैखिक" परिवर्तन सुनिश्चित करने के लिए आप किन मानदंडों का अनुकूलन करेंगे? आकर्षक है, लेकिन जैसा कि मेरे उत्तर में यहां देखा गया है , R 2 अकेले यह देखने के लिए इस्तेमाल नहीं किया जा सकता है कि क्या किसी मॉडल की रैखिकता धारणा संतुष्ट है। क्या आपके मन में कुछ मापदंड थे?