วิธีใช้ cor() เพื่อคำนวณค่าสัมประสิทธิ์สหสัมพันธ์ใน r


คุณสามารถใช้ฟังก์ชัน cor() ใน R เพื่อคำนวณค่าสัมประสิทธิ์สหสัมพันธ์ระหว่างตัวแปรได้

วิธีใช้ฟีเจอร์นี้ที่พบบ่อยที่สุดมีดังนี้:

วิธีที่ 1: คำนวณค่าสัมประสิทธิ์สหสัมพันธ์เพียร์สันระหว่างตัวแปรสองตัว

 cor(df$x, df$y)

ใช้สัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันเมื่อคำนวณความสัมพันธ์ระหว่างตัวแปรต่อเนื่อง 2 ตัว (เช่นส่วนสูงและน้ำหนัก)

วิธีที่ 2: คำนวณค่าสัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันระหว่างตัวแปรตัวเลขทั้งหมดในกรอบข้อมูล

 cor(df)

วิธีนี้จะส่งคืน เมทริกซ์สหสัมพันธ์ ที่มีค่าสัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันระหว่างการรวมตัวแปรตัวเลขแต่ละคู่ในกรอบข้อมูล

วิธีที่ 3: คำนวณค่าสัมประสิทธิ์สหสัมพันธ์สเปียร์แมนระหว่างตัวแปรสองตัว

 cor(df$x, df$y, method=' spearman ')

ใช้สัมประสิทธิ์สหสัมพันธ์ของสเปียร์แมนเมื่อคำนวณความสัมพันธ์ระหว่างตัวแปรอันดับ 2 ตัว (เช่น การจัดอันดับคะแนนสอบคณิตศาสตร์ของนักเรียนเทียบกับคะแนนสอบวิทยาศาสตร์ในชั้นเรียน)

วิธีที่ 4: คำนวณค่าสัมประสิทธิ์สหสัมพันธ์ของเคนดัลล์ระหว่างตัวแปรสองตัว

 cor(df$x, df$y, method=' kendall ')

ใช้สัมประสิทธิ์สหสัมพันธ์ของ Kendall เมื่อคุณต้องการใช้สหสัมพันธ์ของ Spearman แต่ขนาดตัวอย่างมีขนาดเล็กและมีความสัมพันธ์กันหลายอย่าง

ตัวอย่างต่อไปนี้แสดงวิธีใช้แต่ละวิธีในทางปฏิบัติด้วยกรอบข้อมูลต่อไปนี้ใน R ซึ่งแสดงจำนวนชั่วโมงที่ใช้ในการศึกษา จำนวนข้อสอบฝึกหัดที่สอบ และเกรดการสอบปลายภาคของนักเรียนแปดคนที่แตกต่างกัน:

 #create data frame
df <- data. frame (hours=c(1, 1, 3, 2, 4, 3, 5, 6),
                 prac_exams=c(4, 3, 3, 2, 3, 2, 1, 4),
                 score=c(69, 74, 74, 70, 89, 85, 99, 90))

#view data frame
df

  hours prac_exams score
1 1 4 69
2 1 3 74
3 3 3 74
4 2 2 70
5 4 3 89
6 3 2 85
7 5 1 99
8 6 4 90

ตัวอย่างที่ 1: คำนวณค่าสัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันระหว่างตัวแปรสองตัว

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน cor() เพื่อคำนวณค่าสัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันระหว่าง ชั่วโมง และตัวแปร คะแนน :

 #calculate Pearson correlation coefficient between hours and score
cor(df$hours, df$score)

[1] 0.8600528

ค่าสัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันระหว่าง ชั่วโมง กับ คะแนน มีค่าเท่ากับ 0.86

โปรดทราบว่าหากมีค่า NA ในกรอบข้อมูลของคุณ คุณสามารถใช้อาร์กิวเมนต์ use=’complete.obs’ เพื่อใช้เฉพาะแถวที่ไม่มีค่า NA:

 #calculate Pearson correlation coefficient and ignore any rows with NA
cor(df$hours, df$score, use=' complete.obs ')

ตัวอย่างที่ 2: คำนวณค่าสัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันระหว่างตัวแปรตัวเลขทั้งหมด

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน cor() เพื่อสร้างเมทริกซ์สหสัมพันธ์ที่มีค่าสัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันระหว่างตัวแปรตัวเลขทั้งหมดในกรอบข้อมูล:

 #calculate Pearson correlation coefficient between all numeric variables
cor(df)

                hours prac_exams score
hours 1.0000000 -0.1336063 0.8600528
prac_exams -0.1336063 1.0000000 -0.3951028
score 0.8600528 -0.3951028 1.0000000

ต่อไปนี้เป็นวิธีการตีความผลลัพธ์:

  • ค่าสัมประสิทธิ์สหสัมพันธ์ของเพียร์สันระหว่าง ชั่วโมง และ prac_exams คือ -0.13
  • ค่าสัมประสิทธิ์สหสัมพันธ์เพียร์สันระหว่าง ชั่วโมง และ คะแนน คือ 0.86
  • ค่าสัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันระหว่าง prac_exams และ คะแนน คือ -0.39

หมายเหตุ : ค่าสัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันระหว่างตัวแปรแต่ละตัวกับตัวมันเองจะเป็น 1 เสมอ ซึ่งเป็นเหตุผลว่าทำไมแต่ละค่าในแนวทแยงของเมทริกซ์สหสัมพันธ์จึงเป็น 1

ตัวอย่างที่ 3: คำนวณค่าสัมประสิทธิ์สหสัมพันธ์สเปียร์แมนระหว่างตัวแปรสองตัว

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน cor() เพื่อคำนวณค่าสัมประสิทธิ์สหสัมพันธ์สเปียร์แมนระหว่าง ชั่วโมง และตัวแปร prac_exams :

 #calculate Spearman correlation coefficient between hours and prac_exams
cor(df$hours, df$prac_exams, method=' spearman ')

[1] -0.1250391

ค่าสัมประสิทธิ์สหสัมพันธ์สเปียร์แมนระหว่าง ชั่วโมง และ prac_exams กลายเป็น -0.125

ตัวอย่างที่ 4: คำนวณค่าสัมประสิทธิ์สหสัมพันธ์ของเคนดัลล์ระหว่างตัวแปรสองตัว

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน cor() เพื่อคำนวณค่าสัมประสิทธิ์สหสัมพันธ์ของ Kendall ระหว่าง ชั่วโมง และตัวแปร prac_exams :

 #calculate Kendall's correlation coefficient between hours and prac_exams
cor(df$hours, df$prac_exams, method=' kendall ')

[1] -0.1226791

ค่าสัมประสิทธิ์สหสัมพันธ์ของ Kendall ระหว่าง ชั่วโมง กับ prac_exams กลายเป็น -0.123

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:

วิธีการคำนวณความสัมพันธ์แบบเลื่อนใน R
วิธีการคำนวณความสัมพันธ์อัตโนมัติใน R
วิธีการคำนวณความสัมพันธ์บางส่วนใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *