วิธีการคำนวณค่าสัมประสิทธิ์ของการแปรผันของ 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