วิธีการคำนวณค่าสัมประสิทธิ์การเปลี่ยนแปลงใน 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 ชีต

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

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