空間内挿

内挿のいろいろ

空間(あるいは時間)の連続関数と考えられる量について計算しようとする ときも、実際に使えるデータは有限個である。 一般には、観測が行なわれている場所は関心のある座標位置とは一致しない。 そこで、関心のある座標位置での変数の値を推定する必要が生じる。 多くの場合、データが表わす量が座標に関してなんらかの連続性を もつことを前提として推定をする。 (簡単に言えば、位置が近いところほど値も近いだろうという考えを使うのだが、 いったん値の違いが大きくなってからまた縮むことも考慮に入れる場合もある。)

このような推定を、内挿または補間(英語ではいずれもinterpolation)という。 ただし、これは求めたい位置がデータ点の分布する範囲に含まれる場合であり、 その外にくる場合は、外挿または補外(extrapolation)という。外挿の方法は 基本的には内挿と同じだが、値を制約する条件が乏しくなるので、実際のデータ から意味のある結果を得られるのは内挿の場合よりずっとむずかしくなる。

内挿の方法はいろいろあるが、仮に次のように分類してみる。

  1. resampling
  2. 内挿(狭い意味)
  3. 関数のあてはめ(fitting)
  4. 重みつき平均
  5. 変分法
このうち、2は、観測データが誤差を含むことを考えに入れず、 内挿の演算をデータ点の位置に適用した場合、結果はデータ点で与えられた値と 原理的に一致するような方式をさしている。(実際には数値が有限桁で表現されて いることからくる計算誤差はある。) 一方、3, 4, 5は、データの誤差を考慮して、データ値の近くを通るなめらかな場を 求めるものである。


(1) resampling

求めたい位置の周辺のデータ点の中から1つの点を選び、そこでの値を 推定値とする方法をさす。観測値の集合にある値だけが結果に現われる特徴が ある。数量の形をしていても実際には定性的なデータの場合、あるいは空間的 連続性があやしい場合に適している。(人工衛星で観測した地球からの電磁波 強度から、地表面状態を分類しようとする場合、違った地表面状態のところ からの放射の値を平均化しないほうがよいので、この方法をとる。)

代表的方法として、いちばん近いデータ点(nearest neighbor)を選択する 方法がある。Voronoi分割して塗り分ける のは、面を埋めるすべての点について この方法をとったことに相当している。

そのほか、求めたい点のまわりに、複数のデータ点が含まれるような近所領域を とり、その中からデータ値を選択する方法がある。 近所としては、データ点のまわりに半径を与えて円の領域をとる方法、 面を格子に分割してデータ点の含まれるマス目を使う方法などがある。 選択基準としては、多数決のほか、近所領域のデータ値の度数分布を反映した 確率を与えてランダムに選ぶ方法がある。

(特にラスター型のデータを対象とする場合、resamplingという用語を 広い意味の「内挿」とほぼ同じ意味で使うこともあるので注意)


(2) 狭い意味の内挿

データ点の座標値と変数値がある式に従っているとみなし、 その式に求めたい点の座標値を入れることによって、そこでの変数値を求める。

線形(直線)内挿

座標値と変数値との関係が、狭い範囲では1次関数だと仮定する。 1次元の場合、2つのデータ点をとれば、 そのパラメタ(1次の項の係数と定数項)を決めることができる。 ふつう、求めたい点の両隣のデータ点を使って内挿を行なう。 2次元の場合、パラメタは3個(x, yのそれぞれ1次の係数と定数項)なので、 求めたい点を囲むデータ点の三角形で考えれば内挿できる。 格子点データの四角形のマス目を使うと、4点とも満たす1次式は一般には ないので求まらなくなってしまう。実用的には、まずx方向に内挿してから y方向に内挿する、あるいはその逆ですませることが多い。

多項式補間

n個のデータ点があれば、そのすべてを通る(n-1)次の多項式を作ることが できる。この方法は、理論的に値がわかる関数の表のある部分を補間する場合 などには有効だが、観測データを入れると、多項式の次数が高くなるにしたがって 値が極端に振動することが多い。実用的なのは1次元の場合3--4次まで、2次元の 場合x, yを合わせて5--6次くらいまでだろう。それよりもデータ点が多い場合は 領域を区分してそれぞれについて違った係数の多項式を使うことになる。

このような区分多項式(区間ごとに違った係数の多項式をつないだもの)の うちで、つないだところ(節点=ふしてん)で関数値と微分が連続になるように したものをスプライン(spline)関数という。これは CAD (computer-aided design)などでさかんに使われているので、 市田・吉本(1979)、Farin (1990) など参考書がたくさんある。 (あとで述べる「あてはめ」に応用する方法も含む)。

1次元の場合、よく使われるのは3次のスプラインで、 節点では2階微分まで(関数値自体、1階微分、2階微分が)連続になる。 n次のスプラインでは(n-1)次微分まで連続にできるが、この場合、多項式の 係数を求める式は隣りあった区間どうしで連立された関係になるので、 連立方程式として一度にといてやる必要がある。

これに対して、3次関数で、節点での連続性は1階微分まででよければ、 求めたい点を含む区間とその両側の区間のデータ点だけで係数を決めることが できる (Akima, 1970)。

2次元の場合、節点を格子状に配置するのであれば、1次元のスプラインの積 と考えればよいので1次元の方法がそのまま延長できる (たとえばAkima, 1974)。

2次元に不規則に分布するデータ点を節点とする場合は、領域を三角形分割する。 Akima (1978a, b, 1984)は、各三角形領域でx, yの5次式を使い、 辺上でx, yそれぞれによる1階微分を連続とし、係数を近所のデータ点だけで 求めることができる方式を提案している。 このプログラムBIVARは公開されている。 グラフィックスの教材格子点でないデータの扱い: 三角形分割」参照)。

「スプライン」は本来、弾性をもった曲線定規をさす (伊理・藤野, 1985, 第16章「雲型定規とスプライン」参照)。 それに忠実に弾性体の変形を考えると、指数関数型の項を含んだ式を導くことが できる。多項式の代わりにこの形の式を各区間について使い、節点で微分を 連続にしたものを「張力をもたせたスプライン」(spline under tension) という。Cline (1974)がアルゴリズムを紹介している。Cline氏の最新の プログラムは有料のようだが、古い版はnetlibその他から公開されている (増田, 1987で紹介したなかにも含まれている)。 そのほか、スプライン関数のなかまとして、有理式(分数式)を使った 「有理式スプライン」も提案されている(市田・吉本の本の3-8節に紹介がある)。

三角関数補間

周期的現象では、多項式よりもサイン・コサインの線形結合(重ね合わせ)で 表現したほうがよい場合も多い。考え方は同様である。


(3) 関数のあてはめ (fitting)

観測値は連続な変数の場(シグナル)とランダムなノイズの合計であると 考え、シグナルはある形の数式に従う座標の関数であると仮定する。 関数が観測値に近い値を通る ように係数を決める。多くの場合、係数の決定には最小2乗法、つまり観測値と 関数値の差の2乗の合計を最小にする方法が使われる。 [最小2乗法は、大きくはずれた観測値--たとえば故障した観測機器からの値や 伝達の失敗--があるとその影響を強く受けすぎる傾向があるので、 それを考慮して重みを修正した方法もある。] 当然ながら、データ点の数は関数の係数の数よりも多くなければならない。

関数としては領域全体にわたる多項式よりも むしろ、スプライン関数など、区分された小領域ごとに違った係数をもった関数を 使うことが多い。(2)の場合と違って、節点をデータ点に一致させる必要がない ので、節点を格子上に配置することが多い(たとえば市田・吉本の4章)。 ただし、データ点の密な部分で要素を小さくしようとすると、単純な格子とは 違った区分が必要になることもある。

対象となる量が偏微分方程式に従うことがわかっている場合は、 その方程式の解の線形結合と考えることも多い。 また、方程式がとけなくても、境界条件をみたす直交関数系の 線形結合と考えることも多い。 (たとえば全地球規模の気象データの場合、大気の運動方程式を線形近似した ものの固有振動解の線形結合とみなしてデータに合う係数を求める方法や、 球面調和関数に展開する方法が使われたことがある。)

(Fittingという用語を、(2)の意味に使っている場合もある。(2)の参考 文献にあげているAkimaやClineの論文など。)


(4) 重みつき平均

求めたい点の近所の複数のデータ点の観測値をもとに、なんらかの平均操作を して推定値とする方法である。

距離に応じた重みをつける方法

距離が近いデータ点ほど、求めたい点に近い値をもっていると期待して、 大きな重みをつけることが多い。 距離に応じた重みの決めかたとしては、距離に反比例、距離の2乗に反比例、 指数関数(指数の係数は負の値)をはじめ、いろいろな形が考えられる。 一般には、いずれの関数形が適当かを決める基準はない。

最適内挿法(optimum interpolation)

観測値がもともと持っている観測誤差と、 距離が離れた変数値どうしの相関の両方を考慮し、 求めたい変数の値の推定誤差の期待値を最小にするように 各観測値が推定値に寄与する重みを決める方法である。 名前は「最適化」つまりある関数の最小化からきており、最適な内挿法という 意味ではない。地質学の分野でkrigingというのもこれである(Krigeという人名 からきた名前)。 あらかじめ、変数値の相関の距離依存性に関する知識をもっている必要がある。 気象データの場合は、温度・気圧・風といった複数の変数の間に相関があるため、 連立させた形で最適内挿法を適用している。


(5) 変分法(variational method) あるいは最適化(optimization)

各点の値を個別に求めるのではなく、変数の場を (実際には対象領域のすべての格子点での値を)一度に求めるわくぐみで考える。 変数の場の関数(汎関数)として、ある実数値(目的関数)を考える。 まず変数の場の大まかな推定値を与え、目的関数が小さくなる方向に場を 修正していき、目的関数が極小になったとき、場の値が求まったとする。

目的関数は、次のようなものに適当な重みをつけた合計をとるのがふつうである。

異質の項のあいだの重みのつけかたは経験的に決めるしかない。

塩野ほか(1988b)の本の第4章では、 膜や薄板の変形エネルギーの最小化の考えにもとづく Basicプログラムを紹介している。 アルゴリズムを変えずにFortranで書きなおしたものを用意した (グラフィックスの教材格子点に内挿して等値線をひく」参照)。


参考文献


2000-07-13, 2001-04-20, 2005-08-10
増田 耕一

[地理情報学の教材の目次へ]