Ortalama GPS noktasını bulma


11

Bir nokta popülasyonundan ortalama GPS noktasını bulmak için bir program yazmam gerekiyor.

Uygulamada aşağıdakiler olur:

  • Her ay bir kişi aynı statik varlığın bir GPS noktasını kaydeder.
  • GPS'in doğası gereği, bu noktalar her ay biraz farklıdır.
  • Bazen kişi bir hatayı tamamen farklı bir yerde yanlış test yapar.
  • Her GPS noktasının, geçerli GPS verilerinin ne kadar doğru olduğunu gösteren bir kesin ağırlığı ( HDOP ) vardır. HDOP değerleri daha iyi olan GPS noktaları düşük olanlara göre tercih edilir.

Aşağıdakileri nasıl belirlerim:

  • Yaş gibi tek bir değerle karşılaştırıldığında 2 değer içeren verilerle ilgilenin. (Bir popülasyondaki ortalama yaşı bulun)
  • Aykırı değerleri belirleyin. Aşağıdaki örnekte bunlar [-28.252, 25.018] ve [-28.632, 25.219] olacaktır.
  • Aykırı değerleri hariç tuttuktan sonra, ortalama GPS noktasını bulun ([-28.389, 25.245]).
  • Her bir nokta için HDOP değeri tarafından sağlanan "ağırlık" çalışabiliyorsa bir bonus olur.

alternatif metin


1
Bu cevap, puanların ortalaması, istatistik.stackexchange.com/questions/2493/… size yardımcı olacak kadar benzerdir , ağırlıkları bu çerçeveye dahil etmek kolaydır. Aykırı değerleri tanımlamak için basit bir sezgisel tarama kullanabileceğinizi düşünürdüm, ancak bu, Stephan'ın önerdiği gibi daha ampirik bir yaklaşım almanızı engellemez.
Andy W

Yanıtlar:


8

Çok değişkenli verilerle ilgili sorunlardan biri, mesafeleri hesaplamak için uygun bir metriğe karar vermek ve sonra yorumlamaktır, bu nedenle Mahalanobis mesafesi gibi zeki ama biraz açıklanması zor kavramlar. Ancak bu durumda kesinlikle seçim açıktır - Öklid mesafesi . Ben basit bir sezgisel algoritma gibi bir şey öneririm:

  1. Veri noktalarının (ağırlıksız) sentroidini, yani 2 koordinatın (ağırlıksız) araçlarını hesaplayın
  2. Centroid'den tüm okumaların Öklid mesafesini hesaplayın
  3. Belirli bir mesafeden daha fazla olan okumaları hariç tutun (teknoloji deneyiminiz ve bilginize dayanarak belirlenecek veya biraz deneme ve hata çapraz doğrulamasında başarısız olacak - 100m, 1km, 10km ??)
  4. HDOP skorunun tersine (veya bazı monotonik işlevlerine göre ağırlıklandırılarak) kalan noktaların her iki kordunun ağırlıklı ortalamasını hesaplayın - soruda bağlantılı wikipedia sayfasına hızlı bir şekilde baktım ve belki de buna ihtiyacınız olmadığını düşünün bir işlev ama emin olmak için daha fazla çalışmak gerekir)

Bunu daha sofistike hale getirmenin açık bir şekilde dışa vurmak veya M tahmin edicilerini kullanmak gibi basit bir yolu vardır, ancak bu tür karmaşıklığın gerçekten gerekli olup olmadığından emin değilim.


3

Rob Hyndman geçtiğimiz günlerde çok değişkenli verilerde aykırı değerlerin tespiti hakkında bir soru sordu . Cevaplar birkaç olası yaklaşım sağlayabilir (ve aksi takdirde, 2-d aykırı değerleri bulma sorusunu ayrı bir soruda sormak isteyebilirsiniz).

Kalan GPS veri bileşeninizi bileşene göre ortalayabilirsiniz - tüm ilk bileşenleri toplayın ve ortalamanın ilk bileşenini verecek olan nokta sayısına bölün. İkinci bileşenlerle aynı.

Bu ortalama alma HDOP ile ağırlıklandırılabilir. İlk bileşenin ürünlerini toplayın, karşılık gelen HDOP puanı ile çarpın ve toplamı HDOP puanlarının toplamına bölün. İkinci bileşenlerle aynı.

"Normal dağıtım" etiketini kaldırma özgürlüğünü alacağım ...


Teşekkürler @Stephan Kolassa, bu zaten bir çözüm bulmaya yardımcı olacaktır.
Philip Fourie

2

HDOP'yi bağımsız değişken olarak adlandırın. Daha sonra tartmak için bunu kullanın. Yani bir dizi koordinatınız var - buna (x1, y1); (x2, y2), vb ... Önce aykırı değerleri dikkate almayın. X koordinatlarının ağırlıklı ortalamalarını [(x1 * h1) + (x2 * h2) + .... + (xn * hn)] / [toplam (h1, h2, ..., hn)] olarak hesaplayın burada h1, h2, ... HDOP değeridir. Aynı şeyi y koordinatları için de yapın. Bu, her bir koordinat için oldukça doğru bir ortalama değer verecektir.

Aykırı değerlerle başa çıkmak biraz zor olabilir. Aykırı olup olmadıklarını nasıl anlarsınız? Kesinlikle gözlemlere istatistiksel bir uyum belirlemeniz ve bir güven aralığı içinde gerçek olup olmadıklarını belirlemeniz gerekir. Soruya bakıldığında Zehir Dağılımı akla geliyor. Ama bu muhtemelen çok fazla iş ve eminim ki bu konuya girmek istemiyorsunuz. Belki bir yaklaşım kullanır? Ortalama koordinat değerinin kullanmak için iyi bir araç olduğunu varsayalım. Ardından standart sapma için bir değer belirleyin. Bence standart dev ya da zehir dağılımı 1 / (ortalama). Sonra normal dağılım ve% 95 güven aralığı kullanarak yaklaşık değer. Bir gözlem aralığın dışındaysa (ortalama- * 1.645 * std dev; ortalama + 1.645 * std dev) o zaman bir aykırı değer midir? Bunu bir dene.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.