5

人の携帯電話によって記録された分単位の GPS 座標を含むデータセットがあります。つまり、データセットには LON/LAT 値を持つ 1440 行があります。データに基づいて、参加者の自宅の位置推定値 (経度/緯度値) を教えてください。自宅は、特定の 24 時間間隔でほとんどの時間を過ごす単一の場所であると仮定しましょう。さらに、ほとんどの場合、GPS センサーは非常に高い精度を備えていますが、完全にずれている場合があり、非常に大きな外れ値が生じることがあります。

これを行う最善の方法は、それを点プロセスとして扱い、2D 密度推定を使用してピークを見つけることだと思います。Rでこれを行うネイティブな方法はありますか? 私は kde2d (MASS) を調べましたが、これは実際にはうまくいかなかったようです。Kde2d は、密度値を持つデータ範囲の 25x25 グリッドを作成します。しかし、私のデータでは、その人は 1 日 100 マイル以上も簡単に移動できるため、これらのブロックは概して大きすぎる推定値です。それらを絞り込んで、はるかに大きなグリッドを使用することもできますが、ポイント推定値を取得するためのより良い方法があるはずです.

4

3 に答える 3

6

パッケージには「費やした時間」関数がありtripます (私は作成者です)。基本的なトラック プロセスを経時的に理解するトラック データからオブジェクトを作成し、修正間の直線セグメントを仮定してポイントを処理することができます。「ホーム」が最大値ピクセルの場所である場合、つまり、期間に基づいてすべてのセグメントを分割し、それらをセルに合計すると、簡単に見つけることができます。tripGrid関数からの「滞在時間」グリッドはSpatialGridDataFrame、標準のspパッケージ クラスであり、トリップ オブジェクトは 1 つまたは複数のトラックで構成できます。

を使用rgdalすると、経度/緯度が範囲に適していない場合、座標を適切な地図投影に簡単に変換できますが、線分のグリッド/所要時間の計算には違いがありません。

speedfilter動きが速すぎることを暗示する修正を削除するのは簡単ですが、それは非常に単純化されており、新しい問題を引き起こす可能性があります。(私の経験では、グリッド化に費やされた基本的な時間は、新しい複雑さを開く多くの洗練されたモデルと同じくらい正確な見積もりを取得します)。フィルタはデカルト座標または経度/緯度座標で機能し、ツールを使用しspて距離を計算します (経度/緯度は信頼できますが、地図投影法を適切に選択しないと問題が発生する可能性があります。陸上の人間のように短い距離では、おそらく大したことではありません)。

(関数tripGridは を使用して直線セグメントの正確なコンポーネントを計算しますpixellate.pspが、その詳細は実装では隠されています)。

データの準備に関しては、tripは合理的な時間の順序について厳密であり、データに重複がある場合や順序が正しくない場合などは、オブジェクトを作成できなくなります。 にテキスト ファイルからデータを読み取る例があります?trip。 (本当に)ダミーデータを使用した非常に単純な例は次のとおりです。

library(trip)
d <- data.frame(x = 1:10, y = rnorm(10), tms = Sys.time() + 1:10, id = gl(1, 5))
coordinates(d) <- ~x+y
tr <- trip(d, c("tms", "id"))
g <- tripGrid(tr)

pt <- coordinates(g)[which.max(g$z), ]
image(g, col = c("transparent", heat.colors(16)))
lines(tr, col = "black")
points(pt[1], pt[2], pch = "+", cex = 2)

そのダミー トラックには重なり合う領域はありませんが、「費やされた時間」の最大ポイントを見つけるのは簡単であることを示しています。

于 2012-06-06T07:02:44.720 に答える
3

すべてのイベントまでの距離の二乗和が最小になる場所を使用するのはどうですか? 私の脳が正常に機能している場合、これはカーネル スムージングの上限に近い可能性があります。

データが 2 つのクラスター (自宅と職場) で構成されている場合、場所はそれらの間ではなく、最大のクラスター内にあると思います。x 座標と y 座標の単純平均とは異なります。

その不確実性については、位置の不確実性が何であれ、データを揺らして(GPSからその値が得られれば素晴らしいでしょう。そうでなければ、50メートルだと思いますか?)再計算してください。それを 100 回行い、それらの位置のカーネル スムージングを行い、95% の等高線を見つけます。

厳密ではなく、この最小距離/カーネル最高のものを試す必要があります...

于 2012-06-06T08:18:20.737 に答える
0

spacedman への回答 - 最小二乗法は機能しないと確信しています。最小二乗法は、「近くにある」ものにあまり重みを付けずに、外れ値の要求に屈することで最もよく知られています。これは、望ましいことの反対です。

私の意見では、二重平方推定器の方がおそらくうまく機能するでしょうが、使用したことはありません。調整も必要だと思います。

これは多かれ少なかれ、0 からの特定の距離に対する最小二乗推定量に似ており、重み付けはそれを超えて一定です。したがって、ポイントが外れ値になると、そのペナルティは一定になります。外れ値から遠ざかるにつれて、外れ値の重み付けがますます大きくなることは望ましくありません。むしろ、それらを一定に重み付けし、クラスターの近くのものをより適切に適合させることに最適化を集中させます。

于 2014-02-12T09:35:14.033 に答える