วิธีรัน grubbs 'tester ใน r


การทดสอบ Grubbs เป็นการทดสอบทางสถิติที่สามารถใช้เพื่อระบุการมีอยู่ของค่าผิดปกติในชุดข้อมูล

หากต้องการใช้การทดสอบนี้ ชุดข้อมูลจะต้องมี การแจกแจงแบบปกติโดยประมาณ และมีการสังเกตอย่างน้อย 7 ครั้ง

บทช่วยสอนนี้จะอธิบายวิธีดำเนินการทดสอบ Grubbs ใน R เพื่อตรวจจับค่าผิดปกติในชุดข้อมูล

ตัวอย่าง: การทดสอบ Grubbs ใน R

เพื่อทำการทดสอบ Grubbs ใน R เราสามารถใช้ฟังก์ชัน grubbs.test() จากแพ็คเกจ Outliers ซึ่งใช้ไวยากรณ์ต่อไปนี้:

grubbs.test(x, type = 10, ตรงกันข้าม = FALSE, สองด้าน = FALSE)

ทอง:

  • x: เวกเตอร์ตัวเลขของค่าข้อมูล
  • ประเภท: 10 = ทดสอบว่าค่าสูงสุดเป็นค่าผิดปกติหรือไม่, 11 = ทดสอบว่าค่าต่ำสุดและสูงสุดเป็นค่าผิดปกติหรือไม่, 20 = ทดสอบว่ามีค่าผิดปกติสองตัวที่ส่วนท้ายหรือไม่
  • ตรงกันข้าม: ตรรกะที่ระบุว่าคุณต้องการตรวจสอบไม่ใช่ค่าที่มีความแตกต่างมากที่สุดจากค่าเฉลี่ย แต่ตรงกันข้าม (ค่าต่ำสุด หากค่าที่น่าสงสัยที่สุดคือค่าสูงสุด เป็นต้น)
  • ทวิภาคี: ค่าตรรกะที่ระบุว่าคุณควรปฏิบัติต่อการทดสอบแบบทวิภาคีหรือไม่

การทดสอบนี้ใช้สมมติฐานสองข้อต่อไปนี้:

H 0 (สมมติฐานว่าง): ไม่มีค่าผิดปกติในข้อมูล

H A (สมมติฐานทางเลือก): มีค่าผิดปกติในข้อมูล

ตัวอย่างต่อไปนี้แสดงวิธีดำเนินการทดสอบ Grubbs เพื่อพิจารณาว่าค่าสูงสุดในชุดข้อมูลเป็นค่าผิดปกติหรือไม่:

 #load Outliers package
library(Outliers)

#createdata
data <- c(5, 14, 15, 15, 14, 13, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40)

#perform Grubbs' Test to see if '40' is an outlier
grubbs.test(data)

# Grubbs test for one outlier
#
#data:data
#G = 2.65990, U = 0.55935, p-value = 0.02398
#alternative hypothesis: highest value 40 is an outlier

สถิติการทดสอบของการทดสอบคือ G = 2.65990 และค่า p ที่สอดคล้องกันคือ p = 0.02398 เนื่องจากค่านี้น้อยกว่า 0.05 เราจะปฏิเสธสมมติฐานว่างและสรุปว่าค่าสูงสุดที่ 40 นั้นเป็นค่าผิดปกติ

หากเราต้องการทดสอบแทนว่าค่าต่ำสุดของ “5” มีค่าผิดปกติหรือไม่ เราสามารถใช้คำสั่ง ตรงกันข้าม=TRUE :

 #perform Grubbs' Test to see if '5' is an outlier
grubbs.test(data, opposite= TRUE )

# Grubbs test for one outlier
#
#data:data
#G = 1.4879, U = 0.8621, p-value = 1
#alternative hypothesis: lowest value 5 is an outlier

สถิติการทดสอบคือ G = 1.4879 และค่า p ที่สอดคล้องกันคือ p = 1 เนื่องจากค่านี้ไม่น้อยกว่า 0.05 เราจึงไม่สามารถปฏิเสธสมมติฐานว่างได้ เราไม่มีหลักฐานเพียงพอที่จะบอกว่าค่าต่ำสุดของ “5” นั้นเป็นค่าผิดปกติ

สุดท้าย สมมติว่าเรามีค่าขนาดใหญ่สองค่าที่ปลายด้านหนึ่งของชุดข้อมูล: 40 และ 42 เพื่อทดสอบว่าค่า ทั้งสอง นี้มีค่าผิดปกติหรือไม่ เราสามารถทำการทดสอบ Grubbs และระบุ type=20 :

 #create dataset with two large values at one end: 40 and 42
data <- c(5, 14, 15, 15, 14, 13, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40, 42) 

#perform Grubbs' Test to see if both 40 and 42 are outliers
grubbs.test(data, type=20)

# Grubbs test for two outliers
#
#data: data
#U = 0.38111, p-value = 0.01195
#alternative hypothesis: highest values 40, 42 are outliers

ค่า p ของการทดสอบคือ 0.01195 เนื่องจากค่านี้น้อยกว่า 0.05 เราจึงสามารถปฏิเสธสมมติฐานว่างและสรุปได้ว่าเรามีหลักฐานเพียงพอที่จะบอกว่าค่า 40 และ 42 มีค่าผิดปกติทั้งคู่

วิธีจัดการกับค่าผิดปกติ

หากการทดสอบ Grubbs ระบุค่าผิดปกติในชุดข้อมูลของคุณ คุณมีหลายทางเลือก:

1. ตรวจสอบอีกครั้งว่าค่าไม่ใช่การพิมพ์ผิดหรือข้อผิดพลาดในการป้อนข้อมูล บางครั้งค่าที่ปรากฏเป็นค่าผิดปกติในชุดข้อมูลเป็นเพียงการพิมพ์ผิดโดยบุคคลในระหว่างการป้อนข้อมูล ย้อนกลับและตรวจสอบว่าป้อนค่าอย่างถูกต้องก่อนตัดสินใจเพิ่มเติม

2. กำหนดค่าใหม่ให้กับค่าผิดปกติ หากค่าผิดปกติเป็นผลมาจากการพิมพ์ผิดหรือข้อผิดพลาดในการป้อนข้อมูล คุณสามารถตัดสินใจกำหนดค่าใหม่ให้กับค่าดังกล่าวได้ เช่น ค่าเฉลี่ย หรือค่ามัธยฐาน ของชุดข้อมูล

3. ถอดค่าผิดปกติออก หากค่านั้นเป็นค่าผิดปกติจริงๆ คุณสามารถเลือกที่จะลบค่านั้นออกได้หากจะมีผลกระทบสำคัญต่อการวิเคราะห์โดยรวมของคุณ

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

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