मैं यह कैसे निर्धारित करूं कि क्या दो सहसंबंध काफी भिन्न हैं?


9

मैं यह निर्धारित करना चाहता हूं कि डेटा के दो सेटों में से कौन सा (बी 1, बी 2) बेहतर सहसंबंधी (पी) आर) दूसरे सेट (ए) के लिए है। डेटा के सभी सेटों में डेटा गायब है। मैं यह कैसे निर्धारित कर सकता हूं कि परिणामी सहसंबंध काफी अलग है या नहीं?

Eg 8426 मान A और B1, r = 0.74 दोनों में मौजूद हैं। 8798 ए और बी 2, आर = 0.72 दोनों में मौजूद हैं।

मैंने सोचा कि यह प्रश्न मदद कर सकता है लेकिन यह अनुत्तरित है: कैसे पता चलेगा कि एक प्रणाली दूसरे की तुलना में काफी बेहतर है?


क्या हम बड़े मान सकते हैं n?
Firebug

1
@Firebug n आमतौर पर 7000 और 8760 के बीच होने जा रहा है।
greenglass

जवाबों:


6

कभी-कभी कोई इसे कई प्रतिगमन में पूरा करने में सक्षम हो सकता है, जहां ए डीवी है, बी स्कोर है जो लोगों के पैमाने पर है, और सी एक डमी कोड है जो कहता है कि यह बी 1 या बी 2 है lm(A~B+C+B*C):। अंतःक्रियात्मक शब्द, B*Cआपको बताएगा कि क्या सहसंबंध अलग हैं, जबकि C के दोनों स्तरों पर A और B के बीच सरल ढलान आपको सहसंबंध बताएगा।

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


2
यद्यपि यह सबसे छोटा उत्तर है, कोक का लिंक है जो मुझे उस जानकारी की ओर निर्देशित करता है जिसकी मुझे आवश्यकता थी। बहुत धन्यवाद।
greenglass

15

ओह बूटस्ट्रैप की शक्ति। चित्रण के लिए तीन वैक्टरों को देखें:, बी1 तथा बी2 कहाँ पे:

सीआर(,बी1)=0.92
सीआर(,बी2)=0.86
यहाँ छवि विवरण दर्ज करें

लक्ष्य यह निर्धारित करना है कि क्या इन दो डेटा सेटों का सहसंबंध काफी भिन्न है। जैसे बूटस्ट्रैप के नमूने लेकर:

 B <- 10000
 cor1 <- cor2 <- rep(0, B)
 for(i in 1:B){
   samp <- sample(n, n, TRUE)  
   cor1[i] <- cor(A[samp], B1[samp])
   cor2[i] <- cor(A[samp], B2[samp])
 }

हम दो सहसंबंधों के बूटस्ट्रैप वितरण की साजिश कर सकते हैं: यहाँ छवि विवरण दर्ज करें

हम इसके लिए 95% कॉन्फिडेंस इंटरवल भी प्राप्त कर सकते हैं सीआर(,बीमैं)

के लिए 95% CI सीआरआर(,बी1):

(0.897,0.947)

के लिए 95% CI सीआरआर(,बी2):

(0.810,0.892)

तथ्य यह है कि अंतराल ओवरलैप नहीं करता है (मुश्किल से) हमें कुछ सबूत देता है कि नमूना सहसंबंधों में अंतर जो हमने देखा है वह वास्तव में सांख्यिकीय रूप से महत्वपूर्ण है।

जैसा कि अमीबा टिप्पणियों में बताता है, बूटस्ट्रैप नमूनों में से प्रत्येक के लिए अंतर प्राप्त करने से अधिक "शक्तिशाली" परिणाम आता है। यहाँ छवि विवरण दर्ज करें

दोनों के बीच अंतर के लिए 95% CI है:

(0.019,0.108)

यह देखते हुए कि अंतराल (मुश्किल से) 0 को छोड़कर, हमारे पास पहले जैसे ही सबूत हैं।


लापता डेटा समस्या को संभालने के लिए, बस अपने बूटस्ट्रैप के उन नमूनों का चयन करें, जो दोनों डेटा सेटों में निहित हैं।


7
आप इस प्रक्रिया को cor1-cor2 के 95% CI की गणना करके और यह जाँच कर सकते हैं कि इसमें शून्य शामिल है या नहीं।
अमीबा

1
ये एक अच्छा बिंदु है। मैं जल्द ही इसे शामिल करूंगा।
नाइट्रामसी

कूल, १।
अमीबा

1
इस उत्तर के लिए धन्यवाद। यह बहुत दिलचस्प और सूचनात्मक रूप से लिखा गया था, भले ही यह वह नहीं था जिसका मैंने उपयोग किया था।
greenglass

7

फिशर परिवर्तन मान लें: आर1'=tanh-1(आर1) तथा आर2'=tanh-1(आर2)। या, एक समान और शायद अधिक स्पष्ट तरीके से ( @dbwilson के लिए धन्यवाद !)।आर1'=12ln(1+आर11-आर1) तथा आर2'=12ln(1+आर21-आर2)

तब यह इस प्रकार है, इस तथ्य के कारण कि फिशर रूपांतरित चर अब सामान्य रूप से वितरित किए जाते हैं और सामान्य रूप से वितरित यादृच्छिक चर का योग अभी भी सामान्य रूप से वितरित किया जाता है:

z=आर1'-आर2'एस~एन(0,1)
साथ में

एस=एस12+एस22=1n1-3+1n2-3

तो आप अशक्त परिकल्पनाओं का परीक्षण करें एच0:z=0 प्राप्त करके पी(z0)=2पी(जेड>|z|)

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

-

@ जोश द्वारा टिप्पणी के बाद , हम कुछ हद तक नमूनों के बीच अन्योन्याश्रय की संभावना को शामिल कर सकते हैं (याद रखें कि दोनों सहसंबंध ए के वितरण पर निर्भर हैं)। स्वतंत्र नमूनों को ग्रहण किए बिना और कॉची-श्वार्ज़ असमानता का उपयोग करके हम निम्नलिखित ऊपरी सीमा प्राप्त कर सकते हैं (देखें: मैं दो साधनों के बीच के अंतर का मानक विचलन कैसे खोजूं? )

एसएस1+एस2

एस1n1-3+1n2-3

2
यह मेरी सिफारिश होगी, लेकिन फिशर के z परिवर्तन के लिए एक वैकल्पिक सूत्र है z = .5 * ln ((1 + r) / ((1-r))। प्रत्येक आर के लिए ऐसा करें और ऊपर के रूप में आगे बढ़ें।
dbwilson

@dbwilson ओह ये (+1), वे बराबर हैं, मैं आपके सुझाव का उपयोग करूंगा ताकि यह व्यापक दर्शकों के लिए स्पष्ट हो।
Firebug

क्या यह सूत्र बीच में स्वतंत्रता नहीं मानता है आर1 तथा आर2? मुझे लगता है कि वे नहीं हैं ...
जोश

6

मार्क व्हाइट से उपयोगी प्रतिक्रिया के बाद संपादित (धन्यवाद!)

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

> set.seed(24601)
> 
> library(tidyverse)
> library(mvtnorm)
> cov <- matrix(c(1, .4, .16,.4, 1, .4, .16, .4, 1), ncol=3, byrow=TRUE)
> mydata <- rmvnorm(n=100, sigma = cov)
> colnames(mydata) = c("A", "B1", "B2")
> head(mydata)
              A         B1         B2
[1,] -0.1046382  0.6031253  0.5641158
[2,] -1.9303293 -0.7663828 -0.7921836
[3,]  0.1244192 -0.4413581 -1.2376256
[4,] -3.2822601 -1.2512055 -0.5586773
[5,] -0.9543368 -0.1743740  1.1884185
[6,] -0.4843183 -0.2612668 -0.7161938

यहां मेरे द्वारा उत्पन्न डेटा से सहसंबंध हैं:

> cor(mydata)
           A        B1        B2
A  1.0000000 0.4726093 0.3043496
B1 0.4726093 1.0000000 0.3779376
B2 0.3043496 0.3779376 1.0000000
> 

मॉडल की जरूरतों को पूरा करने के लिए डेटा का प्रारूप बदलना ("लंबे समय तक सुधार"):

> mydata <- as.data.frame(mydata) %>% 
+   gather("var", "value", B1, B2)
> 

यहाँ मॉडल है:

सारांश (lm (A ~ मान * var, डेटा = mydata))

Call:
lm(formula = A ~ value * var, data = mydata)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.89310 -0.52638  0.02998  0.64424  2.85747 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.09699    0.09014  -1.076    0.283    
value        0.47445    0.09305   5.099 8.03e-07 ***
varB2       -0.10117    0.12711  -0.796    0.427    
value:varB2 -0.13256    0.13965  -0.949    0.344    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.891 on 196 degrees of freedom
Multiple R-squared:  0.158, Adjusted R-squared:  0.1451 
F-statistic: 12.26 on 3 and 196 DF,  p-value: 2.194e-07

यहां परिणाम (मेरे किए गए डेटा से) बताते हैं कि बी 1 और ए ("मूल्य" गुणांक की परीक्षा के बीच एक महत्वपूर्ण संबंध है, क्योंकि बी 1 "var" गुणांक के लिए संदर्भ समूह है), लेकिन यह अंतर है A के साथ B1 संबंध और A के साथ B2 संबंध महत्वपूर्ण नहीं है ("मान: varB2" गुणांक का परीक्षण)।

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

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

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


2
क्या यह ऐसा मामला नहीं है, lm(A~B1*B2)जो किसी के स्कोर पर निर्भर करता हैB1 और उसके बीच संबंध का परीक्षण करेगा ? यदि सहसंबंध अलग हैं, तो यह अंत: क्रिया शब्द परीक्षण नहीं कर रहा है; यह परीक्षण है अगर दो भविष्यवक्ता एक दूसरे के साथ बातचीत करते हैं। आप एक डमी कोड बना सकते हैं, उस कोड के लिए पैमाना है या नहीं । तो यह है कि आप कहते थे कि बीच संबंध और अगर यह होता है पर निर्भर करता है या यह है कि, अगर सहसंबंध अलग हैं।A B2CBB1B2BAB1B2
मार्क व्हाइट

1
@MarkWhite ओह, तुम पूरी तरह से सही हो! उस पकड़ने के लिए धन्यवाद। ओह! मैं ठीक करने के लिए संपादित करूँगा।
रोज हार्टमैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.