วิธีรันเครื่องทดสอบของ grubbs ใน python
การทดสอบ Grubbs ใช้เพื่อระบุการมีอยู่ของค่าผิดปกติในชุดข้อมูล หากต้องการใช้การทดสอบนี้ ชุดข้อมูลจะต้องมีการแจกแจงแบบปกติโดยประมาณและประกอบด้วยข้อสังเกตอย่างน้อย 7 รายการ
บทช่วยสอนนี้จะอธิบายวิธีดำเนินการทดสอบ Grubbs ใน Python
ทดสอบกรับส์ใน Python
เพื่อทำการทดสอบ Grubbs ใน Python เราสามารถใช้ฟังก์ชัน smirnov_grubbs() จากแพ็คเกจ outlier_utils ซึ่งใช้ไวยากรณ์ต่อไปนี้:
smirnov_grubbs.test (ข้อมูล, อัลฟา = 0.05)
ทอง:
- ข้อมูล: เวกเตอร์ตัวเลขของค่าข้อมูล
- อัลฟา: ระดับความสำคัญที่จะใช้สำหรับการทดสอบ ค่าเริ่มต้นคือ 0.05
หากต้องการใช้คุณลักษณะนี้ คุณต้องติดตั้งแพ็คเกจ outlier_utils ก่อน:
pip install outlier_utils
เมื่อติดตั้งแพ็คเกจนี้แล้ว คุณสามารถทำการทดสอบ Grubbs ได้ ตัวอย่างต่อไปนี้แสดงวิธีการทำเช่นนี้
ตัวอย่างที่ 1: การทดสอบกรับส์แบบสองด้าน
โค้ดต่อไปนี้แสดงวิธีดำเนินการทดสอบ Grubbs แบบสองด้าน ซึ่งจะตรวจจับค่าผิดปกติที่ปลายทั้งสองด้านของชุดข้อมูล
import numpy as np from outliers import smirnov_grubbs as grubbs #define data data = np.array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40]) #perform Grubbs' test grubbs. test (data, alpha=.05) array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29])
ฟังก์ชันนี้จะคืนค่าอาร์เรย์โดยไม่มีค่าผิดปกติ ในกรณีนี้ ค่าสูงสุด 40 ถือเป็นค่าผิดปกติ และดังนั้นจึงถูกลบออก
ตัวอย่างที่ 2: การทดสอบกรับส์ด้านเดียว
รหัสต่อไปนี้สาธิตวิธีดำเนินการทดสอบกรับส์ด้านเดียวสำหรับค่าต่ำสุดและค่าสูงสุดในชุดข้อมูล:
import numpy as np from outliers import smirnov_grubbs as grubbs #define data data = np.array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40]) #perform Grubbs' test to see if minimum value is an outlier grubbs. min_test (data, alpha=.05) array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40]) #perform Grubbs' test to see if minimum value is an outlier grubbs. max_test (data, alpha=.05) array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29])
การทดสอบค่าผิดปกติขั้นต่ำตรวจไม่พบค่าต่ำสุดว่าเป็นค่าผิดปกติ อย่างไรก็ตาม การทดสอบค่าผิดปกติสูงสุดระบุว่าค่าสูงสุดที่ 40 นั้นเป็นค่าผิดปกติและดังนั้นจึงถูกลบออก
ตัวอย่างที่ 3: แยกดัชนีของค่าผิดปกติ
รหัสต่อไปนี้สาธิตวิธีการแยกดัชนีของค่าผิดปกติ:
import numpy as np from outliers import smirnov_grubbs as grubbs #define data data = np.array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40]) #perform Grubbs' test and identify index (if any) of the outlier grubbs. max_test_indices (data, alpha=.05) [16]
สิ่งนี้บอกเราว่ามีค่าผิดปกติที่ตำแหน่งดัชนี 16 ของตาราง
ตัวอย่างที่ 4: แยกค่าออกจากค่าผิดปกติ
รหัสต่อไปนี้สาธิตวิธีการแยกค่าจากค่าผิดปกติ:
import numpy as np from outliers import smirnov_grubbs as grubbs #define data data = np.array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40]) #perform Grubbs' test and identify the actual value (if any) of the outlier grubbs. max_test_outliers (data, alpha=.05) [40]
สิ่งนี้บอกเราว่ามีค่าผิดปกติที่มีค่า 40
วิธีจัดการกับค่าผิดปกติ
หากการทดสอบ Grubbs ระบุค่าผิดปกติในชุดข้อมูลของคุณ คุณมีหลายทางเลือก:
1. ตรวจสอบอีกครั้งว่าค่าไม่ใช่การพิมพ์ผิดหรือข้อผิดพลาดในการป้อนข้อมูล บางครั้งค่าที่ปรากฏเป็นค่าผิดปกติในชุดข้อมูลเป็นเพียงการพิมพ์ผิดโดยบุคคลในระหว่างการป้อนข้อมูล ขั้นแรก ตรวจสอบว่าป้อนค่าอย่างถูกต้องก่อนตัดสินใจเพิ่มเติม
2. กำหนดค่าใหม่ให้กับค่าผิดปกติ หากค่าผิดปกติเป็นผลมาจากการพิมพ์ผิดหรือข้อผิดพลาดในการป้อนข้อมูล คุณสามารถตัดสินใจกำหนดค่าใหม่ให้กับค่าดังกล่าวได้ เช่น ค่าเฉลี่ย หรือค่ามัธยฐาน ของชุดข้อมูล
3. ถอดค่าผิดปกติออก หากค่านั้นเป็นค่าผิดปกติจริงๆ คุณสามารถเลือกที่จะลบค่านั้นออกได้หากจะมีผลกระทบสำคัญต่อการวิเคราะห์ของคุณ