均一性のテストは一般的なものですが、多次元の点群に対してそれを行う方法は何でしょうか。
均一性のテストは一般的なものですが、多次元の点群に対してそれを行う方法は何でしょうか。
回答:
標準的な方法では、RipleyのK関数またはL関数などのそれから派生したものを使用します。これは、最大距離間隔()の関数として、ポイントの近傍の平均数をまとめたプロットです。均一な分布のためのNの寸法、その平均値は次のように振る舞うべきρ N:それは常に小さいためであろうρ。クラスタリング、他の形式の空間的非独立性、およびエッジ効果により、このような動作から逸脱します(ポイントによってサンプリングされる領域を指定することが重要です)。この合併症のため-n増加-ほとんどのアプリケーションで、シミュレーションを介してヌルK関数の信頼帯が設定され、観測されたK関数が偏位を検出するためにオーバープロットされます。いくつかの思考と経験により、エクスカーションは、特定の距離ではなく、クラスター化する傾向の観点から解釈することができます。
Dixon(2001)のK関数とその関連L関数の例(同上)。ようにL関数が構成されている良い視覚資料:均一な分布のためには、ゼロの水平ラインです。破線は、シミュレーションを介して計算されたこの特定の調査エリアの信頼帯です。灰色の実線のトレースは、データのL関数です。距離0〜20 mでの正の偏位は、これらの距離でのクラスタリングを示しています。
私は、関連する質問に対する回答で働いていた例を掲載/stats//a/7984プロットに埋め込まれた二次元多様体上の均一な分布のためにK-機能に由来する、ですシミュレーションにより推定。
でR
、spatstat機能kest
とk3est
のためにK-関数を計算し及びN = 3それぞれ。3次元以上では、おそらく自分で作成しますが、アルゴリズムはまったく同じです。によって計算された(中程度の効率で)距離行列から計算を行うことができます。stats::dist
質問は思ったより難しいことがわかりました。それでも、私は宿題をし、見回した後、いくつかの次元で均一性をテストするリプリーの機能に加えて2つの方法を見つけました。
unf
両方のテストを実装するRパッケージを作成しました。あなたはからダウンロードすることができますgithubのでhttps://github.com/gui11aume/unf。その大部分はCにありますので、マシンでをコンパイルする必要がありますR CMD INSTALL unf
。実装のベースとなっている記事は、パッケージ内のPDF形式です。
最初の方法は、@ Procrastinator(多変量の均一性とそのアプリケーションのテスト、Liang et al。、2000)が言及した参考文献からのもので、ユニットハイパーキューブのみで均一性をテストできます。この考え方は、中央極限定理により漸近的にガウス分布する不一致統計を設計することです。これは、計算することができ試験の基礎である統計値を、。
library(unf)
set.seed(123)
# Put 20 points uniformally in the 5D hypercube.
x <- matrix(runif(100), ncol=20)
liang(x) # Outputs the p-value of the test.
[1] 0.9470392
2番目のアプローチはあまり慣習的ではなく、最小全域木を使用します。最初の作業は、2つの多変量サンプルが同じ分布に由来するかどうかをテストするために、1979年にFriedman&Rafskyによって実行されました(パッケージ内の参照)。下の画像はその原理を示しています。
2つの2変量サンプルのポイントは、元のサンプルに応じて赤または青でプロットされます(左パネル)。2次元のプールされたサンプルの最小スパニングツリーが計算されます(中央のパネル)。これは、エッジの長さの合計が最小のツリーです。ツリーは、すべてのポイントが同じラベルを持つサブツリーに分解されます(右パネル)。
次の図では、青いドットが集約されている場合を示しています。これにより、右側のパネルに示されているように、プロセスの終了時にツリーの数が減少します。フリードマンとラフスキーは、プロセスで取得する木の数の漸近分布を計算しました。これにより、テストを実行できます。
多変量サンプルの均一性に関する一般的なテストを作成するこのアイデアは、1984年にSmithとJainによって開発され、CのBen Pfaffによって実装されました(パッケージ内の参照)。2番目のサンプルは、最初のサンプルのおおよその凸包で均一に生成され、フリードマンとラフスキーのテストは2つのサンプルプールで実行されます。
この方法の利点は、ハイパーキューブだけでなく、すべての凸多変量形状の均一性をテストすることです。強い欠点は、2番目のサンプルがランダムに生成されるため、テストにランダムなコンポーネントがあることです。もちろん、テストを繰り返して結果を平均して再現可能な答えを得ることができますが、これは便利ではありません。
前回のRセッションを続けて、これがどのように進むかを示します。
pfaff(x) # Outputs the p-value of the test.
pfaff(x) # Most likely another p-value.
githubからコードを自由にコピー/フォークしてください。