ค้นหาจุด GPS เฉลี่ย


11

ฉันต้องเขียนโปรแกรมเพื่อค้นหาจุด GPS เฉลี่ยจากประชากรของจุด

ในทางปฏิบัติสิ่งต่อไปนี้เกิดขึ้น:

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

ฉันจะตรวจสอบสิ่งต่อไปนี้ได้อย่างไร:

  • จัดการกับข้อมูลที่มี 2 ค่าเทียบกับค่าเดียวเช่นอายุ (ค้นหาอายุเฉลี่ยในประชากรของผู้คน)
  • กำหนดค่าผิดปกติ ในตัวอย่างด้านล่างนี้จะเป็น [-28.252, 25.018] และ [-28.632, 25.219]
  • หลังจากไม่รวมค่าผิดปกติให้หาจุด GPS เฉลี่ยในจุดนี้อาจเป็น [-28.389, 25.245]
  • มันจะเป็นโบนัสถ้าสามารถทำงาน "น้ำหนัก" ที่จัดทำโดยค่า HDOP สำหรับแต่ละจุด

ข้อความแสดงแทน


1
คำตอบนี้คล้ายกันมากพอที่จะช่วยคุณในการหาค่าเฉลี่ยของคะแนน, stats.stackexchange.com/questions/2493/มันเป็นเรื่องง่ายที่จะรวมน้ำหนักไว้ในกรอบงานนั้น ฉันคิดว่าคุณจะสามารถใช้ฮิวริสติกแบบง่าย ๆ เพื่อระบุค่าผิดปกติ แต่นั่นไม่ได้ป้องกันคุณจากการใช้วิธีการเชิงประจักษ์มากขึ้นตามที่สเตฟานแนะนำ
Andy W

คำตอบ:


8

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

  1. คำนวณ centroid (ไม่ถ่วงน้ำหนัก) ของจุดข้อมูลนั่นคือ (ไม่ได้ถ่วงน้ำหนัก) หมายถึงพิกัด 2 จุด
  2. คำนวณระยะทางแบบยุคลิดของการอ่านทั้งหมดจากเซนทรอยด์
  3. ยกเว้นการอ่านใด ๆ ที่อยู่ไกลเกินกว่าระยะทางที่กำหนด (ขึ้นอยู่กับประสบการณ์และความรู้ของเทคโนโลยีหรือความล้มเหลวของการลองผิดลองถูกและการตรวจสอบข้ามข้อผิดพลาด - 100m, 1km, 10km ??)
  4. คำนวณค่าเฉลี่ยถ่วงน้ำหนักของทั้งสองคอร์ดของคะแนนที่เหลือโดยถ่วงน้ำหนักด้วยคะแนนผกผันของ HDOP (หรือฟังก์ชั่นแบบโมโนโทนิกของมัน - ฉันได้ดูหน้าวิกิพีเดียที่เชื่อมโยงกับคำถามอย่างรวดเร็วและคิดว่าคุณไม่ต้องการ ฟังก์ชั่น แต่ฉันต้องศึกษาเพิ่มเติมเพื่อให้แน่ใจ)

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


3

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

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

ค่าเฉลี่ยนี้สามารถถ่วงน้ำหนักได้โดย HDOP สรุปผลคูณขององค์ประกอบแรกคูณด้วยคะแนน HDOP ที่สอดคล้องกันและหารผลรวมด้วยผลรวมคะแนน HDOP เช่นเดียวกันกับองค์ประกอบที่สอง

ฉันจะใช้เสรีภาพในการลบแท็ก "กระจายปกติ" ...


ขอบคุณ @Stephan Kolassa นี่จะช่วยในการหาทางแก้ไขแล้ว
Philip Fourie

2

โทร HDOP ตัวแปรอิสระ ใช้สำหรับการถ่วงน้ำหนักในภายหลัง คุณมีชุดพิกัด - เรียกนี่ว่า (x1, y1) (x2, y2) ฯลฯ ... ก่อนอื่นให้ละเว้นค่าผิดปกติ คำนวณค่าเฉลี่ยถ่วงน้ำหนักของ x พิกัดเป็น [(x1 * h1) + (x2 * h2) + .... + (xn * hn)] / [ผลรวม (h1, h2, ... , hn)] โดยที่ h1, h2, ... คือค่า HDOP ทำเช่นเดียวกันสำหรับพิกัด y สิ่งนี้จะให้ค่าเฉลี่ยที่ถูกต้องอย่างเป็นธรรมสำหรับแต่ละพิกัด

การจัดการกับคนผิดอาจเป็นเรื่องยาก คุณจะรู้ได้อย่างไรว่าพวกเขาผิดปกติหรือไม่? อย่างเคร่งครัดคุณต้องกำหนดความพอดีทางสถิติให้กับการสังเกตและภายในช่วงความมั่นใจตรวจสอบว่าพวกเขาเป็นของแท้หรือไม่ เมื่อมองไปที่คำถามที่ว่าการกระจายของพิษนั้นอยู่ในใจ แต่นี่อาจเป็นงานจำนวนมากและฉันแน่ใจว่าคุณไม่ต้องการทำสิ่งนี้ อาจใช้การประมาณ? สมมติว่าคุณสมมติว่าค่าพิกัดเฉลี่ยเป็นวิธีที่ดีที่จะใช้ จากนั้นกำหนดค่าสำหรับส่วนเบี่ยงเบนมาตรฐาน ฉันคิดว่า dev มาตรฐานหรือการกระจายพิษคือ 1 / (หมายถึง) จากนั้นประมาณโดยใช้การแจกแจงแบบปกติและช่วงความมั่นใจ 95% พูดถ้าการสังเกตอยู่นอกช่วงเวลา (mean- * 1.645 * std dev; หมายถึง + 1.645 * std dev) ถ้าเช่นนั้นมันจะเป็นค่าผิดปกติหรือไม่? ให้มันเป็นไป

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