2012-05-22 34 views
15

मैं युग्मित रैंकिंग के छोटे सेटों पर स्पीरमैन के rho की गणना कर रहा हूं। स्पीरमैन संबंधों को सही तरीके से संभालने के लिए जाने जाते हैं। उदाहरण के लिए, 8 रैंकिंग के 2 सेट, भले ही 6 दो सेट में से एक में संबंधों हैं लेने, सहसंबंध बहुत ही उच्च तक है:स्पीरमैन सहसंबंध और संबंध

> cor.test(c(1,2,3,4,5,6,7,8), c(0,0,0,0,0,0,7,8), method="spearman") 

    Spearman's rank correlation rho 

S = 19.8439, p-value = 0.0274 

sample estimates: 
     rho 
0.7637626 

Warning message: 
Cannot compute exact p-values with ties 

और पी-मूल्य < .05 है, जो एक बहुत की तरह लगता है इस डेटा के लिए उच्च सांख्यिकीय महत्व। क्या आर में स्पीरमैन का एक संबंध-सही संस्करण है? बहुत से संबंधों के साथ गणना करने के लिए तिथि का सबसे अच्छा सूत्र क्या है?

उत्तर

21

खैर, केंडल ताऊ रैंक सहसंबंध भी है दो क्रमसूचक (या रैंक बदल) के बीच सांख्यिकीय निर्भरता के लिए एक गैर पैरामीट्रिक परीक्षण चर - स्पीयरमैन की तरह है, लेकिन स्पीयरमैन की विपरीत, संबंधों संभाल कर सकते हैं।

अधिक विशेष रूप से, तीन केंडल ताऊ आंकड़े - ताऊ-ए, ताऊ-बी, और ताऊ-सी। ताउ-बी विशेष रूप से संबंधों को संभालने के लिए अनुकूलित किया गया है।

ताऊ-बी आंकड़ा संबंधों को संभालती है (यानी, जोड़ी के दोनों सदस्यों को एक ही क्रमसूचक मूल्य) एक भाजक अवधि से है जो x और संख्या पर बंधे नहीं जोड़े की संख्या के बीच ज्यामितीय माध्य का प्रतिनिधित्व करता है वाई पर बंधे नहीं

केंडल का टाउ स्पीरमैन नहीं है - वे समान नहीं हैं, लेकिन वे भी काफी समान हैं। संदर्भ के आधार पर आपको निर्णय लेना होगा, चाहे दोनों समान हैं, ऐसे में दूसरे के लिए प्रतिस्थापित किया जा सकता है।

उदाहरण के लिए, ताऊ-ख:

Kendall_tau_b = (P - Q)/((P + Q + Y0)*(P + Q + X0))^0.5 

पी: सहमत जोड़े की संख्या

('सहमत' सहमत डेटा बिंदुओं की जोड़ी के प्रत्येक सदस्य के रैंक का मतलब है)

क्यू: असंगत जोड़े

की संख्या

X 0: एक्स

पर बंधे नहीं जोड़े की संख्या Y0: y

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

+0

पुनश्च: वास्तव में साहित्य एक "टाई को सही स्पीयरमैन" का उल्लेख है: http://www.springerlink.com/content/j820615r16j27308 – Mulone

+0

टाई-सुधारित स्पीरमैन का एक और उदाहरण http://www.springerlink.com/content/t8110r4733g85162/ – Mulone

+0

@Mulone मैंने अपने मूल उत्तर में सही स्पीरमैन का उल्लेख नहीं किया है (हालांकि मैंने इसे अभी संपादित किया है) क्योंकि आपका क्यू पढ़ने के बाद, मुझे यह धारणा थी कि आप इस * सही * आंकड़े आंकड़ों से अवगत थे। किसी भी घटना में, मेरा जवाब वही होगा (ताऊ के लिए pref) लेकिन मैंने विशेष रूप से मेरे संपादन में निर्दिष्ट/विशिष्ट सही rho का उल्लेख किया है। स्पष्टीकरण के लिए – doug

9

मुझे लगता है कि exact=FALSE चाल है।

cor.test(c(1,2,3,4,5,6,7,8), c(0,0,0,0,0,0,7,8), method="spearman", exact=FALSE) 

    Spearman's rank correlation rho 

data: c(1, 2, 3, 4, 5, 6, 7, 8) and c(0, 0, 0, 0, 0, 0, 7, 8) 
S = 19.8439, p-value = 0.0274 
alternative hypothesis: true rho is not equal to 0 
sample estimates: 
     rho 
0.7637626 
+0

हां यह करता है - धन्यवाद! – ProfVersaggi

+3

यह त्रुटि को दबा सकता है, लेकिन यह पता नहीं लगाता है कि ऐसा करना उचित है या नहीं। ध्यान दें कि पी-मान अपरिवर्तित है, जिसका अर्थ है कि टी-वितरण धारणा अभी भी उपयोग की जा रही है, जैसा कि देखा गया है? Cor.test। – Ashe

5

विधि = "spearman" के साथ cor.test वास्तव में संबंधों के लिए सही स्पीरमैन गुणांक की गणना करता है। मैंने ज़ार 1984, बायोस्टैटिकल विश्लेषण में समीकरणों से टाई-सुधारित और टाई-अनिश्चित स्पीरमैन गुणांक की गणना "मैन्युअल" की जांच की है। यहाँ कोड है - खुद के लिए जाँच करने के लिए बस अपने खुद के चर नाम स्थानापन्न:

ym <- data.frame(lousy, dors) ## my data 

## ranking variables 
ym$l <- rank(ym$lousy) 
ym$d <- rank(ym$dors) 


## calculating squared differences between ranks 
ym$d2d <- (ym$l-ym$d)^2 



## calculating variables for equations 19.35 and 19.37 in Zar 1984 

lice <- as.data.frame(table(ym$lousy)) 

lice$t <- lice$Freq^3-lice$Freq 

dorsal <- as.data.frame(table(ym$dors)) 

dorsal$t <- dorsal$Freq^3-dorsal$Freq 

n <- nrow(ym) 
sum.d2 <- sum(ym$d2d) 
Tx <- sum(lice$t)/12 
Ty <-sum(dorsal$t)/12 


## calculating the coefficients 

rs1 <- 1 - (6*sum.d2/(n^3-n)) ## "standard" Spearman cor. coeff. (uncorrected for ties) - eq. 19.35 

rs2 <- ((n^3-n)/6 - sum.d2 - Tx - Ty)/sqrt(((n^3-n)/6 - 2*Tx)*((n^3-n)/6 - 2*Ty)) ## Spearman cor.coeff. corrected for ties - eq.19.37 


##comparing with cor.test function 
cor.test(ym$lousy,ym$dors, method="spearman") ## cor.test gives tie-corrected coefficient! 
1

मैं एक ऐसी ही समस्या हो रही थी और यहाँ जवाब पढ़ने और आरआई पर मदद फ़ाइल देखा आप संबंध है जब, आप है, पैरामीटर exact = FALSE) cor.test() फ़ंक्शन में जोड़ने के लिए। इसे जोड़कर, यह एक सटीक पी मान की गणना करने की कोशिश नहीं करता है, बल्कि इसके बजाय "परीक्षण आंकड़े शून्य माध्य और इकाई भिन्नता के लिए अनुमानित अनुमान है, और लगभग सामान्य रूप से वितरित किया जाता है"। परिणाम, मेरे मामले में, बिल्कुल वही था, लेकिन संबंधों के बारे में चेतावनी के बिना।

cor.test(x, y, method = "spearm", exact = FALSE) 
+0

क्या यह डेटा अभी भी मान्य होगा यदि आपका डेटा सामान्य रूप से वितरित नहीं होता है? जो मोती के उत्पाद-पल सहसंबंध पर spearmans रैंक का उपयोग करने का एक कारण है –

4
  • संबंध-सुधार दिया स्पीयरमैन

    method="spearman" आप संबंधों-ठीक किया स्पीयरमैन देता है का उपयोग करना। परिभाषा के अनुसार, स्पीरमैन का rho, पियरसन का नमूना सहसंबंध गुणांकके लिए गणना नमूना डेटा के रैंक है। तो यह उपस्थिति और संबंधों की अनुपस्थिति में दोनों काम करता है। आप देख सकते हैं कि (संबंधों के लिए midranks) रैंक के साथ अपने मूल डेटा की जगह और method="pearson" उपयोग करने के बाद, आप एक ही परिणाम प्राप्त होगा:

    > cor.test(rank(c(1,2,3,4,5,6,7,8)), rank(c(0,0,0,0,0,0,7,8)), method="pearson") 
    
    Pearson's product-moment correlation 
    
    data: rank(c(1, 2, 3, 4, 5, 6, 7, 8)) and rank(c(0, 0, 0, 0, 0, 0, 7, 8)) 
    t = 2.8983, df = 6, p-value = 0.0274 
    alternative hypothesis: true correlation is not equal to 0 
    95 percent confidence interval: 
    0.1279559 0.9546436 
    sample estimates: 
        cor 
    0.7637626 
    

    सूचना, वहां मौजूद एक सरल कोई संबंध स्पीयरमैन संस्करण, वास्तव में संबंधों की अनुपस्थिति में cor.test() कार्यान्वयन में उपयोग किया जाता है, लेकिन यह उपर्युक्त परिभाषा के बराबर है।

  • पी-मूल्य

    डेटा में संबंधों के मामले में, सटीक पी मूल्यों स्पीयरमैन के लिए और न ही केंडल उपायों (cor.test() कार्यान्वयन के अंदर), इसलिए चेतावनी के लिए न तो गणना नहीं कर रहे हैं। के रूप में एडुआर्डो के पोस्ट में उल्लेख किया, एक चेतावनी प्राप्त करने के लिए नहीं करने के लिए आप exact=FALSE स्थापित करना चाहिए,

संबंधित मुद्दे