วิธีที่ดีที่สุดในการระบุค่าผิดปกติในข้อมูลหลายตัวแปรคืออะไร


94

สมมติว่าฉันมีชุดข้อมูลหลายตัวแปรขนาดใหญ่ที่มีตัวแปรอย่างน้อยสามตัว ฉันจะหาผู้ผิดได้อย่างไร Scatterplots แบบ Pairwise จะไม่ทำงานอย่างที่เป็นไปได้สำหรับค่าที่มีอยู่ใน 3 มิติที่ไม่ได้เป็นค่าที่เกินในพื้นที่ย่อย 2 มิติใด ๆ

ฉันไม่ได้คิดถึงปัญหาการถดถอย แต่เป็นข้อมูลหลายตัวแปรที่แท้จริง ดังนั้นคำตอบที่เกี่ยวข้องกับการถดถอยที่แข็งแกร่งหรือการใช้ประโยชน์จากการคำนวณนั้นไม่มีประโยชน์

ความเป็นไปได้อย่างหนึ่งคือการคำนวณคะแนนองค์ประกอบหลักและมองหาค่าที่ผิดเพี้ยนในการกระจาย bivariate ของสองคะแนนแรก นั่นจะรับประกันได้หรือไม่ มีแนวทางที่ดีกว่านี้ไหม?


3
หากแมทริกซ์สแคทเทอร์ล็อตไม่สามารถจับได้คุณสามารถลองใช้สแคทเทอร์พล็อต 3D แน่นอนว่ามันไม่ได้ผลกับ 4D แน่นอน แต่คุณสามารถสร้างมิติที่ 4 ตามเวลาและสร้างภาพยนตร์ได้ :)
เชน

การวิเคราะห์คลัสเตอร์แบบลำดับขั้น
Andrej

11
5th D ใน color color, 6th D ในความเข้มของสี, 7 D ในขนาดพอยต์และเราสามารถไปได้ ;-)

คำตอบ:


26

มาดูแพ็คเกจmvoutlierซึ่งขึ้นอยู่กับระยะทาง mahalanobis ที่มีประสิทธิภาพตามคำแนะนำของ @drknexus


4
โดยส่วนตัวฉันไม่เชื่อในแพ็คเกจนี้! ฉันคิดว่านี่เป็นเพียงเสียงวิทยาศาสตร์ ทฤษฎีประเภทนี้ดีมากสำหรับข้อมูลจำลองในขณะที่เพียง pffff สำหรับข้อมูลจริง ฉันใช้แพคเกจนี้เพื่อตรวจจับค่าผิดปกติ :-) น่าเสียดายที่ข้อมูลครึ่งหนึ่งตรวจพบว่าเป็นค่าผิดปกติ: - มันเป็นเรื่องตลกที่ผู้คนเผยแพร่เพียงบางส่วน (ฉันไม่รู้ว่าจะเรียกสิ่งนี้ว่าอะไร) หากคุณมีความคิดเห็นใด ๆ ฉันยินดีที่จะเห็น เรามีค่าผิดประเภทหลายประเภท แต่เราควรลบออกจากข้อมูลของเราหรือไม่ ฉันไม่เชื่อ
ผู้เรียน

1
คุณสามารถอธิบายได้ว่าทำไมและเมื่อใดที่ใช้งานได้
eric_kernfeld

19

ฉันคิดว่าคำตอบของ Robin Girard จะใช้งานได้ดีสำหรับ 3 และ 4 มิติ แต่การสาปแช่งของมิติจะป้องกันไม่ให้ทำงานเกินกว่านั้น อย่างไรก็ตามข้อเสนอแนะของเขานำฉันไปสู่วิธีการที่เกี่ยวข้องซึ่งใช้การประเมินความหนาแน่นของเคอร์เนลที่ผ่านการตรวจสอบความถูกต้องกับคะแนนองค์ประกอบหลักสามรายการแรก จากนั้นชุดข้อมูลมิติสูงยังคงสามารถจัดการได้

โดยสรุปสำหรับ i = 1 ถึง n

  1. คำนวณการประเมินความหนาแน่นของคะแนนองค์ประกอบหลักสามอันดับแรกที่ได้รับจากชุดข้อมูลที่ไม่มี Xi
  2. คำนวณความน่าจะเป็นของ Xi สำหรับความหนาแน่นที่ประมาณไว้ในขั้นตอนที่ 1 เรียกว่า Li

จบสิ้น

จัดเรียง Li (สำหรับ i = 1, .. , n) และค่าผิดปกติคือค่าที่มีโอกาสต่ำกว่าเกณฑ์ ฉันไม่แน่ใจว่าสิ่งที่จะเป็นเกณฑ์ที่ดี - ฉันจะปล่อยให้ใครก็ตามที่เขียนบทความเกี่ยวกับเรื่องนี้! ความเป็นไปได้อย่างหนึ่งคือการทำ boxplot ของค่า log (Li) และดูว่ามีค่าใดที่ตรวจพบที่ปลายด้านลบ


ขอบคุณสำหรับคำตอบนี้ (ควรเป็นข้อคิดเห็นหรือไม่) ตามที่ฉันได้กล่าวถึงไปแล้วเนื่องจากความคิดเห็นของมิติข้อมูลสูงของคำตอบ Rich ไม่ใช่ปัญหา (แม้ 1,000 อาจทำงานได้) หากคุณทำสมมติฐานโครงสร้างแบบพารามิเตอร์
robin girard

@rob "ฉันไม่แน่ใจว่าสิ่งใดจะเป็นเกณฑ์ที่ดี" นี่จะเป็นจุดประสงค์ของขั้นตอนการทดสอบหลายอย่างที่ฉันพูดถึง .... แต่ฉันยอมรับอย่างเต็มที่ว่าสิ่งต่าง ๆ จะต้องได้รับการกรอก การตรวจจับค่าผิดปกติ! ใครอยากจะเขียนกระดาษ :)
robin girard

4
(-1) มันค่อนข้างน่ารำคาญที่คำตอบที่ได้รับการยอมรับสำหรับคำถามนี้ไม่เป็นประโยชน์ (เช่นคลุมเครือเกินไปและไม่นำไปใช้) และไม่ถูกต้องตามหลักวิทยาศาสตร์ (ไม่ผิดแม้แต่: เท่าที่ฉันรู้ วรรณกรรมที่เกี่ยวข้อง)
user603

6
(-1) ดูเหมือนว่านี่เป็นคำตอบที่ไม่ถูกต้อง - วิธีนี้จะไม่พบผู้ผิดพลาด! มันง่ายที่จะจินตนาการว่ามีจุดเหมือนแพนเค้ก 3D ที่ฉายโดย PCA บนระนาบ 2 มิติและ 1 จุดที่อยู่ไกลจากเครื่องบิน จุดในระนาบ 2D จะสูงแม้ว่ามันจะเป็นค่าผิดปกติ
Kochede

1
ฉันคิดว่า PCA จะเป็นปัญหาได้ที่นี่ PCA เป็นการประมาณค่าซึ่งพิจารณาการมีส่วนร่วมหลักของความแปรปรวน แต่ที่นี่มีจุดประสงค์เพื่อค้นหาผู้ผิดกฎหมาย - พวกเขาจะไม่ "ตกหลุมรักรอยแตก" หรือไม่?
Omry Atia

18

คุณสามารถหาบทสรุปการสอนของวิธีการต่างๆที่มีอยู่ใน(1)

สำหรับบางคนการเปรียบเทียบตัวเลข --recent-- วิธีการต่างๆที่ระบุไว้มีคุณสามารถตรวจสอบ (2)และ(3)

มีการเปรียบเทียบเชิงตัวเลขจำนวนมาก (และละเอียดน้อยกว่า) จำนวนมากซึ่งมักพบในหนังสือ คุณจะพบหนึ่งรายการในหน้า 142-143 จาก (4)

โปรดทราบว่าวิธีการทั้งหมดที่กล่าวถึงในที่นี้มีการนำโอเพนซอร์ส R มาใช้ส่วนใหญ่ผ่าน แพ็คเกจrrcov

  • (1) P. Rousseeuw และ M. Hubert (2013) ตัวประมาณค่าการสลายสูงของตำแหน่งหลายตัวแปรและกระจาย
  • (2) M. Hubert, P. Rousseeuw, K. Vakili (2013) รูปร่างอคติของตัวประมาณความแปรปรวนร่วมที่แข็งแกร่ง: การศึกษาเชิงประจักษ์ เอกสารทางสถิติ
  • (3) K. Vakili และ E. Schmitt (2014) การค้นหาค่าผิดปกติหลายตัวแปรด้วย FastPCS สถิติการคำนวณและการวิเคราะห์ข้อมูล
  • (4) Maronna RA, Martin RD และ Yohai VJ (2006) สถิติที่แข็งแกร่ง: ทฤษฎีและวิธีการ ไวลีย์นิวยอร์ก

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

สวัสดี Nemo: ขอบคุณสำหรับความคิดเห็นของคุณ ที่จริงแล้วปรากฎว่าสำหรับหลาย ๆ คน (น่าเศร้าไม่ใช่ทุกคน) ของแบบจำลองเหล่านั้นมีการรู้ถึงการกำหนดค่าผิดปกติที่เลวร้ายที่สุดที่เป็นไปได้และสิ่งเหล่านี้เป็นรูปแบบที่เรามักจะจำลอง บางทีคุณสามารถกำหนดเป็นคำถามได้หรือไม่? ฉันจะมีความสุขมากกว่าที่จะชี้ไปที่การอ้างอิงบางอย่าง!
user603

1
ฉันถามคำถามทั่วไปแล้ว คุณสามารถค้นหาโพสต์ของฉันที่นี่stats.stackexchange.com/questions/139645/…
ผู้เรียน

13

ฉันจะทำบางอย่าง "ออกจากการทดสอบอัลกอริทึม" (n คือจำนวนข้อมูล):

สำหรับ i = 1 ถึง n

  1. คำนวณประมาณความหนาแน่นของชุดข้อมูลที่ได้รับโดยการขว้างปาXiออกไป (การประมาณความหนาแน่นนี้ควรทำกับสมมติฐานบางอย่างถ้ามิติสูงตัวอย่างเช่นสมมติฐาน Gaussian ที่การประเมินความหนาแน่นง่าย: หมายถึงและความแปรปรวนร่วม)
  2. คำนวณความน่าจะเป็นของXiสำหรับความหนาแน่นประมาณในขั้นตอนที่ 1 เรียกว่าL_iLi

จบสิ้น

จัดเรียง (สำหรับ i = 1, .. , n) และใช้ขั้นตอนการทดสอบสมมติฐานหลายข้อเพื่อบอกว่าข้อใดไม่ดี ...Li

สิ่งนี้จะได้ผลถ้า n มีขนาดใหญ่พอ ... คุณยังสามารถใช้ "ปล่อยให้กลยุทธ์ k" ซึ่งจะมีความเกี่ยวข้องมากขึ้นเมื่อคุณมี "กลุ่ม" ของค่าผิดปกติ ...


วิธีนี้จะจัดการกับกรณีที่คุณไม่ทราบจำนวนค่าผิดปกติที่คุณมีเช่นเมื่อคะแนน N-1 ยังคงมีอคติตั้งแต่พวกเขารวมค่าผิดปกติ
Benjamin Bannier

1
ถ้า n มีขนาดใหญ่เพียงพอและจำนวนของค่าผิดปกติมีขนาดเล็กอคตินี้จะเล็กน้อย หากมีค่าผิดจำนวนมากให้คิดว่ามันไม่ใช่ค่าผิดปกติและอย่างที่ฉันได้กล่าวถึงคุณสามารถใช้กลยุทธ์การลาออก k ... (ในกรณีนี้คุณต้องค้นหากลยุทธ์เพื่อหลีกเลี่ยงการติดตามการกำหนดค่าทั้งหมดซึ่งอาจ เป็น NP ที่ยาก ... ) และถ้าคุณไม่รู้ k คุณสามารถลองใช้ค่ามากมายสำหรับ k และรักษาความเกี่ยวข้องมากที่สุด
robin girard

1
นี่เป็นความคิดที่ดี แต่ถ้าฉันเข้าใจอย่างถูกต้องแล้วดูเหมือนว่าจะขยายความคิดของ "นอก" เพื่อรวมค่าใด ๆในชุดข้อมูลที่อยู่ห่างจากคนอื่น ตัวอย่างเช่นในชุด {-110 [1] -90, 0, 90 [1] 110} ของ 43 จำนวนเต็มขั้นตอนของคุณจะไม่ระบุ 0 (ซึ่งเป็นค่ามัธยฐานของตัวเลขเหล่านี้!) เป็น "ค่าผิดปกติ "?
whuber

@ คำถามที่ดีเยี่ยม! โดยไม่มีการสันนิษฐานโครงสร้างศูนย์อาจถูกลบออก อย่างไรก็ตามคุณสามารถสันนิษฐานได้ว่าการแจกแจงเป็นแบบ unimodal และคำนวณความหนาแน่นตามนั้น ในกรณีนี้สมมติฐานโครงสร้าง (unimodality) จะช่วยให้ขั้นตอนการดูศูนย์เป็นค่า "ปกติ" ในตอนท้ายคุณคิดว่าเป็นเรื่องปกติเพราะคุณมี "โครงสร้างเชิงสมมติฐาน" ในหัวของคุณ :)
robin girard

3
ฉันไม่สบายใจเกี่ยวกับบางแง่มุมของกระบวนการนี้ ตัวอย่างของฉันเพิ่งชี้ให้เห็นถึงหนึ่งในเหตุผลว่าทำไม มีการพึ่งพาซึ่งกันและกันอย่างมากดังนั้นจึงไม่มีความชัดเจนซึ่ง "ขั้นตอนการทดสอบหลายสมมติฐาน" จะบังคับ ยิ่งไปกว่านั้นจะขึ้นอยู่กับตัวประมาณความหนาแน่น - ตามที่คุณชี้ - เพื่อให้มีคำถามมากมายเกี่ยวกับการประเมินความหนาแน่นสำหรับจุดประสงค์นี้ให้ดีที่สุด สิ่งเหล่านี้เป็นปัญหาแม้จะมีขั้นตอนการตรวจหาค่าผิดปกติแบบพารามิเตอร์ตัวแปรดังนั้นฉันไม่คิดว่ามันจะง่ายขึ้นในการแก้ปัญหาในกรณีที่มีหลายตัวแปร L ฉันLiLi
whuber

12

คุณสามารถหาผู้สมัครรับ "ค่าผิดพลาด" ได้จากคะแนนสนับสนุนของรูปวงรีปริมาณต่ำสุด ( อัลกอริทึมที่มีประสิทธิภาพในการค้นหาจุดเหล่านี้ในมิติที่ค่อนข้างสูงทั้งที่ถูกสร้างขึ้นโดยประมาณและถูกประดิษฐ์ขึ้นในช่วงทศวรรษ 1970 เนื่องจากปัญหานี้เกี่ยวข้องกับคำถามในการออกแบบการทดลอง)


12

ฉันแนวทางใหม่ที่ผมเห็นก็คือโดยไอทีโจลิฟฟ์วิเคราะห์องค์ประกอบหลัก คุณเรียกใช้ PCA บนข้อมูลของคุณ (หมายเหตุ: PCA สามารถเป็นเครื่องมือสำรวจข้อมูลที่มีประโยชน์ในตัวของมันเอง) แต่แทนที่จะดูส่วนประกอบหลักสองสามตัวแรก (พีซี) คุณจะวางแผนพีซีสองสามตัวสุดท้าย พีซีเหล่านี้มีความสัมพันธ์เชิงเส้นตรงระหว่างตัวแปรของคุณโดยมีความแปรปรวนน้อยที่สุดเท่าที่จะเป็นไปได้ ดังนั้นพวกเขาจึงตรวจพบ "แน่นอน" หรือใกล้เคียงกับความสัมพันธ์หลายตัวแปรในข้อมูลของคุณ

พล็อตของคะแนนพีซีสำหรับพีซีล่าสุดจะแสดงค่าผิดปกติที่ไม่สามารถตรวจพบได้ง่ายโดยดูทีละตัวแปร ตัวอย่างหนึ่งสำหรับความสูงและน้ำหนัก - บางคนที่มีความสูง "สูงกว่าค่าเฉลี่ย" และ "ต่ำกว่าค่าเฉลี่ย" จะถูกตรวจพบโดยพีซีล่าสุดของความสูงและน้ำหนัก (สมมติว่าสิ่งเหล่านี้มีความสัมพันธ์เชิงบวก) แม้ว่าความสูงและน้ำหนักของพวกเขาจะไม่ใช่ " สุดขีด "รายบุคคล (เช่นคนที่มี 180 ซม. และ 60 กก.)


11

ฉันไม่เห็นใครพูดถึงฟังก์ชั่นที่มีอิทธิพลต่อ แรกที่ผมเห็นความคิดนี้ในหนังสือหลายตัวแปร Gnanadesikan ของ

ในมิติเดียวค่าผิดปกติอาจมีขนาดใหญ่มากหรือมีค่าน้อยมาก ในการวิเคราะห์หลายตัวแปรเป็นการสังเกตที่ลบออกจากข้อมูลจำนวนมาก แต่เราควรใช้การวัดแบบใดในการกำหนดสุดขีดสำหรับค่าผิดปกติ มีหลายทางเลือก ระยะทาง Mahalanobis เป็นเพียงหนึ่ง ฉันคิดว่าการมองหาสิ่งที่ผิดทุกประเภทนั้นไร้ประโยชน์และไม่ได้ผล ฉันจะถามว่าทำไมคุณถึงสนใจเรื่องนอกเรื่อง? ในการประเมินค่าเฉลี่ยพวกเขาสามารถมีอิทธิพลอย่างมากต่อการประมาณการนั้น ตัวประมาณที่แข็งแกร่งมีความทนทานและรองรับผู้ผิดปกติ แต่ไม่ได้ทำการทดสอบอย่างเป็นทางการ ตอนนี้ในการถดถอยค่าผิดปกติ - เช่นจุดยกระดับ - อาจมีผลขนาดใหญ่ต่อพารามิเตอร์ความชันในรูปแบบ ด้วยข้อมูล bivariate พวกเขาสามารถมีอิทธิพลต่อค่าสัมประสิทธิ์สหสัมพันธ์โดยประมาณและในสามมิติหรือมากกว่านั้นค่าสัมประสิทธิ์สหสัมพันธ์

ฟังก์ชั่นอิทธิพลได้รับการแนะนำโดย Hampel เป็นเครื่องมือในการประมาณค่าที่แข็งแกร่งและ Mallows เขียนกระดาษที่ไม่ได้เผยแพร่ที่ดีที่สนับสนุนการใช้งานของพวกเขา ฟังก์ชั่นอิทธิพลเป็นฟังก์ชั่นของจุดที่คุณอยู่ในพื้นที่ n- มิติและพารามิเตอร์ มันวัดความแตกต่างระหว่างการประมาณค่าพารามิเตอร์กับจุดในการคำนวณและกับจุดที่เหลือ แทนที่จะไปที่ปัญหาของการคำนวณค่าประมาณสองค่าและรับความแตกต่างบ่อยครั้งที่คุณสามารถหาสูตรได้ รูปทรงของอิทธิพลคงที่จะบอกทิศทางที่รุนแรงเมื่อเทียบกับการประมาณค่าพารามิเตอร์นี้และจากนั้นบอกให้คุณทราบว่าในพื้นที่ n-มิติเพื่อหาค่าที่อยู่นอก

สำหรับข้อมูลเพิ่มเติมคุณสามารถดูบทความของฉันในปี 1983 ในวารสาร American Journal of Mathematics and Management Sciences ที่มีชื่อว่า "ฟังก์ชันอิทธิพลและการประยุกต์ใช้กับการตรวจสอบข้อมูล" ในการตรวจสอบข้อมูลเราต้องการค้นหาค่าผิดปกติที่ส่งผลต่อการใช้ข้อมูลตามที่ตั้งใจไว้ ความรู้สึกของฉันคือคุณควรให้ความสนใจกับผู้ผิดที่ส่งผลกระทบต่อพารามิเตอร์ที่คุณสนใจในการประเมินและไม่สนใจคนอื่นที่ไม่สนใจ


1
+1 แนวคิดที่ดีมากโดยเฉพาะอย่างยิ่งสำหรับการมุ่งเน้นที่สอดคล้องกับวัตถุประสงค์ของการวิเคราะห์
whuber

แนวคิดที่คล้ายกันคือฉันทามติตัวอย่างแบบสุ่ม ( RANSAC )
GeoMatt22

8

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


4
ลองใช้ฟังก์ชั่น outlier ในแพ็คเกจrandomForest lib.stat.cmu.edu/R/CRAN/web/packages/randomForest/…
George Dontas

7

สำหรับขนาดปานกลางเช่น 3 จากนั้นเทคนิคการตรวจสอบความถูกต้องไขว้เขวของเคอร์เนลบางประเภทตามที่แนะนำในที่อื่น ๆ นั้นสมเหตุสมผลและเป็นสิ่งที่ดีที่สุดที่ฉันจะได้รับ

สำหรับมิติที่สูงกว่าฉันไม่แน่ใจว่าปัญหาจะแก้ไขได้; ดินแดนมันค่อนข้างตรงเข้าไปในดินแดน 'สาปแช่งของมิติ' ปัญหาคือฟังก์ชั่นระยะทางมีแนวโน้มที่จะรวมกันเป็นค่าที่มีขนาดใหญ่มากอย่างรวดเร็วในขณะที่คุณเพิ่มมิติข้อมูลรวมถึงระยะทางที่ได้จากการแจกแจง หากคุณกำหนดค่าผิดเป็น "จุดที่มีฟังก์ชั่นระยะทางที่ค่อนข้างใหญ่เมื่อเทียบกับที่อื่น" และฟังก์ชั่นระยะทางทั้งหมดของคุณเริ่มที่จะมาบรรจบกันเพราะคุณอยู่ในพื้นที่มิติสูงและคุณกำลังมีปัญหา .

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


ขั้นตอนที่ฉันให้ไปแล้วสามารถนำไปใช้ในมิติที่มีขนาดใหญ่อย่างที่ฉันพูดโดยใช้สมมติฐาน Gaussian หากขนาดมีขนาดใหญ่มากเมื่อเทียบกับขนาดตัวอย่าง (เช่น p >> n) จากนั้นคุณสามารถกำหนดสมมติฐานบางอย่าง (สมมติว่าพารามิเตอร์ของการแจกแจงแบบเกาส์ของคุณอยู่ในพื้นที่มิติต่ำ) และใช้กระบวนการประมาณค่า thresholding สำหรับการประมาณค่าพารามิเตอร์ ...
robin girard

1
มีความชาญฉลาดมากที่การสาปแช่งของมิติไม่รวมการแก้ปัญหาโดยไม่มีข้อสันนิษฐานการกระจาย (เว้นแต่คุณจะมีข้อมูลจำนวนบ้าหรือขนาดเล็ก)
John Robertson

6

ฉันไม่แน่ใจว่าคุณหมายถึงอะไรเมื่อคุณพูดว่าคุณไม่ได้คิดถึงปัญหาการถดถอย แต่เป็น "ข้อมูลหลายตัวแปรที่แท้จริง" การตอบสนองเริ่มต้นของฉันคือการคำนวณระยะทาง Mahalanobis เนื่องจากไม่ต้องการให้คุณระบุ IV หรือ DV เฉพาะเจาะจง แต่ที่แกนกลาง (เท่าที่ฉันเข้าใจ) มันเกี่ยวข้องกับสถิติการใช้ประโยชน์


ใช่ฉันสามารถคำนวณระยะทาง Mahalanobis ของการสังเกตแต่ละครั้งจากค่าเฉลี่ยของข้อมูล แต่การสังเกตด้วยระยะทางที่ไกลที่สุดจากค่าเฉลี่ยนั้นไม่จำเป็นต้องมีค่าหลายตัวแปร ลองนึกถึงสแกตเตอร์ bivariate ที่มีสหสัมพันธ์สูง ค่าผิดปกติอาจอยู่นอกกลุ่มเมฆหลัก แต่ไม่ไกลจากค่าเฉลี่ย
Rob Hyndman

5

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

ตัวอย่างจะเป็นแผนที่ Kohonen การอ้างอิงที่ดีสำหรับ R คือ"ตนเองและซูเปอร์จัด Maps ใน R: แพคเกจ Kohonen"


4

คำตอบแรกของฉันคือถ้าคุณสามารถทำการถดถอยหลายตัวแปรบนข้อมูลได้แล้วให้ใช้ส่วนที่เหลือจากการถดถอยนั้นเพื่อหาค่าผิดปกติ (ฉันรู้ว่าคุณบอกว่ามันไม่ใช่ปัญหาการถดถอยดังนั้นนี่อาจช่วยคุณไม่ได้ขอโทษด้วย!)

ฉันกำลังคัดลอกบางส่วนจากคำถาม Stackoverflow ที่ฉันตอบไปก่อนหน้านี้ซึ่งมีตัวอย่างรหัสR

ก่อนอื่นเราจะสร้างข้อมูลบางส่วนแล้วทำให้เป็นมลภาวะ

> testout<-data.frame(X1=rnorm(50,mean=50,sd=10),X2=rnorm(50,mean=5,sd=1.5),Y=rnorm(50,mean=200,sd=25)) 
> #Taint the Data 
> testout$X1[10]<-5 
> testout$X2[10]<-5 
> testout$Y[10]<-530 

> testout 
         X1         X2        Y 
1  44.20043  1.5259458 169.3296 
2  40.46721  5.8437076 200.9038 
3  48.20571  3.8243373 189.4652 
4  60.09808  4.6609190 177.5159 
5  50.23627  2.6193455 210.4360 
6  43.50972  5.8212863 203.8361 
7  44.95626  7.8368405 236.5821 
8  66.14391  3.6828843 171.9624 
9  45.53040  4.8311616 187.0553 
10  5.00000  5.0000000 530.0000 
11 64.71719  6.4007245 164.8052 
12 54.43665  7.8695891 192.8824 
13 45.78278  4.9921489 182.2957 
14 49.59998  4.7716099 146.3090 
<snip> 
48 26.55487  5.8082497 189.7901 
49 45.28317  5.0219647 208.1318 
50 44.84145  3.6252663 251.5620 

บ่อยครั้งที่มีประโยชน์มากที่สุดในการตรวจสอบข้อมูลแบบกราฟิก (สมองของคุณดีกว่าที่จะสังเกตเห็นค่าผิดปกติได้ดีกว่าคณิตศาสตร์)

> #Use Boxplot to Review the Data 
> boxplot(testout$X1, ylab="X1") 
> boxplot(testout$X2, ylab="X2") 
> boxplot(testout$Y, ylab="Y") 

จากนั้นคุณสามารถใช้สถิติในการคำนวณค่าตัดสำคัญที่นี่โดยใช้การทดสอบลุนด์ (ดูลุนด์ RE 1975, "ตารางสำหรับการทดสอบโดยประมาณสำหรับค่าผิดปกติในโมเดลเชิงเส้น", เทเลเมทริกส์, ปี 17, หมายเลข 4, หน้า 473 -476. และเพรสคอตต์, 1975, "การทดสอบโดยประมาณสำหรับผู้ผิดปกติในโมเดลเชิงเส้น", เทคโนเมทริก, ปีที่ 17, หมายเลข 1, หน้า 129-132)

> #Alternative approach using Lund Test 
> lundcrit<-function(a, n, q) { 
+ # Calculates a Critical value for Outlier Test according to Lund 
+ # See Lund, R. E. 1975, "Tables for An Approximate Test for Outliers in Linear Models", Technometrics, vol. 17, no. 4, pp. 473-476. 
+ # and Prescott, P. 1975, "An Approximate Test for Outliers in Linear Models", Technometrics, vol. 17, no. 1, pp. 129-132. 
+ # a = alpha 
+ # n = Number of data elements 
+ # q = Number of independent Variables (including intercept) 
+ F<-qf(c(1-(a/n)),df1=1,df2=n-q-1,lower.tail=TRUE) 
+ crit<-((n-q)*F/(n-q-1+F))^0.5 
+ crit 
+ } 

> testoutlm<-lm(Y~X1+X2,data=testout) 

> testout$fitted<-fitted(testoutlm) 

> testout$residual<-residuals(testoutlm) 

> testout$standardresid<-rstandard(testoutlm) 

> n<-nrow(testout) 

> q<-length(testoutlm$coefficients) 

> crit<-lundcrit(0.1,n,q) 

> testout$Ynew<-ifelse(testout$standardresid>crit,NA,testout$Y) 

> testout 
         X1         X2        Y    newX1   fitted    residual standardresid 
1  44.20043  1.5259458 169.3296 44.20043 209.8467 -40.5171222  -1.009507695 
2  40.46721  5.8437076 200.9038 40.46721 231.9221 -31.0183107  -0.747624895 
3  48.20571  3.8243373 189.4652 48.20571 203.4786 -14.0134646  -0.335955648 
4  60.09808  4.6609190 177.5159 60.09808 169.6108   7.9050960   0.190908291 
5  50.23627  2.6193455 210.4360 50.23627 194.3285  16.1075799   0.391537883 
6  43.50972  5.8212863 203.8361 43.50972 222.6667 -18.8306252  -0.452070155 
7  44.95626  7.8368405 236.5821 44.95626 223.3287  13.2534226   0.326339981 
8  66.14391  3.6828843 171.9624 66.14391 148.8870  23.0754677   0.568829360 
9  45.53040  4.8311616 187.0553 45.53040 214.0832 -27.0279262  -0.646090667 
10  5.00000  5.0000000 530.0000       NA 337.0535 192.9465135   5.714275585 
11 64.71719  6.4007245 164.8052 64.71719 159.9911   4.8141018   0.118618011 
12 54.43665  7.8695891 192.8824 54.43665 194.7454  -1.8630426  -0.046004311 
13 45.78278  4.9921489 182.2957 45.78278 213.7223 -31.4266180  -0.751115595 
14 49.59998  4.7716099 146.3090 49.59998 201.6296 -55.3205552  -1.321042392 
15 45.07720  4.2355525 192.9041 45.07720 213.9655 -21.0613819  -0.504406009 
16 62.27717  7.1518606 186.6482 62.27717 169.2455  17.4027250   0.430262983 
17 48.50446  3.0712422 228.3253 48.50446 200.6938  27.6314695   0.667366651 
18 65.49983  5.4609713 184.8983 65.49983 155.2768  29.6214506   0.726319931 
19 44.38387  4.9305222 213.9378 44.38387 217.7981  -3.8603382  -0.092354925 
20 43.52883  8.3777627 203.5657 43.52883 228.9961 -25.4303732  -0.634725264 
<snip> 
49 45.28317  5.0219647 208.1318 45.28317 215.3075  -7.1756966  -0.171560291 
50 44.84145  3.6252663 251.5620 44.84145 213.1535  38.4084869   0.923804784 
       Ynew 
1  169.3296 
2  200.9038 
3  189.4652 
4  177.5159 
5  210.4360 
6  203.8361 
7  236.5821 
8  171.9624 
9  187.0553 
10       NA 
11 164.8052 
12 192.8824 
13 182.2957 
14 146.3090 
15 192.9041 
16 186.6482 
17 228.3253 
18 184.8983 
19 213.9378 
20 203.5657 
<snip> 
49 208.1318 
50 251.5620 

เห็นได้ชัดว่ามีการทดสอบอื่น ๆ ที่นอกเหนือจากการทดสอบลุนด์ (กรับส์สปริงถึงใจ) แต่ฉันไม่แน่ใจว่าจะเหมาะสำหรับข้อมูลหลายตัวแปร


1
boxplots แบบ univariate มีประโยชน์สำหรับการตรวจจับค่าผิดปกติ แต่พวกเขาสามารถพลาดค่าผิดปกติหลายตัวแปรได้อย่างสมบูรณ์ แนวคิดการถดถอยนั้นใช้ได้ถ้าฉันมีตัวแปร Y และตัวแปร X จำนวนมาก แต่อย่างที่ฉันพูดในคำถามไม่มี Y ดังนั้นการถดถอยจึงไม่เหมาะสม
Rob Hyndman

@RobHyndman - หนึ่งอาจแก้ไข Y (ทำให้มันเป็นคงที่) และพยายามที่จะจำลองหลายถดถอยโดยไม่ต้องตัด มันทำงานได้อย่างสวยงามในทางปฏิบัติ ในสาระสำคัญสิ่งนี้จะเปลี่ยนปัญหาที่ไม่มีผู้ดูแลเป็นพื้นฐานซึ่งการตรวจจับความผิดปกติโดยทั่วไปจะกลายเป็นปัญหาที่อยู่ภายใต้การดูแล
arielf

@ arielf น่าสนใจ คุณมีการอ้างอิงสำหรับสิ่งนั้นหรือไม่?
Rob Hyndman

@ RobHyndman ไม่ใช่บทความทางวิชาการ แต่อาจจะดีกว่าคุณสามารถลองด้วยตัวเอง ดูหน้า github ของฉันในvw-top-errors@ goo.gl/l7SLlB (โปรดทราบว่าตัวอย่างที่เกิดขึ้นมี Y แต่ฉันใช้เทคนิคเดียวกันประสบความสำเร็จอย่างมากในการแก้ไขปัญหาที่ไม่ได้รับการจัดการด้วยการแก้ไข Y. )
2559

1

หนึ่งในคำตอบข้างต้นสัมผัสในระยะทาง Mahalanobis .... อาจจะก้าวไปอีกขั้นและการคำนวณช่วงความมั่นใจไปพร้อม ๆ กันจะช่วยตรวจจับค่าผิดปกติ!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.