วิธีการคำนวณความสัมพันธ์อันดับ spearman ใน python


ในทางสถิติ ความสัมพันธ์ หมายถึงจุดแข็งและทิศทางของความสัมพันธ์ระหว่างตัวแปรสองตัว ค่าของสัมประสิทธิ์สหสัมพันธ์สามารถอยู่ในช่วงตั้งแต่ -1 ถึง 1 โดยมีการตีความดังต่อไปนี้:

  • -1: ความสัมพันธ์เชิงลบที่สมบูรณ์แบบระหว่างตัวแปรสองตัว
  • 0: ไม่มีความสัมพันธ์ระหว่างตัวแปรสองตัว
  • 1: ความสัมพันธ์เชิงบวกที่สมบูรณ์แบบระหว่างสองตัวแปร

ความสัมพันธ์แบบพิเศษเรียกว่า Spearman’s rank correlation ซึ่งใช้ในการวัดความสัมพันธ์ระหว่างตัวแปรอันดับ 2 ตัว (เช่น อันดับคะแนนสอบคณิตศาสตร์ของนักเรียนสัมพันธ์กับอันดับคะแนนสอบวิทยาศาสตร์ในชั้นเรียน)

บทช่วยสอนนี้จะอธิบายวิธีคำนวณความสัมพันธ์อันดับ Spearman ระหว่างตัวแปรสองตัวใน Python

ตัวอย่าง: ความสัมพันธ์อันดับ Spearman ใน Python

สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งมี คะแนนสอบคณิตศาสตร์และคะแนนสอบวิทยาศาสตร์ของนักเรียน 10 คนในชั้นเรียนใดชั้นเรียนหนึ่ง:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({'student': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'],
                   'math': [70, 78, 90, 87, 84, 86, 91, 74, 83, 85],
                   'science': [90, 94, 79, 86, 84, 83, 88, 92, 76, 75]})

ในการคำนวณความสัมพันธ์ Spearman Rank ระหว่างคะแนนคณิตศาสตร์และวิทยาศาสตร์ เราสามารถใช้ฟังก์ชัน spearmanr() ใน scipy.stats :

 from scipy. stats import spearmanr

#calculate Spearman Rank correlation and corresponding p-value
rho, p = spearmanr(df[' math '], df[' science '])

#print Spearman rank correlation and p-value
print (rho)

-0.41818181818181815

print (p)

0.22911284098281892

จากผลลัพธ์ เราจะเห็นว่าความสัมพันธ์ของอันดับ Spearman คือ -0.41818 และค่า p ที่สอดคล้องกันคือ 0.22911

สิ่งนี้บ่งชี้ว่าคะแนนสอบวิชาวิทยาศาสตร์และคณิตศาสตร์มีความสัมพันธ์เชิงลบ

อย่างไรก็ตาม เนื่องจากค่า p ของความสัมพันธ์ไม่ต่ำกว่า 0.05 ความสัมพันธ์จึงไม่มีนัยสำคัญทางสถิติ

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

 #extract Spearman Rank correlation coefficient
spearmanr(df[' math '], df[' science '])[0]

-0.41818181818181815

#extract p-value of Spearman Rank correlation coefficient
spearmanr(df[' math '], df[' science '])[1] 

0.22911284098281892

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

วิธีการคำนวณความสัมพันธ์ของอันดับ Spearman ใน R
วิธีการคำนวณความสัมพันธ์อันดับสเปียร์แมนใน Excel
วิธีการคำนวณความสัมพันธ์ของอันดับ Spearman ใน Stata

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

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