LoginSignup
3
3

クリギング①:バリオグラム

Last updated at Posted at 2024-04-03

はじめに

前回はクリギングの大まかな流れについて書きました。

今回はクリギングをやるにあたって、等方性・異方性の確認から共分散関数の設定までを書いていきたいと思います。

使用するデータ

ChatGPTに作成させた標高データを用います。簡単のため行列形式にしました。LLM、すごく便利ですね。

image.png

このデータから500点をサンプリングします。

image.png

このサンプリングデータから欠損箇所を補完する問題について考えます。

等方性・異方性の確認

例えばある二次元以上の空間がある場合、どの方向によっても観測値同士の相関性が変わらないことを等方性と言います。対して方向によって観測値同士の相関性が変わってしまう時、これを異方性と言います。例として、水の広がり方を挙げてみます。水をプールに入れるとき、水平方向には均等に広がります。しかし、垂直方向では下方向に水が溜まり、上方向に水が広がることはありません。このことから、水平方向のみの二次元空間を考える場合は等方性になりますが、水平方向+垂直方向の三次元空間を考える場合は異方性になります。異方性があるときは別々にバリオグラム雲を作成する必要があります。今回は等方性を考えます。

バリオグラム雲と経験バリオグラム

バリオグラム雲とは、バリオグラムを縦軸に、観測値同士のユーグリッド距離を横軸に置いた散布図です。ここで、バリオグラムは以下で定義されます。

\gamma_{i,j}=\frac{1}{2}{(z_i-z_j)^2}

ここで、$y$は目的変数です。今回は標高データを使用しているため、目的変数は標高にあたります。
一次元のみで考える場合や、等方性の場合は素直なユーグリッド距離でいいのですが、異方性の場合、方向別にバリオグラム雲を作る必要があります。サンプリングデータからバリオグラム雲を作成すると以下のようになります。

image.png

$h$は、各観測データ間のユークリッド距離です。
経験バリオグラムは、バリオグラム雲の分布をグルーピングして、期待値のプロットとして単純化することです。こうすることによって、視覚的に関係がわかりやすい散布図になります。作成したバリオグラム雲から経験バリオグラムを求めると以下のようになります。

image.png

この経験バリオグラムは、距離$h$のグルーピング幅を5としています。

理論バリオグラム

理論バリオグラムは、目的変数をバリオグラム、説明変数をデータ間との距離で表したモデルです。理論バリオグラムのモデルは、球形モデル、指数モデル、ガウスモデルなど様々です。

球形モデル

\gamma(h)=b+(c-b)\bigg[\frac{2}{3}\frac{h}{a}-\frac{1}{2}\bigg(\frac{h}{a}\bigg)^3\bigg];h>a
\gamma=c;h\leqq{a}

指数モデル

\gamma(h)=b+(c-b)\bigg[1-\exp\bigg(-\frac{h}{a}\bigg)\bigg]

ガウスモデル

\gamma(h)=b+(c-b)\bigg[1-\exp\bigg\{-\bigg(\frac{h}{a}\bigg)^2\bigg\}\bigg]

ここで、$a$はレンジ、$b$はナゲット、$c$はシルという名前を持つハイパーパラメータです。

色々な理論バリオグラムから、どのモデルにするかは先ほどの経験バリオグラムとの二乗誤差で決定します。理論バリオグラムにはハイパーパラメータがありますが、こちらも経験バリオグラムとの最小二乗法で決定します(厳密には凸最適化となります)。今回はガウスモデルを用いて、経験バリオグラムからハイパーパラメータを決定しました。

image.png

レンジは12.6、ナゲットは11.6、シルは336.8です。

共分散関数の設定

理論バリオグラム$\gamma(\infty)$がある値で収束するとき、共分散関数と理論バリオグラムには以下の関係があります。

\gamma(h)=C(0)-C(h)
C(0)=\gamma(\infty)

ここで、$C$は共分散関数です。この式の意味は、理論バリオグラムと対をなすものが共分散関数、ということになります。今回はガウスモデルを使用したので、以下のようになります。

C(h)=(c-b)\bigg[\exp\bigg\{-\bigg(\frac{h}{a}\bigg)^2\bigg\}\bigg]

先程求めたハイパーパラメータの値を代入すると、

C(h)=325.2\bigg[\exp\bigg\{-\bigg(\frac{h}{12.6}\bigg)^2\bigg\}\bigg]

以上で共分散関数を求めることができました。

さいごに

今回はバリオグラムから共分散関数を求めるやり方について説明しました。お気づきの方もいらっしゃるとは思いますが、実はバリオグラムのガウスモデルはGPRでいうところのガウスカーネルと密接に関係したものになっています。違う分野で進歩はしつつも、このような巡り合わせがあるのは面白いですよね。異方性のときどうするかが書けなかったので、おいおい別の記事で書きたいと思います。次回は単純クリギングです。

参考文献

コロナ社、阪田義隆、クリギング入門

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3