mcpField
S
spatial-statistics

spatial-statistics

github.com/muendデータ・データベース3769 回インストール2 週間前に更新
リポジトリ

spatial-statistics について

spatial-statisticsは、空間的な集積、局所ホットスポット、点パターン、空間関係を検定する分析スキルです。妥当な推論を求める分析者向けに、重みの選択、感度確認、残差診断を案内します。

主な機能

  1. 01空間重みの選択と感度確認
  2. 02Global Moran's Iと局所LISA
  3. 03Getis-Ord Gi*ホットスポット分析
  4. 04点パターンとKDEの指針
  5. 05空間回帰の選択手順
  6. 06多重検定と残差診断

活用シーン

  1. 01地図上の値の集積傾向の検定
  2. 02局所クラスターとホットスポットの特定
  3. 03点パターンの誘引・反発の分析
  4. 04回帰における空間依存の診断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/muend/geoai-skills --skill spatial-statistics

インストール後、Claude Code で/spatial-statisticsを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlreferences/authoritative-sources.md

詳細

空間統計

目的: 「クラスター化しているか、どこで、なぜか」に対して、防御可能な推論で答えること。 核心となる原則: 空間データは独立性の仮定に違反するため、 標準的な統計は気づかないうちに有意性を過大評価します — ここでのすべての分析は 重みの設計から始まり、残差診断で終わります。

空間重み (W) — 分析とはすなわち重みである

下流のすべての結果は W に依存します。実質的な理由に基づいて選択し、 1つの代替案で感度チェックを実行してください:

重み使用する場面
Queen/Rook 隣接不規則なポリゴン (行政単位、区画)
K最近傍ポイント; 島が存在する場合 (隣接では接続されない)
距離バンド既知の範囲を持つ物理的プロセス
カーネル (距離減衰)滑らかな影響、GWR スタイルの局所モデル
from libpysal.weights import Queen

w = Queen.from_dataframe(gdf, use_index=True)
print(f"islands: {w.islands}")   # unconnected units break stats — fix or document
w.transform = "r"                # row-standardize (default for Moran/lag models)

常に報告する: 重みの種類、パラメータ、島の数、および 結果が代替の W でも維持されるかどうか。

グローバル → ローカル ワークフロー

  1. グローバル Moran's I (esda.Moran、置換推論 ≥999) — 「何らかのクラスタリングがあるか?」に答えます。I、p_sim、および置換 分布を報告し、解析的 p ではありません。
  2. LISA / ローカル Moran (esda.Moran_Local) — どこをマッピングするか: High-High、 Low-Low クラスター、High-Low/Low-High 外れ値。地図を色分けする前に 多重検定補正 (最低でも FDR) を行ってください — 未補正の LISA マップは クラスターを過大評価し、これはこの分野で最もよくある悪用です。
  3. Getis-Ord Gi* (esda.G_Local、star=True) — 強度の ホット/コールドスポット (Moran クラスターとは別の問い — Gi* は 高値の集中を見つけ、LISA は類似性構造を見つけます)。
  4. 人口ベースの現象には、カウントではなく率を使用してください。上記の いずれかの前に、小人口単位には経験的ベイズ平滑化 (esda.smoothing) を 使用してください — 疎な単位の生の率はノイズです。

ポイントパターン

  • 一次強度 (密度が変化する) と二次相互作用 (ポイントが引き合う/反発する) を分離してください — KDE は前者を記述し、Ripley's K/L (pointpats) は 後者を検定します。
  • 調査地域に明らかな密度勾配 (人口、道路) がある場合は、常に不均一な 帰無仮説に対して検定してください。都市に対する CSR はストローマンです。
  • KDE のバンド幅がストーリーを左右します: それを報告し、正当化し (Silverman/CV)、1つの代替案を示してください。

空間回帰の決定パス

まず OLS を実行し、次に診断してください — 空間モデルから始めないでください:

from spreg import OLS
ols = OLS(y, X, w=w, spat_diag=True, moran=True, name_y="price", name_x=xnames)

決定 (LM 検定による Anselin のルール): LM-Lag が有意で LM-Error が 非有意 → 空間ラグ (SAR); 逆 → 空間誤差 (SEM); 両方 → ロバスト LM バージョンを比較; どちらでもない → OLS が成立 (それを所見として報告してください)。 解釈の注意点: SAR では、係数は限界効果ではありません — 直接/間接 (スピルオーバー) 効果を報告してください。SEM では、空間構造は nuisance 相関であり、スピルオーバーのストーリーは許されません。

GWR/MGWR (mgwr): 関係が空間的に変動する可能性が高い場合。 バンド幅は AICc 探索による; 局所係数をマッピングする際は、 非有意性をマスクした局所 t 値とともにマッピングしてください; 予測変数が 異なるスケールで作用する場合は MGWR。GWR は探索的です — 局所係数に 対する因果的な言葉遣いは避けてください。

推論の誠実さ

  • 可能な限り、解析的 p 値よりも置換 p 値を使用してください。
  • 多重検定: n 個の局所検定 = n 個の単位; FDR 補正してください。
  • MAUP (修正可能な面積単位問題): 単位の集約によって結果が 逆転する可能性があります — 集約レベルが選択肢である場合、1つの 代替案を検定し、開示してください。
  • モデリング後の残差における空間的自己相関 = モデルがまだ間違っている; すべての最終モデルについて残差 Moran's I を報告してください。
  • 相関 ≠ 因果はここでは二重に当てはまります: 空間的に交絡した 変数 (すべてが「海岸までの距離」と相関する) は、因果的主張の前に 明示的な識別戦略を要求します。

報告テンプレート

## Spatial analysis: <question>
- Units & n, variable(s), rate smoothing: <...>
- W: <type/params>, islands: <n>, sensitivity W: <type>
- Global: Moran's I = <> (p_perm = <>)
- Local: <k> significant clusters after FDR; map attached
- Model: <OLS/SAR/SEM/GWR> chosen because <LM diagnostics>
- Residual Moran's I: <> — <interpretation>
- Caveats: MAUP, W-sensitivity, causal limits

実行契約

  • ワークフロー: 推論上の問いと分析単位を定義し、分布と率を確認し、空間重みを構築して正当化し、局所検定の前に大域検定を実行し、必要に応じてモデルを適合し、残差依存を診断し、不確実性を報告します。
  • 決定ルール: 依存性と推論には空間統計を、サンプリングされた連続面の補間には地理統計を、標本外予測が主要な目的である場合には予測 ML を使用します。
  • 検証プロトコル: 代替の重みと集約を検証し、妥当な並べ替え検定またはモデル推論を使用し、局所的な多重性を補正し、残差の Moran's I を確認し、関連と因果を区別します。
  • 失敗モード: 恣意的な重みに対する推論的主張、島の無視、不安定な MAUP の結果、未補正の多重検定、残差自己相関、または裏付けのない因果的表現は差し控えます。
  • 成果物: 分析可能な変数、重みの仕様、大域および局所の結果、補正済み有意性、診断マップ、モデルと残差のチェック、感度分析、および注意事項。
  • ソースの鮮度: バージョンに敏感な統計 API やデフォルトを適用する前に、権威あるソースレジストリを参照してください。

コメント