名前
trend2d - [重み付き][ロバストな]多項式モデル z = f(x,y) を
xyz[w] データにフィットさせます。
概要
trend2d -F<xyzmrw> -Nn_model[r] [ xyz[w]file ] [ -Ccondi-
tion_# ] [ -H[nrec] ][ -I[confidence_level] ] [ -V ] [ -W
] [ -: ] [ -bi[s][n] ] [ -bo[s][n] ]
記述
trend2d は x,y,z [および w ]の値を標準入力[または xyz[w]file ]
の最初の3[4]列から読んで、[重み付き]最小自乗法により回帰モ
デル z = f(x,y) + e にフィットさせます。当てはめはデータの
重み付けを繰り返すことによるロバストな方法で行うこともでき
ます。ユーザは z の分散を減らすのに重要な f(x,y) の項の数を
調べることもできます。 n_model は次の形式のモデルに当てはめ
る際の [1,10] の範囲の数です( grdtrend と同じ):
m1 + m2*x + m3*y + m4*x*y + m5*x*x + m6*y*y + m7*x*x*x +
m8*x*x*y + m9*x*y*y + m10*y*y*y.
ユーザは用いるモデルパラメータの数を -Nn_model で指定しなけ
ればなりません; すなわち、-N4 は1次元トレンド、-N6 は2次曲
面、というふうになります。オプションで、 -N オプションに r
を付けるとロバストフィットを実行します。この場合、このプロ
グラムは外れ値に影響されにくい解に収束させるためにロバスト
スケール推定に基づいてデータへの重み付けを繰り返します。こ
れは広い曲面上の局所的な山のような、平均がゼロにならない
"残差"から"広域的な"場を分離するときに便利でしょう。
-F 任意の順序で文字をセット{x y z m r w}から最大6つま
で指定し、 ASCII [またはバイナリ]出力の列を作ります。
x = x, y = y, z = z, m = モデル f(x), r = 残差 y - m,
w = フィッティングに用いる重み。
-N モデルの項の数 n_model を指定します。 r を付けると
ロバストフィットを実行します。例、ロバストな1次元モ
デルは -N4r です
オプション
xyz[w]file
x,y,z [w] の値を最初の3[4]列に含む ASCII [またはバイ
ナリ、 -b 参照]ファイル。ファイルを指定しないときは、
trend2d は標準入力を読みます。
-C 行列の解に対する最大許容状態数を設定します。 trend2d
ではダンプ付き最小自乗モデルへの当てはめを行いますが、
最大固有値の最小固有値に対する比が condition_# であ
る固有スペクトルの部分のみ保持します[デフォルト:
condition_# = 1.0e06 ]。
-H 入力ファイルにヘッダレコードがあります。ヘッダレコ
ードの数は .gmtdefaults ファイルを編集することによ
り変更できます。このオプションが使われた場合、 GMT
のデフォルトではヘッダレコードは1行です。
-I モデルパラメータの数を、1から始めて、 n_model に達す
るかモデルの分散の減少が confidence_level のレベルに
おいて重要でなくなるまで繰り返し増加させます。数字を
付けずに、 -I だけ設定することもできます; この場合は
当てはめはデフォルトの信頼レベル0.51で繰り返されます。
あるいは独自のレベルを0と1の間で設定することもできま
す。注意のセクションを参照。
-V 冗長モードを選択します。標準エラー出力に経過報告を
送ります[デフォルトでは"静かに"走ります]。
-W 重みを入力の4列目に与えます。重み付き最小自乗フィッ
トを実行します[または繰り返しロバストフィットを実行
するときにこの重みから始めます][デフォルトでは最初の
3列しか読みません]。
-: 入出力の(経度,緯度)と(緯度,経度)を入れ替えます。[デ
フォルトは(経度,緯度)です]。地理座標のみに適用されま
す。
-bi バイナリ入力を選択します。単精度に対しては s を付け
加えます[デフォルトは倍精度です]。バイナリファイルの
列数に応じて n を付け加えてください[デフォルトは3
( -W 設定時は4)です]。
-bo バイナリ出力を選択します。単精度に対しては s を付け
加えます[デフォルトは倍精度です]。
注意
x と y の領域は [-1, 1] にシフト、およびスケールされ、用い
られる基底関数はチェビシェフの多項式となります。これらには、
逆問題を解かなければならないから行列の形であるという点にお
いて数値的な利点があり、また正確な解答を可能にしています。
trend2d の多くの応用においてユーザは x,y 平面上の x 軸とあ
る角度をなす直線に沿っておおよそ位置するデータ(道路や航跡に
沿って集められたデータなど)を使います。この場合 x,y 軸を回
転することで精度が改善されることがあります。 trend2d はこ
のような回転を調べることはしません; その代わり、行列問題で
不足するランクを見つけることがあります。しかし、その解は一
般逆行列を用いて計算されており、それでもうまくいくでしょう。
ユーザは trend2d がランク不足を示したら結果を図で確認した
ほうが良いでしょう。メモ: -V で表示されるモデルパラメータは
チェビシェフの係数です; これらは上に書かれた式の m#s とは数
値的に等しくありません。上の記述はユーザに -N を多項式の曲
面の次元に合わせることを可能にするためのものです。
-Nr (ロバスト)と -I (繰り返し)オプションではF検定によりモデ
ル誤差のχ自乗の改善の重要度を評価します。デフォルトの信頼
限界は0.51に設定されています; これは -I オプションで変更す
ることができます。ユーザは大部分の場合にモデルの項の数の増
加による分散の減少が非常に高い信頼度においては重要でないこ
とに驚くかもしれません。例えば、自由度120で、95%信頼レベル
において重要であるためにはχ自乗は26%以上減少しなければなり
ません。χ自乗が減少する限り繰り返しを継続したいときは、
confidence_level をゼロに設定します。
ロバストな方法がうまくいくためには(デフォルト値0.51のように)
信頼限界を低くすることが必要です。この方法は外れ値の影響を
選らすためにデータに繰り返し重みをかけていきます。この重み
はメディアン絶対偏差と Huber [1964] の公式に基づいており、
モデルの残差が外れ値の影響を受けない標準的分布を持つときに
は95%有効です。これは外れ値の影響が各繰り返しにおいてわずか
しか減少しないことを意味しています; その結果、χ自乗の減少
はあまり重要でないのです。うまくこの影響を減少させるために
この手順に少しの繰り返ししか必要でないなら、F検定の重要度レ
ベルは低くしておかなければなりません。
用例
data.xyz から通常の最小自乗法で平面トレンドを除去します:
trend2d data.xyz -Fxyr -N2 > detrended_data.xyz
上の平面トレンドを外れ値に関してロバストにします:
trend2d data.xzy -Fxyr -N2r > detrended_data.xyz
ロバストな内挿において(20までで)いくつの項が data.xyz への
フィッティングに重要か調べます:
trend2d data.xyz -N10r -I -V
関連事項
gmt(l), grdtrend(l), trend1d(l)
参考文献
Huber, P. J., 1964, Robust estimation of a location param-
eter, Ann. Math. Stat., 35, 73-101.
Menke, W., 1989, Geophysical Data Analysis: Discrete
Inverse Theory, Revised Edition, Academic Press, San
Diego.
1 May 2003 TREND2D(l)
Man(1) output converted with
man2html