आर में मेट्रिसेस के बीच सहसंबंध


9

मुझे cor()और cor.test()कार्यों का उपयोग करने में समस्याएं हैं ।

मेरे पास केवल दो मैट्रिसेस हैं (केवल संख्यात्मक मान, और समान संख्या में पंक्ति और कॉलम) और मैं सहसंबंध संख्या और संबंधित पी-मान रखना चाहता हूं।

जब मैं उपयोग करता cor(matrix1, matrix2)हूं तो मुझे सभी कोशिकाओं के लिए सहसंबंध गुणांक मिलते हैं। मुझे बस cor के परिणाम के रूप में एक ही नंबर चाहिए।

Additon में जब मैं करता cor.test(matrix1, matrix2)हूं मुझे निम्नलिखित त्रुटि मिलती है

Error in cor.test.default(matrix1, matrix2) : 'x' must be a numeric vector

मैं मेट्रिसेस के लिए पी-वैल्यू कैसे प्राप्त कर सकता हूं?

आप साधारण तालिकाओं को ढूंढते हैं जिन्हें मैं यहाँ सहसंबंधित करना चाहता हूं:

http://dl.dropbox.com/u/3288659/table_exp1_offline_MEANS.csv

http://dl.dropbox.com/u/3288659/table_exp2_offline_MEANS.csv


4
यह थोड़ा अस्पष्ट है कि आप क्या चाहते हैं। जब आप कहते हैं कि आप केवल cor (मैट्रिक्स 1, मैट्रिक्स 2) के लिए एक परिणाम चाहते हैं, तो क्या आप (मैट्रिक्स 1 में सभी संख्याएँ) मैट्रिक्स 2 में सभी संख्याओं को सहसंबंधित करने की कोशिश कर रहे हैं? उस स्थिति में, आप cor (as.vector (मैट्रिक्स 1), as.vector (मैट्रिक्स 2)) की कोशिश कर सकते हैं
Marius

पी-मूल्य दिखाने के लिए क्या है, ठीक है? (यानी, आप किस परिकल्पना का परीक्षण कर रहे हैं?)
chl

नहीं, मैं सिर्फ दो मैट्रिसेस को सहसंबंधित करना चाहता हूं ताकि पता चल सके कि वे कितने समान हैं। मैं सेल द्वारा तुलना सेल नहीं चाहता। मैं केवल 0 से 1 तक एक ही परिणाम के रूप में चाहता हूं, जैसे कि हर पीयरसन सहसंबंध इनपुट में दो वैक्टर का उपयोग करता है। कोई उपाय? जिस पी-वैल्यू की मुझे उम्मीद है, वह मुझे सहसंबंध के महत्व को बताएगा।
L_T

1
क्या आपका मतलब है cor(as.vector(matrix1), as.vector(matrix2))?
whuber

जवाबों:


13

यदि आप केवल दो सेट मानों के बीच संबंध की गणना करना चाहते हैं, तो मैट्रिक्स संरचना की अनदेखी करते हुए, आप मैट्रिसेस को वैक्टर का उपयोग करके परिवर्तित कर सकते हैं c()। फिर आपके सहसंबंध की गणना की जाती है cor(c(matrix1), c(matrix2))


आपके फ़ंक्शन का उपयोग करके मुझे यह त्रुटि मिलती है: "cor (c (मैट्रिक्स 1), c (मैट्रिक्स 2)) में त्रुटि: 'x' को संख्यात्मक होना चाहिए"। लेकिन अगर आप मेरी मेज पर एक त्वरित नज़र रखते हैं, तो आप ध्यान दें कि उनमें केवल संख्याएँ हैं ... मुझे समझ में नहीं आता
L_T

3
एक R इसे जारी करता है: read.csvजिसका आपने शायद उपयोग किया है, data.frameजो कि रिटर्न नहीं है matrix। तो आपको इसे एक लंबे वेक्टर बनाने और परिणाम देने से पहले इसे एक matrixसाथ होने के लिए परिवर्तित करने की आवश्यकता है । यहाँ यह एक पंक्ति में है:as.matrixc()corcor(c(as.matrix(matrix1)), c(as.matrix(matrix2)))
conjugateprior

6

आपने इस बारे में कुछ नहीं कहा है कि आपका डेटा वास्तव में क्या है। फिर भी ...

मान लीजिए कि आपके मैट्रिसेस में मामलों का प्रतिनिधित्व करने वाले (भिन्न) चर (और समान संख्या) पंक्तियों के दो सेटों का प्रतिनिधित्व करने वाले कॉलम हैं।

कैनोनिकल सहसंबंध विश्लेषण

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

कार्यान्वयन

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


धन्यवाद। मेरा डेटा समान वेरिएबल्स वाले सरल दो मैट्रिक्स हैं। दो मातृकाओं की संरचना समान है। प्रत्येक सेल में मान एक प्रयोग के परिणाम हैं, जहां उन चर का मूल्यांकन 9-अंक लिकर्ट पैमाने पर किया गया था और प्रतिभागियों में औसत था। दोनों मैट्रिसेस के बीच सहसंबंध होने के लिए सबसे अच्छी रणनीति कौन सी है? क्या आप R में एक उदाहरण बना सकते हैं?
L_T

1
आधार R के साथ यह सिर्फ है cancor(matrix1, matrix2)
कंजुगेटपायर

लेकिन शायद आप थोड़ा स्पष्ट कर सकते हैं। कॉलmatrix1 । फिर क्या हैमैंजे? क्या यह हैमैं-इस व्यक्ति का रिपीटीशन टू जे-तब लिकर्ट आइटम? पक्का नहीं। तो प्रतिभागियों में औसत कहां से आता है?
कंजुगेटपायर

नमस्ते 10 प्रतिभागी थे, उन्हें जोड़े उत्तेजनाओं के बीच "सुसंगतता की डिग्री" व्यक्त करना था (ध्यान दें कि यह एक असमानता रेटिंग प्रयोग नहीं है)। मैंने 2 प्रयोग किए। और मैं परिणामों की तुलना 2 विस्तारक शर्तों के तहत करना चाहता हूं। प्रत्येक कोशिका उत्तेजनाओं के प्रत्येक जोड़े के लिए 1o प्रतिभागियों के मूल्यांकन का औसत है। तो क्या मुझे अभी भी कैनकोर का उपयोग करना चाहिए?
L_T

मैंने कैनकोर का उपयोग किया, लेकिन मुझे सहसंबंध व्यक्त करने वाला एक भी गुणांक नहीं मिला और न ही इसके महत्व को व्यक्त करने वाला पी-मान। कृपया सहायता कीजिए!
L_T

3

यदि आप समानता का अर्थ करने के लिए शिथिल विवश हैं, तो आप आंतरिक उत्पाद के आधार पर एक परिभाषा का उपयोग कर सकते हैं, जैसे:

सीबी=,बी||बी कहाँ पे ,बीटीआर(बीटी) तथा एक्स||एक्स,एक्स1/2

आपके डेटा के साथ यह 0.996672 है।

विकल्प, यदि मैट्रिक्स संरचना महत्वपूर्ण नहीं है, तो बस मैट्रिस को वैक्टर में समतल करना है और अपनी पसंद के सहसंबंध माप का उपयोग करना है। चूंकि मुझे आपके डेटा के वितरण का पता नहीं है, इसलिए मैंने 0.976 पाने के लिए डॉट उत्पाद का उपयोग किया।

Eithe3r तरीका, ऐसा लगता है कि आपका डेटा अत्यधिक सहसंबद्ध है।


यह आरवी गुणांक लगता है , जो कि ओपी ने पूछा है: 0 और 1 के बीच का मान बताता है कि दोनों मैट्रिस समान कैसे हैं।
जूल 5’18
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.