วิธีการคำนวณค่าสัมประสิทธิ์ของการแปรผันของ r


ค่าสัมประสิทธิ์การแปรผัน ซึ่งมักเรียกสั้น ๆ ว่า CV เป็นวิธีการวัดการแพร่กระจายของค่าในชุดข้อมูลที่สัมพันธ์กับค่าเฉลี่ย มีการคำนวณดังนี้:

CV = σ / μ

ทอง:

  • σ: ค่าเบี่ยงเบนมาตรฐานของชุดข้อมูล
  • μ: ค่าเฉลี่ยของชุดข้อมูล

พูดง่ายๆ ก็คือ ค่าสัมประสิทธิ์ของการแปรผันเป็นเพียงอัตราส่วนของส่วนเบี่ยงเบนมาตรฐานต่อค่าเฉลี่ย

เมื่อใดจึงจะใช้สัมประสิทธิ์ของการแปรผัน

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

ในโลกแห่งความเป็นจริง มักใช้ในด้านการเงินเพื่อเปรียบเทียบผลตอบแทนเฉลี่ยที่คาดหวังของการลงทุนกับค่าเบี่ยงเบนมาตรฐานที่คาดหวังของการลงทุน ช่วยให้นักลงทุนสามารถเปรียบเทียบการแลกเปลี่ยนความเสี่ยงและผลตอบแทนระหว่างการลงทุนได้

ตัวอย่างเช่น สมมติว่านักลงทุนกำลังพิจารณาลงทุนในกองทุนรวม 2 กองทุนต่อไปนี้:

กองทุนรวม A: ค่าเฉลี่ย = 9% ส่วนเบี่ยงเบนมาตรฐาน = 12.4%

UCITS B: เฉลี่ย = 5%, ส่วนเบี่ยงเบนมาตรฐาน = 8.2%

โดยการคำนวณค่าสัมประสิทธิ์การเปลี่ยนแปลงของแต่ละกองทุน ผู้ลงทุนตั้งข้อสังเกต:

CV กองทุนรวม A = 12.4% /9% = 1.38

CV สำหรับกองทุนรวม B = 8.2% / 5% = 1.64

เนื่องจากกองทุนรวม A มีค่าสัมประสิทธิ์การเปลี่ยนแปลงที่ต่ำกว่า จึงให้ผลตอบแทนเฉลี่ยที่ดีกว่าเมื่อเทียบกับส่วนเบี่ยงเบนมาตรฐาน

วิธีการคำนวณค่าสัมประสิทธิ์ของการแปรผันของ R

ในการคำนวณค่าสัมประสิทธิ์ของการแปรผันของชุดข้อมูลใน R คุณสามารถใช้ไวยากรณ์ต่อไปนี้:

 cv <- sd(data) / mean(data) * 100

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่างที่ 1: สัมประสิทธิ์ของการแปรผันของเวกเตอร์ตัวเดียว

รหัสต่อไปนี้แสดงวิธีคำนวณ CV สำหรับเวกเตอร์เดี่ยว:

 #create vector of data
data <- c(88, 85, 82, 97, 67, 77, 74, 86, 81, 95, 77, 88, 85, 76, 81, 82)

#calculate CV
cv <- sd(data) / mean(data) * 100

#display CV
resume

[1] 9.234518

ค่าสัมประสิทธิ์ของการแปรผันกลายเป็น 9.23 .

ตัวอย่างที่ 2: สัมประสิทธิ์ของการแปรผันของเวกเตอร์หลายตัว

รหัสต่อไปนี้แสดงวิธีคำนวณ CV ของเวกเตอร์หลายตัวในกรอบข้อมูลโดยใช้ฟังก์ชัน sapply()

 #create data frame
data <- data.frame(a=c(88, 85, 82, 97, 67, 77, 74, 86, 81, 95),
                   b=c(77, 88, 85, 76, 81, 82, 88, 91, 92, 99),
                   c=c(67, 68, 68, 74, 74, 76, 76, 77, 78, 84))

#calculate CV for each column in data frame
sapply(data, function (x) sd(x) / mean(x) * 100 )

        ABC
11.012892 8.330843 7.154009

ตรวจสอบให้แน่ใจว่าใช้ na.rm=T หากข้อมูลของคุณไม่มีค่าเช่นกัน สิ่งนี้บอกให้ R เพิกเฉยต่อค่าที่หายไปเมื่อคำนวณค่าสัมประสิทธิ์ของการแปรผัน:

 #create data frame
data <- data.frame(a=c(88, 85, 82, 97, 67, 77, 74, 86, 81, 95),
                   b=c(77, 88, 85, 76, 81, 82, 88, 91, NA , 99),
                   c=c(67, 68, 68, 74, 74, 76, 76, 77, 78, NA ))

#calculate CV for each column in data frame
sapply(data, function (x) sd(x, na.rm= T ) / mean(x, na.rm= T ) * 100 )

        ABC
11.012892 8.497612 5.860924

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

วิธีการคำนวณค่าเบี่ยงเบนมัธยฐานสัมบูรณ์ใน R
วิธีการคำนวณค่าเบี่ยงเบนมาตรฐานใน R
วิธีค้นหาช่วงใน R

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

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