Loading [MathJax]/extensions/Safe.js
MENU

カーネル密度推計 – GIS教材


点の分布を面で捉えようという感じ。

標準偏差楕円も参照


QGISでtokyoデータのコンビニデータ(cvs_jgd2011_9.shp)と行政区画のポリゴン(tokyo23ku_jgd2011_9.shp)は読み込み済みとします。

メニュで、プロセッシング -> ツールボックスを開いて、

データ補間 -> ヒートマップ(カーネル密度推定)をダブルクリック

ポイントレイヤ -> cvs_jgd2011_9

半径 -> 500m

ピクセルサイズ -> 20

出力ラスター名 -> 適当にheatmap

で、実行。

こんな感じ。

背景の行政区画ポリゴンの境界線を見やすくします。

Heatmapのプロパティを開いて、

シンボル体系

色グラデーション -> 白から黒

色相 -> 明るめの暖色系

透過性

不透明度 -> 半分くらい

コンビニの表示は外しておきます。

こんな感じ。

 

 

 


半径の値(バンド幅)を広くとったカーネルは広域的傾向把握に有効である。
一方で、局地的な値への対応が難しくなる。そのため、バンド幅の設定には注意する必要がある….だそうです。

i=1,・・・・・,nまでについて、観測値Xiが与えられている時、xにおけるカーネル密度の

推定値は以下のように求められる。

 

$$\Huge{\tilde{f_K}(x) = \frac{1}{nh}\sum_{ i = 1 }^{ n } K\begin{pmatrix} \frac{x – X_i}{h}\end{pmatrix}}$$

 

ただし、はバンド幅。

K(z)はカーネル関数で、以下がよく用いられる。

 

 

Gaussianカーネル

$$\Huge{K(z) = \frac{1}{\sqrt{2\pi}}e^\frac{-z^2}{2}}$$

 

Epanechnikovカーネル

$$\LARGE{\begin{eqnarray}  K(z) = \begin{cases} \frac{3}{4}(1- \frac{1}{5}z^2)/\sqrt{5} & (if   |z| < \sqrt{5})\\ 0 & (otherwise)  \end{cases}  \end{eqnarray}}$$

 

Rectangularカーネル

$$\LARGE{\begin{eqnarray}  K(z) = \begin{cases}  \frac{1}{2} & (if |z| < 1) \\ 0 & (otherwise)   \end{cases}  \end{eqnarray}} $$

 


 

カーネル関数はカーネルトリックとして機械学習でよく用いられる手法です。

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*