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

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

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