ความสัมพันธ์ระหว่างเมทริกซ์ใน R


9

ฉันมีปัญหาในการใช้งานcor()และcor.test()ฟังก์ชั่น

ฉันมีเมทริกซ์สองตัว (เฉพาะค่าตัวเลขและจำนวนแถวและคอลัมน์เดียวกัน) และฉันต้องการให้มีจำนวนสหสัมพันธ์และค่า p ที่สอดคล้องกัน

เมื่อฉันใช้cor(matrix1, matrix2)ฉันได้รับค่าสัมประสิทธิ์สหสัมพันธ์สำหรับเซลล์ทั้งหมด ฉันแค่ต้องการตัวเลขเดียวเป็นผลมาจากคร

นอกจากนี้เมื่อฉันcor.test(matrix1, matrix2)ฉันได้รับข้อผิดพลาดต่อไปนี้

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

ฉันจะรับค่า p สำหรับเมทริกซ์ได้อย่างไร

คุณพบตารางง่ายๆที่ฉันต้องการเชื่อมโยงที่นี่:

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

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


4
มันค่อนข้างชัดเจนว่าคุณต้องการอะไร เมื่อคุณบอกว่าคุณต้องการผลลัพธ์หนึ่งผลสำหรับคอร์ (เมทริกซ์ 1, เมทริกซ์ 2) คุณพยายามเชื่อมโยง (ตัวเลขทั้งหมดในเมทริกซ์ 1) กับ (ตัวเลขทั้งหมดในเมทริกซ์ 2) หรือไม่ ในกรณีนี้คุณสามารถลองใช้ cor (as.vector (matrix1), as.vector (matrix2))
Marius

ค่า p คาดว่าจะแสดงอะไรแม่นยำ? (เช่นคุณกำลังทดสอบสมมติฐานอะไรอยู่?)
chl

ไม่ฉันแค่ต้องการสร้างความสัมพันธ์ของเมทริกซ์สองตัวเพื่อที่จะรู้ว่าพวกมันคล้ายกันมากแค่ไหน ฉันไม่ต้องการเซลล์เปรียบเทียบโดยเซลล์ ฉันแค่อยากให้ผลลัพธ์เป็นตัวเลขเดียวจาก 0 ถึง 1 เช่นเดียวกับความสัมพันธ์ของลูกแพร์สันทุกตัวที่ใช้เวกเตอร์สองตัวในอินพุต ข้อเสนอแนะใด ๆ ค่า p ที่ฉันคาดหวังต้องบอกความสำคัญของความสัมพันธ์
L_T

1
คุณหมายถึงในขณะที่cor(as.vector(matrix1), as.vector(matrix2))?
whuber

คำตอบ:


13

c()หากคุณเพียงต้องการที่จะคำนวณความสัมพันธ์ระหว่างทั้งสองชุดของค่าที่ไม่สนใจโครงสร้างเมทริกซ์คุณสามารถแปลงการฝึกอบรมในการใช้เวกเตอร์ cor(c(matrix1), c(matrix2))จากนั้นความสัมพันธ์ของคุณจะถูกคำนวณโดย


เมื่อใช้ฟังก์ชั่นของคุณฉันได้รับข้อผิดพลาดนี้: "Error in cor (c (matrix1), c (matrix2)): 'x' ต้องเป็นตัวเลข" แต่ถ้าคุณดูตารางของฉันอย่างรวดเร็วคุณจะสังเกตเห็นว่ามีเพียงตัวเลขเท่านั้น ... ฉันไม่เข้าใจ
L_T

3
ปัญหานี้ R: read.csvซึ่งคุณอาจใช้ส่งกลับซึ่งเป็นไม่ได้เป็นdata.frame matrixดังนั้นคุณจะต้องแปลงมันจะเป็นmatrixกับas.matrixก่อนที่จะทำให้มันเป็นหนึ่งเวกเตอร์ยาวและให้ผลไปยังc() corนี่คือหนึ่งบรรทัด:cor(c(as.matrix(matrix1)), c(as.matrix(matrix2)))
conjugateprior

6

คุณไม่ได้พูดอะไรเกี่ยวกับข้อมูลจริงของคุณ แต่ถึงอย่างไร...

สมมติว่าเมทริกซ์ของคุณมีคอลัมน์ที่แสดงตัวแปร (ต่างกัน) สองชุดและแถว (จำนวนเท่ากัน) แทนเคส

การวิเคราะห์สหสัมพันธ์แบบแคนนอน

ในสถานการณ์เช่นนี้การวิเคราะห์ความสัมพันธ์โครงสร้างอื่น ๆ ที่น่าสนใจที่อาจเกิดขึ้นอย่างใดอย่างหนึ่งคือการหาความสัมพันธ์ที่ยอมรับ นี่ถือว่าคุณต้องการสรุปความสัมพันธ์ระหว่างชุดตัวแปรสองชุดในแง่ของความสัมพันธ์ระหว่างชุดค่าผสมเชิงเส้นของmatrix1คอลัมน์และชุดค่าผสมเชิงเส้นของmatrix2คอลัมน์ และคุณอยากจะทำอย่างนั้นถ้าคุณสงสัยว่ามีมิติเล็ก ๆ บางทีแม้แต่ 1 ที่จะเปิดเผยโครงสร้างความสัมพันธ์พื้นฐานในกรณีที่ถูกบดบังด้วยการทำให้เกิดขึ้นในระบบพิกัดที่กำหนดตัวแปรปัจจุบัน ดังนั้นค่าของความสัมพันธ์ (บัญญัติ) จะสรุปความสัมพันธ์เชิงเส้นหลายตัวแปรระหว่างสองเมทริกซ์ อันที่จริงในขณะที่ CCA ทำงานกับเมทริกซ์ด้วยจำนวนตัวแปรที่แตกต่างกันมันจะลดความสัมพันธ์ของเพียร์สันเมื่อ 'เมทริกซ์' แต่ละตัวเป็นเพียงคอลัมน์เดียว

การดำเนินงาน

การวิเคราะห์สหสัมพันธ์แคนนอนอธิบายไว้ในตำราการวิเคราะห์หลายตัวแปรส่วนใหญ่ซึ่งอาจเป็นประโยชน์มากที่สุดถ้าคุณมีความสุขกับพีชคณิตเมทริกซ์จนถึง eigenanalysis มันถูกนำมาใช้เป็นcancorฐาน R และยังอยู่ในCCAแพคเกจซึ่งจะอธิบายที่นี่


สวัสดีขอบคุณ. ข้อมูลของฉันเป็นเมทริกซ์ง่าย ๆ สองตัวที่มีตัวแปรเดียวกัน โครงสร้างของเมทริกซ์สองตัวนั้นเหมือนกัน ค่าในแต่ละเซลล์คือผลลัพธ์ของการทดสอบที่ตัวแปรเหล่านั้นถูกประเมินในระดับ Likert 9 จุดและเฉลี่ยทั่วผู้เข้าร่วม กลยุทธ์ใดที่ดีที่สุดที่จะพบว่ามีความสัมพันธ์ระหว่างสองเมทริกซ์? คุณสามารถทำตัวอย่างใน R ได้หรือไม่?
L_T

1
ที่มีฐาน R cancor(matrix1, matrix2)มันเป็นเพียงแค่
conjugateprior

แต่บางทีคุณสามารถชี้แจงได้เล็กน้อย โทรmatrix1 A. แล้วจะเป็นอย่างไรAij? มันคือiการตอบกลับของบุคคลที่ -th ถึง j- รายการ Likert หรือไม่ ไม่แน่นอน แล้วค่าเฉลี่ยของผู้เข้าร่วมจะมาจากไหน?
conjugateprior

สวัสดีมีผู้เข้าร่วม 10 คนพวกเขาต้องแสดง "ระดับความเชื่อมโยง" ระหว่างสิ่งเร้าคู่ (โปรดทราบว่ามันไม่ใช่การทดลองที่แตกต่างกัน) ฉันทำการทดลอง 2 ครั้ง และฉันต้องการเปรียบเทียบผลลัพธ์ภายใต้เงื่อนไข expdrimental 2 แต่ละเซลล์คือค่าเฉลี่ยของการประเมินผลของผู้เข้าร่วม 1o สำหรับสิ่งเร้าแต่ละคู่ ถ้าอย่างนั้นฉันก็ยังควรใช้โรคมะเร็ง?
L_T

ฉันใช้ cancor แต่ฉันไม่ได้รับค่าสัมประสิทธิ์เดียวที่แสดงถึงสหสัมพันธ์หรือค่า p ที่แสดงถึงความสำคัญของมัน กรุณาช่วย!
L_T

3

หากคุณจำกัดความสัมพันธ์อย่างหลวม ๆ เพื่อหมายถึงความคล้ายคลึงกันคุณสามารถใช้คำจำกัดความที่อิงจากผลิตภัณฑ์ภายในเช่น:

cAB=A,BA||Bโดยที่และA,Btr(ABT)x||x,x1/2

ด้วยข้อมูลของคุณอัตราผลตอบแทน 0.996672

ทางเลือกอื่นถ้าโครงสร้างเมทริกซ์ไม่สำคัญคือให้เมทริกซ์เรียบเป็นเวกเตอร์และใช้การวัดความสัมพันธ์ที่คุณเลือก เนื่องจากฉันไม่ทราบว่าการกระจายข้อมูลของคุณฉันใช้ผลิตภัณฑ์ดอทเพื่อรับ 0.976

วิธีที่ 3 ดูเหมือนว่าข้อมูลของคุณจะมีความสัมพันธ์สูง


ดูเหมือนว่าค่าสัมประสิทธิ์ rvซึ่งเป็นสิ่งที่ OP ถาม: ค่าระหว่าง 0 ถึง 1 ที่บอกว่าทั้งเมทริกซ์นั้นมีความคล้ายคลึงกันอย่างไร
llrs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.