วิธีการคำนวณค่าสัมประสิทธิ์การเปลี่ยนแปลงใน python
ค่าสัมประสิทธิ์การแปรผัน ซึ่งมักเรียกสั้น ๆ ว่า 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 มีค่าสัมประสิทธิ์การเปลี่ยนแปลงที่ต่ำกว่า จึงให้ผลตอบแทนเฉลี่ยที่ดีกว่าเมื่อเทียบกับส่วนเบี่ยงเบนมาตรฐาน
วิธีการคำนวณค่าสัมประสิทธิ์การเปลี่ยนแปลงใน Python
ในการคำนวณค่าสัมประสิทธิ์ของการแปรผันของชุดข้อมูลใน Python คุณสามารถใช้ไวยากรณ์ต่อไปนี้:
import numpy as np cv = lambda x: np. std (x, ddof= 1 ) / np. mean (x) * 100
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่างที่ 1: ค่าสัมประสิทธิ์การเปลี่ยนแปลงสำหรับเครือข่ายเดียว
รหัสต่อไปนี้แสดงวิธีคำนวณ CV สำหรับตารางเดียว:
#create vector of data data = [88, 85, 82, 97, 67, 77, 74, 86, 81, 95, 77, 88, 85, 76, 81, 82] #define function to calculate cv cv = lambda x: np. std (x, ddof= 1 ) / np. mean (x) * 100 #calculate CV cv(data) 9.234518
ค่าสัมประสิทธิ์ของการแปรผันกลายเป็น 9.23 .
ตัวอย่างที่ 2: สัมประสิทธิ์ของการแปรผันของเวกเตอร์หลายตัว
รหัสต่อไปนี้แสดงวิธีการคำนวณ CV ของหลายคอลัมน์ใน DataFrame ของแพนด้า:
import numpy as np import pandas as pd #define function to calculate cv cv = lambda x: np. std (x, ddof= 1 ) / np. mean (x) * 100 #create pandas DataFrame df = pd. DataFrame ({'a': [88, 85, 82, 97, 67, 77, 74, 86, 81, 95], 'b': [77, 88, 85, 76, 81, 82, 88, 91, 92, 99], 'c': [67, 68, 68, 74, 74, 76, 76, 77, 78, 84]}) #calculate CV for each column in data frame df. apply (cv) a 11.012892 b8.330843 c7.154009 dtype:float64
โปรดทราบว่าค่าที่หายไปจะถูกละเว้นเมื่อคำนวณค่าสัมประสิทธิ์ของการแปรผัน:
import numpy as np import pandas as pd #define function to calculate cv cv = lambda x: np. std (x, ddof= 1 ) / np. mean (x) * 100 #create pandas DataFrame df = pd. DataFrame ({'a': [88, 85, 82, 97, 67, 77, 74, 86, 81, 95], 'b': [77, 88, 85, 76, 81, 82, 88, 91, np. no , 99], 'c': [67, 68, 68, 74, 74, 76, 76, 77, 78, np. no ]}) #calculate CV for each column in data frame df. apply (cv) a 11.012892 b 8.497612 c5.860924 dtype:float64
แหล่งข้อมูลเพิ่มเติม
วิธีการคำนวณค่าสัมประสิทธิ์ของการแปรผันของ R
วิธีการคำนวณค่าสัมประสิทธิ์การเปลี่ยนแปลงใน Excel
วิธีการคำนวณค่าสัมประสิทธิ์การเปลี่ยนแปลงใน Google ชีต