मैं कैसे गणना करूं कि क्या मेरे रैखिक प्रतिगमन में एक ज्ञात सैद्धांतिक रेखा से सांख्यिकीय रूप से महत्वपूर्ण अंतर है?


14

मेरे पास कुछ डेटा है जो लगभग एक रैखिक रेखा के साथ फिट है:

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

जब मैं इन मूल्यों का एक रेखीय प्रतिगमन करता हूं, तो मुझे एक रेखीय समीकरण मिलता है:

y=0.997x0.0136

एक आदर्श दुनिया में, समीकरण y = x होना चाहिए ।y=x

स्पष्ट रूप से, मेरे रैखिक मूल्य उस आदर्श के करीब हैं , लेकिन बिल्कुल नहीं। मेरा प्रश्न है, मैं यह कैसे निर्धारित कर सकता हूं कि क्या यह परिणाम सांख्यिकीय रूप से महत्वपूर्ण है?

क्या 0.997 का मूल्य 1 से काफी अलग है? क्या -0.01 0 से काफी अलग है? या क्या वे सांख्यिकीय रूप से समान हैं और मैं कुछ उचित आत्मविश्वास स्तर के साथ उस y=x को समाप्त कर सकता हूं ?

मैं एक अच्छा सांख्यिकीय परीक्षण क्या उपयोग कर सकता हूं?

धन्यवाद


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

मेरे लिए आपका डेटा y = x + सफेद शोर की तरह नहीं दिखता है। क्या आप इसके बारे में और बता सकते हैं? (इस धारणा के लिए एक परीक्षण कि आपको इस तरह का शोर मिलता है, एक महत्वपूर्ण अंतर को 'देखने' में विफल हो सकता है, भले ही नमूना कितना बड़ा हो, भले ही डेटा और लाइन y = x के बीच एक बड़ा अंतर हो, सिर्फ इसलिए कि आप हैं केवल अन्य पंक्तियों के साथ तुलना करना y = a + bx, जो सही और सबसे शक्तिशाली तुलना नहीं हो सकती है)
Sextus Empiricus

साथ ही, महत्व निर्धारित करने का लक्ष्य क्या है। मुझे लगता है कि कई उत्तर 5% (95% विश्वास अंतराल) के कुछ अल्फा स्तर का उपयोग करने का सुझाव देते हैं। हालाँकि यह बहुत ही मनमाना है। सांख्यिकीय महत्व को एक द्विआधारी चर (वर्तमान या वर्तमान) के रूप में देखना बहुत मुश्किल है। यह मानक अल्फा स्तरों के रूप में ऐसे नियमों के साथ किया जाता है, लेकिन यह मनमाना और लगभग अर्थहीन है। यदि आप एक संदर्भ देते हैं तो एक महत्वपूर्ण स्तर ( बाइनरी चर नहीं ) के आधार पर निर्णय लेने के लिए एक निश्चित कटऑफ स्तर का उपयोग ( एक द्विआधारी चर), तो एक अवधारणा जैसे द्विआधारी महत्व अधिक समझ में आता है।
सेक्सटस एम्पिरिकस

1
आप किस तरह के "रैखिक प्रतिगमन" का प्रदर्शन कर रहे हैं? एक साधारण रूप से आप पर विचार करना होगा कि आप कम से कम वर्गों के प्रतिगमन (एक अवरोधन अवधि के साथ) पर चर्चा कर रहे हैं, लेकिन उस स्थिति में क्योंकि अवशिष्ट के दोनों सेटों का शून्य अर्थ (वास्तव में) होगा, अवशिष्ट के बीच प्रतिगमन में अवरोधन भी शून्य होगा (बिल्कुल )। चूंकि यह नहीं है, यहां कुछ और चल रहा है। क्या आप कुछ पृष्ठभूमि प्रदान कर सकते हैं कि आप क्या कर रहे हैं और क्यों कर रहे हैं?
whuber

यह देखने के मापन में समस्या के समान है कि क्या दो प्रणालियाँ समान परिणाम देती हैं। कुछ सामग्री के लिए ब्लैंड-ऑलमैन-प्लॉट देखने की कोशिश करें ।
mdewey

जवाबों:


17

इस प्रकार की स्थिति को नेस्टेड मॉडल के लिए एक मानक एफ-परीक्षण द्वारा नियंत्रित किया जा सकता है । चूंकि आप तय मापदंडों के साथ एक अशक्त मॉडल के खिलाफ दोनों मापदंडों का परीक्षण करना चाहते हैं, आपकी परिकल्पनाएं हैं:

H0:β=[01]HA:β[01].

एफ-परीक्षण में दोनों मॉडल फिट करना और उनके अवशिष्ट योगों की तुलना करना शामिल है, जो हैं:

SSE0=i=1n(yixi)2SSEA=i=1n(yiβ^0β^1xi)2

परीक्षण आँकड़ा है:

FF(y,x)=n22SSE0SSEASSEA.

संबंधित पी-मान है:

pp(y,x)=F(y,x)F-Dist(r|2,n2) dr.


आर में कार्यान्वयन: मान लीजिए कि आपका डेटा एक डेटा-फ़्रेम में है जिसे बुलाया DATAचर के साथ बुलाया जाता है yऔर x। F-test को निम्न कोड के साथ मैन्युअल रूप से किया जा सकता है। मेरे द्वारा उपयोग किए गए नकली नकली डेटा में, आप देख सकते हैं कि अनुमानित गुणांक शून्य परिकल्पना में लोगों के करीब हैं, और परीक्षण का पी-मूल्य शून्य परिकल्पना को गलत साबित करने के लिए कोई महत्वपूर्ण सबूत नहीं दिखाता है कि सच्चा प्रतिगमन कार्य है पहचान समारोह।

#Generate mock data (you can substitute your data if you prefer)
set.seed(12345);
n    <- 1000;
x    <- rnorm(n, mean = 0, sd = 5);
e    <- rnorm(n, mean = 0, sd = 2/sqrt(1+abs(x)));
y    <- x + e;
DATA <- data.frame(y = y, x = x);

#Fit initial regression model
MODEL <- lm(y ~ x, data = DATA);

#Calculate test statistic
SSE0   <- sum((DATA$y-DATA$x)^2);
SSEA   <- sum(MODEL$residuals^2);
F_STAT <- ((n-2)/2)*((SSE0 - SSEA)/SSEA);
P_VAL  <- pf(q = F_STAT, df1 = 2, df2 = n-2, lower.tail = FALSE);

#Plot the data and show test outcome
plot(DATA$x, DATA$y,
     main = 'All Residuals',
     sub  = paste0('(Test against identity function - F-Stat = ',
            sprintf("%.4f", F_STAT), ', p-value = ', sprintf("%.4f", P_VAL), ')'),
     xlab = 'Dataset #1 Normalized residuals',
     ylab = 'Dataset #2 Normalized residuals');
abline(lm(y ~ x, DATA), col = 'red', lty = 2, lwd = 2);

summaryउत्पादन और plotइस तरह इस डेटा देखने के लिए:

summary(MODEL);

Call:
lm(formula = y ~ x, data = DATA)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.8276 -0.6742  0.0043  0.6703  5.1462 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.02784    0.03552  -0.784    0.433    
x            1.00507    0.00711 141.370   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.122 on 998 degrees of freedom
Multiple R-squared:  0.9524,    Adjusted R-squared:  0.9524 
F-statistic: 1.999e+04 on 1 and 998 DF,  p-value: < 2.2e-16

F_STAT;
[1] 0.5370824

P_VAL;
[1] 0.5846198

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


यह दिलचस्प है कि आप डेटा कैसे बनाते हैं। यदि आपने इसमें कोई त्रुटि जोड़ी थीx

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

1
sd = 2/sqrt(1+abs(x))yxy=xxy=xy=x+e
सेक्सटस एम्पिरिकस

1
यह सच है, लेकिन यह आपको त्रुटियों-में-चर मॉडल के क्षेत्र में ले जाता है, जो इसे और अधिक जटिल बनाता है। मुझे लगता है कि ओपी इस मामले में केवल मानक रैखिक प्रतिगमन का उपयोग करना चाहता है।
मोनिका

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

5

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

चित्रण के लिए, मैंने N (माध्य = 10, sd = 5) वितरण वाले एक चर "x" के साथ 500 टिप्पणियों का निर्माण किया और फिर एक चर "y" जिसका वितरण N (माध्य = x, sd = 2) है। यह 0.9 से अधिक के सहसंबंध पैदा करता है जो आपके डेटा के रूप में काफी तंग नहीं हो सकता है।

आप यह देखने के लिए दीर्घवृत्त की जांच कर सकते हैं कि बिंदु (अवरोधन = 0, ढलान = 1) एक साथ या उसके भीतर गिरता है या नहीं।

library(tidyverse)
library(ellipse)
#> 
#> Attaching package: 'ellipse'
#> The following object is masked from 'package:graphics':
#> 
#>     pairs

set.seed(50)
dat <- data.frame(x=rnorm(500,10,5)) %>% mutate(y=rnorm(n(),x,2))

lmod1 <- lm(y~x,data=dat)
summary(lmod1)
#> 
#> Call:
#> lm(formula = y ~ x, data = dat)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -6.9652 -1.1796 -0.0576  1.2802  6.0212 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)  0.24171    0.20074   1.204    0.229    
#> x            0.97753    0.01802  54.246   <2e-16 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 2.057 on 498 degrees of freedom
#> Multiple R-squared:  0.8553, Adjusted R-squared:  0.855 
#> F-statistic:  2943 on 1 and 498 DF,  p-value: < 2.2e-16

cor(dat$y,dat$x)
#> [1] 0.9248032

plot(y~x,dat)
abline(0,1)


confint(lmod1)
#>                  2.5 %    97.5 %
#> (Intercept) -0.1526848 0.6361047
#> x            0.9421270 1.0129370

plot(ellipse(lmod1,c("(Intercept)","x")),type="l")
points(coef(lmod1)["(Intercept)"],coef(lmod1)["x"],pch=19)

abline(v=confint(lmod1)["(Intercept)",],lty=2)
abline(h=confint(lmod1)["x",],lty=2)

points(0,1,pch=1,size=3)
#> Warning in plot.xy(xy.coords(x, y), type = type, ...): "size" is not a
#> graphical parameter

abline(v=0,lty=10)
abline(h=0,lty=10)

2019-01-21 को रेप्रेक्स पैकेज (v0.2.1) द्वारा बनाया गया


1

आप n बूटस्ट्रैप किए गए नमूनों के साथ गुणांक की गणना कर सकते हैं। यह सामान्य रूप से वितरित गुणांक मूल्यों (केंद्रीय सीमा प्रमेय) में परिणाम देगा। उसके बाद आप माध्य के चारों ओर टी-मान (स्वतंत्रता की एन -1 डिग्री) के साथ एक (जैसे 95%) आत्मविश्वास अंतराल का निर्माण कर सकते थे। यदि आपके CI में 1 (0) शामिल नहीं है, तो यह सांख्यिकीय रूप से महत्वपूर्ण अलग है, या अधिक सटीक है: आप एक समान ढलान की अशक्त परिकल्पना को अस्वीकार कर सकते हैं।


जैसा कि आपने इसे यहाँ तैयार किया है, यह केवल दो परिकल्पनाओं का अलग-अलग परीक्षण करता है, लेकिन आपको जो चाहिए वह एक संयुक्त परीक्षण है।
kjetil b halvorsen

0

आप परिकल्पना का एक सरल परीक्षण कर सकते हैं, जिसका नाम है- टी-टेस्ट। अवरोधन के लिए आपकी अशक्त परिकल्पना हैβ0=0 (ध्यान दें कि यह महत्व परीक्षण है), और ढलान के लिए आपके पास H0 है β1=1


1
लेकिन क्या जरूरत है अन्य उत्तरों की तरह एक संयुक्त परीक्षा।
kjetil b halvorsen

@kjetilbhalvorsen मैंने महसूस किया है कि मैं गलत था आज सुबह दूसरे उत्तरों को पढ़ रहा हूं। मैं इसे हटा दूंगा।
RScrlli

0

आपको एक रेखीय प्रतिगमन फिट करना चाहिए और दो मापदंडों के लिए 95% विश्वास अंतराल की जांच करनी चाहिए। यदि ढलान के सीआई में 1 शामिल है और ऑफसेट के सीआई में 0 शामिल है तो दो तरफा परीक्षण नगण्य लगभग है। (95%) ^ 2 स्तर पर - जब हम दो अलग-अलग परीक्षणों का उपयोग करते हैं तो टाइप- I जोखिम बढ़ जाता है।

आर का उपयोग करना:

fit = lm(Y ~ X)
confint(fit)

या आप का उपयोग करें

summary(fit)

और खुद से 2 सिग्मा अंतराल को शांत करें।

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