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