วิธีการคำนวณค่าเบี่ยงเบนมาตรฐานถ่วงน้ำหนักใน 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

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

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