इंटरसेप्ट को हटाना एक अलग मॉडल है, लेकिन बहुत सारे उदाहरण हैं जहां यह वैध है। अब तक के जवाबों पर पहले ही विस्तार से चर्चा की जा चुकी है, जहां सत्य अवरोधन 0. है। मैं कुछ उदाहरणों पर ध्यान केंद्रित करूंगा, जहां हम एक atypical मॉडल पैराट्रिजेशन में रुचि ले सकते हैं।
उदाहरण 1: एनोवा शैली का मॉडल। श्रेणीबद्ध चर के लिए, हम आम तौर पर द्विआधारी वैक्टर एन्कोडिंग समूह सदस्यता बनाते हैं। मानक प्रतिगमन मॉडल अवरोधन + के - 1 डमी वैक्टर के रूप में पैराट्राइज्ड है। अवरोधन "संदर्भ" समूह, या छोड़े गए वेक्टर के लिए अपेक्षित मान को कोड करता है, और शेष वैक्टर प्रत्येक समूह और संदर्भ के बीच अंतर का परीक्षण करते हैं। लेकिन कुछ मामलों में, प्रत्येक समूह का अपेक्षित मूल्य होना उपयोगी हो सकता है।
dat <- mtcars
dat$vs <- factor(dat$vs)
## intercept model: vs coefficient becomes difference
lm(mpg ~ vs + hp, data = dat)
Coefficients:
(Intercept) vs1 hp
26.96300 2.57622 -0.05453
## no intercept: two vs coefficients, conditional expectations for both groups
lm(mpg ~ 0 + vs + hp, data = dat)
Coefficients:
vs0 vs1 hp
26.96300 29.53922 -0.05453
उदाहरण 2: मानकीकृत डेटा का मामला। कुछ मामलों में, कोई मानकीकृत डेटा के साथ काम कर सकता है। इस मामले में, अवरोधन डिजाइन द्वारा 0 है। मुझे लगता है कि इसका एक क्लासिक उदाहरण पुरानी शैली की संरचनात्मक समीकरण मॉडल या कारक था, जो डेटा के सहसंयोजक मैट्रिक्स पर बस संचालित होता था। नीचे दिए गए मामले में, वैसे भी अवरोधन का अनुमान लगाना एक अच्छा विचार है, यदि केवल स्वतंत्रता की अतिरिक्त डिग्री को छोड़ना है (जो आपको वास्तव में वैसे भी खोना चाहिए था क्योंकि इसका मतलब अनुमान लगाया गया था), लेकिन कुछ स्थितियों में से हैं निर्माण, साधन 0 हो सकता है (उदाहरण के लिए, कुछ प्रयोग जहां प्रतिभागी रेटिंग प्रदान करते हैं, लेकिन समान सकारात्मकता और नकारात्मकता देने के लिए विवश होते हैं)।
dat <- as.data.frame(scale(mtcars))
## intercept is 0 by design
lm(mpg ~ hp + wt, data = dat)
Coefficients:
(Intercept) hp wt
3.813e-17 -3.615e-01 -6.296e-01
## leaving the intercept out
lm(mpg ~ 0 + hp + wt, data = dat)
Coefficients:
hp wt
-0.3615 -0.6296
उदाहरण 3: बहुभिन्नरूपी मॉडल और छिपे हुए साक्षात्कार। यह उदाहरण कई मायनों में पहले जैसा है। इस मामले में, डेटा को ढेर कर दिया गया है ताकि दो अलग-अलग चर अब एक लंबे वेक्टर में हों। एक दूसरा चर जानकारी के बारे में जानकारी देता है कि क्या प्रतिक्रिया वेक्टर, y
के अंतर्गत आता है mpg
या नहीं disp
। इस मामले में, प्रत्येक परिणाम के लिए अलग-अलग इंटरसेप्ट प्राप्त करने के लिए, आप समग्र अवरोधन को दबाते हैं और दोनों डमी वैक्टर को माप के लिए शामिल करते हैं। यह एक प्रकार का बहुभिन्नरूपी विश्लेषण है। यह आमतौर पर उपयोग नहीं किया जाता हैlm()
क्योंकि आपके पास बार-बार के उपाय हैं और संभवत: यह अहिंसा के लिए अनुमति चाहिए। हालांकि, कुछ दिलचस्प मामले हैं जहां यह आवश्यक है। उदाहरण के लिए जब यादृच्छिक प्रभावों के साथ मध्यस्थता विश्लेषण करने की कोशिश की जाती है, तो पूर्ण विचरण सहसंयोजक मैट्रिक्स प्राप्त करने के लिए, आपको एक साथ अनुमानित दोनों मॉडल की आवश्यकता होती है, जो डेटा और डमी वैक्टर के कुछ चतुर उपयोग को स्टैक करके किया जा सकता है।
## stack data for multivariate analysis
dat <- reshape(mtcars, varying = c(1, 3), v.names = "y",
timevar = "measure", times = c("mpg", "disp"), direction = "long")
dat$measure <- factor(dat$measure)
## two regressions with intercepts only
lm(cbind(mpg, disp) ~ 1, data = mtcars)
Coefficients:
mpg disp
(Intercept) 20.09 230.72
## using the stacked data, measure is difference between outcome means
lm(y ~ measure, data = dat)
Coefficients:
(Intercept) measurempg
230.7 -210.6
## separate 'intercept' for each outcome
lm(y ~ 0 + measure, data = dat)
Coefficients:
measuredisp measurempg
230.72 20.09
मैं यह तर्क नहीं दे रहा हूं कि इंटरसेप्ट्स को आम तौर पर हटा दिया जाना चाहिए, लेकिन लचीला होना अच्छा है।