วิธีใช้ 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