วิธีการคำนวณค่าเบี่ยงเบนมาตรฐานถ่วงน้ำหนักใน r
ค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนัก เป็นวิธีที่มีประโยชน์ในการวัดการกระจายของค่าในชุดข้อมูลเมื่อค่าบางค่าในชุดข้อมูลมีน้ำหนักมากกว่าค่าอื่น
สูตรในการคำนวณค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนักคือ:

ทอง:
- N: จำนวน การสังเกต ทั้งหมด
- M: จำนวนตุ้มน้ำหนักที่ไม่เป็นศูนย์
- w i : เวกเตอร์น้ำหนัก
- x i : เวกเตอร์ของค่าข้อมูล
- x : ค่าเฉลี่ยถ่วงน้ำหนัก
วิธีที่ง่ายที่สุดในการคำนวณค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนักใน R คือการใช้ฟังก์ชัน wt.var() จากแพ็คเกจ Hmisc ซึ่งใช้ไวยากรณ์ต่อไปนี้:
#define data values x <- c(4, 7, 12, 13, ...) #define weights wt <- c(.5, 1, 2, 2, ...) #calculate weighted variance weighted_var <- wtd. var (x, wt) #calculate weighted standard deviation weighted_sd <- sqrt(weighted_var)
ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ
ตัวอย่างที่ 1: ค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนักสำหรับเวกเตอร์
รหัสต่อไปนี้แสดงวิธีคำนวณค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนักสำหรับเวกเตอร์เดี่ยวใน R:
library (Hmisc) #define data values x <- c(14, 19, 22, 25, 29, 31, 31, 38, 40, 41) #define weights wt <- c(1, 1, 1.5, 2, 2, 1.5, 1, 2, 3, 2) #calculate weighted variance weighted_var <- wtd. var (x, wt) #calculate weighted standard deviation sqrt(weighted_var) [1] 8.570051
ค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนักกลายเป็น 8.57
ตัวอย่างที่ 2: ค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนักสำหรับคอลัมน์ในกรอบข้อมูล
รหัสต่อไปนี้แสดงวิธีการคำนวณค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนักสำหรับคอลัมน์ของกรอบข้อมูลใน R:
library (Hmisc) #define data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'C'), wins=c(2, 9, 11, 12, 15, 17, 18, 19), dots=c(1, 2, 2, 2, 3, 3, 3, 3)) #define weights wt <- c(1, 1, 1.5, 2, 2, 1.5, 1, 2) #calculate weighted standard deviation of points sqrt(wtd. var (df$points, wt)) [1] 0.6727938
ค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนักสำหรับคอลัมน์คะแนนกลายเป็น 0.673
ตัวอย่างที่ 3: ค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนักสำหรับหลายคอลัมน์ในกรอบข้อมูล
รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน sapply() ใน R เพื่อคำนวณค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนักสำหรับหลายคอลัมน์ในกรอบข้อมูล:
library (Hmisc) #define data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'C'), wins=c(2, 9, 11, 12, 15, 17, 18, 19), dots=c(1, 2, 2, 2, 3, 3, 3, 3)) #define weights wt <- c(1, 1, 1.5, 2, 2, 1.5, 1, 2) #calculate weighted standard deviation of points and wins sapply(df[c(' wins ', ' points ')], function(x) sqrt(wtd. var (x, wt))) win points 4.9535723 0.6727938
ค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนักสำหรับคอลัมน์ชัยชนะคือ 4.954 และค่าเบี่ยงเบนมาตรฐานแบบถ่วงน้ำหนักสำหรับคอลัมน์คะแนนคือ 0.673
แหล่งข้อมูลเพิ่มเติม
วิธีการคำนวณค่าเบี่ยงเบนมาตรฐานถ่วงน้ำหนักใน Excel
วิธีการคำนวณค่าเบี่ยงเบนมาตรฐานใน R
วิธีการคำนวณค่าสัมประสิทธิ์ของการแปรผันของ R
วิธีการคำนวณช่วงใน R