प्रतिगमन में रैखिकता का परीक्षण करने में कठिनाई


21

में सांख्यिकीय मॉडलिंग: दो संस्कृतियों लिओ ब्रामान लिखते हैं

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

ब्रेमेन अपने अनुकरण का विवरण नहीं देता है। वह एक कागज का संदर्भ देता है जो कहता है कि वह अपने अवलोकन के लिए सैद्धांतिक औचित्य देता है, लेकिन कागज अप्रकाशित है।

क्या किसी ने ब्रेमेन के दावे का समर्थन करने के लिए एक प्रकाशित सिमुलेशन परिणाम या सैद्धांतिक पेपर देखा है?


1
चरम को न्याय करना मुश्किल है, प्रत्येक फ़ंक्शन कुछ सीमा पर रैखिक दृष्टिकोण करता है; जैसा कि हम टेलर सीरीज़ के अपघटन से जानते हैं। बर्नहैम और एंडरसन की सूचना के चयन के मॉडल मानदंड के दृष्टिकोण से यह समस्या क्यों नहीं होगी?
पैट्रिक मैककैन

जवाबों:


11

मैंने एक सिमुलेशन बनाया, जो ब्रेमेन के विवरण का जवाब देगा और केवल स्पष्ट पाया जाएगा: परिणाम संदर्भ पर निर्भर करता है और जो कि "चरम" द्वारा होता है। "

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

set.seed(41)
p <- 7                                            # Dimensions
n <- 2^p                                          # Observations
x <- as.matrix(do.call(expand.grid, lapply(as.list(1:p), function(i) c(-1,1))))
x <- x + runif(n*p, min=-1, max=1)
x <- cbind(x, x.12 = x[,1]*x[,2])                 # The nonlinear part
x <- apply(x, 2, function(y) (y - mean(y))/sd(y)) # Standardization

आधार OLS मॉडल (बिना अशुद्धता के) के लिए हमें कुछ गुणांक और अवशिष्ट त्रुटि के मानक विचलन को निर्दिष्ट करना होगा। यहां इकाई गुणांक और एक तुलनीय एसडी का एक सेट है:

beta <- rep(c(1,-1), p)[1:p]
sd <- 1

स्थिति को स्पष्ट करने के लिए, यहां सिमुलेशन का एक कठिन-कोडित चलना है। यह निर्भर चर उत्पन्न करता है, इसके मूल्यों को सारांशित करता है, सभी चर के पूर्ण सहसंबंध मैट्रिक्स (इंटरैक्शन सहित) को प्रदर्शित करता है, और एक स्कैप्लेट मैट्रिक्स को प्रदर्शित करता है। तब यह ओएलएस प्रतिगमन करता है। निम्नलिखित में, की परस्पर क्रिया गुणांक अन्य गुणांक (सभी या बराबर ) की तुलना में काफी छोटा है , इसलिए इसे "चरम" कहना मुश्किल होगा:1/41-1

gamma = 1/4          # The standardized interaction term
df <- data.frame(x)
df$y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
summary(df)
cor(df)*100
plot(df, lower.panel=function(x,y) lines(lowess(y~x)), 
     upper.panel=function(x,y) points(x,y, pch=".", cex=4))
summary(lm(df$y ~ x))

बल्कि उत्पादन यहाँ सभी के माध्यम से वेड से, चलो चलो देखो इन के उत्पादन का उपयोग कर डेटा पर plotआदेश:

एसपीएम

निचले त्रिकोण पर निचला निशान अनिवार्य रूप से बातचीत ( x.12) और आश्रित चर ( y) और अन्य चर के बीच मामूली रैखिक संबंधों के बीच कोई रैखिक संबंध नहीं दिखाता है और y। OLS परिणाम इसकी पुष्टि करते हैं; बातचीत बहुत महत्वपूर्ण है:

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.0263     0.0828    0.32    0.751    
xVar1         0.9947     0.0833   11.94   <2e-16 ***
xVar2        -0.8713     0.0842  -10.35   <2e-16 ***
xVar3         1.0709     0.0836   12.81   <2e-16 ***
xVar4        -1.0007     0.0840  -11.92   <2e-16 ***
xVar5         1.0233     0.0836   12.24   <2e-16 ***
xVar6        -0.9514     0.0835  -11.40   <2e-16 ***
xVar7         1.0482     0.0835   12.56   <2e-16 ***
xx.12         0.1902     0.0836    2.27    0.025 *  

मैं अशुद्धता के परीक्षण के रूप में इंटरैक्शन शब्द का पी-वैल्यू ले लूंगा: जब यह पी-वैल्यू पर्याप्त रूप से कम है (आप बस कितना कम चुन सकते हैं), हमने नॉनलाइनरिटी का पता लगाया होगा।

(वास्तव में हम जो खोज रहे हैं, उसके बारे में यहां एक सूक्ष्मता है। व्यवहार में हमें सभी 7 * 6/2 = 21 संभव है कि इस तरह के द्विघात इंटरैक्शन की जांच करने की आवश्यकता हो सकती है, साथ ही शायद एक शब्द पर ध्यान केंद्रित करने के बजाय 7 और द्विघात शब्द। जैसा कि यहां किया गया है। हम इन 28 अंतर-संबंधित परीक्षणों के लिए एक सुधार करना चाहते हैं। मैं स्पष्ट रूप से यहां यह सुधार नहीं कर रहा हूं, क्योंकि इसके बजाय मैं पी-मूल्यों के सिम्युलेटेड वितरण को प्रदर्शित करता हूं। आप पता लगाने की दरों को सीधे पढ़ सकते हैं। महत्व की अपनी सीमा के आधार पर अंत में हिस्टोग्राम ।)

लेकिन चलो यह विश्लेषण सिर्फ एक बार नहीं करते हैं; चलो yएक ही मॉडल और एक ही डिज़ाइन मैट्रिक्स के अनुसार प्रत्येक पुनरावृत्ति में नए मान उत्पन्न करते हुए, इसे बहुत बार करते हैं । इसे पूरा करने के लिए, हम एक पुनरावृत्ति को पूरा करने के लिए एक फ़ंक्शन का उपयोग करते हैं और इंटरैक्शन शब्द का पी-वैल्यू लौटाते हैं:

test <- function(gamma, sd=1) {
  y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
  fit <- summary(lm(y ~ x))
  m <- coef(fit)
  n <- dim(m)[1]
  m[n, 4]
}

मैं पी-वैल्यू के हिस्टोग्राम के रूप में सिमुलेशन परिणाम पेश करने का विकल्प चुनता हूं, gammaइंटरैक्शन शब्द के मानकीकृत गुणांक को बदलता है । सबसे पहले, हिस्टोग्राम:

h <- function(g, n.trials=1000) {
  hist(replicate(n.trials, test(g, sd)), xlim=c(0,1), 
       main=toString(g), xlab="x1:x2 p-value")
}
par(mfrow=c(2,2)) # Draw a 2 by 2 panel of results

अब काम करना है। यह प्रति सेकंड 1000 परीक्षणों के लिए कुछ सेकंड लेता है (और चार स्वतंत्र सिमुलेशन, अंतःक्रियात्मक शब्द के दिए गए मूल्य से शुरू होता है और हर बार इसे सफलतापूर्वक रोकते हैं):

temp <- sapply(2^(-3:0) * gamma, h)

परिणाम:

हिस्टोग्राम

निचले दाएं से पीछे की ओर पढ़ना, ये प्लॉट बताते हैं कि इस डिज़ाइन मैट्रिक्स के लिए x, त्रुटियों के इस मानक विचलन के sdलिए, और इन मानकीकृत गुणांक के लिए beta, ओएलएस मानकीकृत इंटरैक्शन का पता लगा सकता है (अन्य गुणांक के आकार का केवल एक-चौथाई ) मज़बूती से, 80% से अधिक समय (पी-मूल्य के लिए 5% सीमा का उपयोग करके - कई तुलनाओं के लिए सही करने के बारे में संक्षिप्त चर्चा को याद करें, जिसे मैं अब अनदेखा कर रहा हूं); यह अक्सर (समय का लगभग 20%) का एक इंटरैक्शन आकार का पता लगा सकता है ; यह कभी-कभी आकार की बातचीत का पता लगाएगा1/41/81/16, और वास्तव में किसी भी छोटे इंटरैक्शन की पहचान नहीं कर सकते हैं। यहां नहीं दिखाया गया हैgamma बराबर एक हिस्टोग्राम , जो दर्शाता है कि कई तुलनाओं के लिए सही होने पर भी, एक द्विघात बातचीत इस बड़े का लगभग निश्चित रूप से पता लगाया जाता है।1/2

चाहे आप इन इंटरैक्शन को लेते हैं, जो आकार में से तक "चरम" हो या नहीं, आपके दृष्टिकोण पर निर्भर करेगा, प्रतिगमन स्थिति (जैसा कि , और ) द्वारा व्यक्त किया गया है , कितने स्वतंत्र परीक्षणों पर nonlinearity की आप के संचालन की कल्पना है, और, गति Breiman, जिन्हें मैं आप पीसने के लिए एक कुल्हाड़ी है या नहीं पर बहुत सम्मान करते हैं, शायद। आप निश्चित रूप से ओएलएस के लिए ग़ैर-हीनता का पता लगाना मुश्किल बना सकते हैं: बस इतना बढ़ाएँ कि वह ग़ैर- क़ानूनी रूप से बदल जाए और साथ ही साथ तंदुरुस्ती के लिए कई अलग-अलग परीक्षणों का आयोजन करे।1/321/4xsdbetasd

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


+1, बस FYI करें, मैं आप अपने डेटा के मानकीकरण के लिए अपने स्वयं के समारोह लिखने नोटिस, आप पा सकते ? पैमाने उपयोगी।
गूँग - मोनिका

धन्यवाद, @ गुंग। मुझे यकीन था कि इस तरह के समारोह के आसपास था, लेकिन इसके नाम के बारे में सोच भी नहीं सकता था। मैं बहुत नया हूं, Rऔर हमेशा ऐसे संकेत देता हूं ।
whuber

1

निश्चित नहीं है कि यह प्रश्न का अंतिम उत्तर देता है, लेकिन मैं इस पर एक नज़र डालूंगा । विशेष रूप से बिंदु 2. कागज के परिशिष्ट A2 में चर्चा भी देखें ।


देखने के लिए धन्यवाद, लेकिन ये ओएलएस प्रतिगमन के बजाय वितरण-फिटिंग अनुप्रयोग प्रतीत होते हैं।
whuber
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.