ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

パラメトリック近似

ライブラリ モデルによるパラメトリック近似

パラメトリック近似では、データの近似に使用する 1 つ以上のモデルの係数 (パラメーター) を求める必要があります。データは統計的性質をもっていると仮定し、次の 2 つの成分に分けます。

"データ" = "確定的な成分" + "ランダムな成分"

確定的な成分はパラメトリック モデルによって与えられ、ランダムな成分は多くの場合、データに関連する誤差として説明されます。

"データ" = "パラメトリック モデル" + "誤差"

モデルは、独立 (予測子) 変数と 1 つ以上の係数から成る関数です。誤差は、特定の確率分布 (通常はガウス分布) に従うデータのランダムな変動を表します。この変動は、さまざまなソースから生じる可能性があり、測定データを扱う場合はある程度必ず存在します。体系的な変動が存在する場合もあり、これが原因で、データを適切に表現できない近似モデルが得られる場合があります。

多くの場合、モデル係数には物理的な意味があります。たとえば、放射性核種の単独崩壊モードに対応するデータを収集し、崩壊の半減期 (T1/2) を推定する必要があるとします。放射性崩壊の法則によると、放射性物質の活性は時間と共に指数関数的に減衰します。したがって、近似に使用するモデルは次で与えられます

y=y0eλt

ここで、y0 は時刻 t = 0 における原子核の数、λ は崩壊定数です。データは次のように表すことができます。

data=y0eλt+error

y0 と λ はどちらも近似によって推定される係数です。T1/2 = ln(2)/λ であるため、崩壊定数の近似値から半減期の近似が得られます。ただし、データには誤差が含まれているため、方程式の確定的な成分はデータから正確には決定できません。そのため、係数と半減期の計算には、それらに関連する不確定性が存在します。この不確定性を許容できる場合、データの近似は終了です。不確定性を許容できない場合は、データを追加で収集するか測定誤差を減らして新しいデータを収集し、モデル近似を繰り返すことにより、不確定性を減らす手段を講じる必要があると考えられます。

モデルを決定する理論が存在しないその他の問題では、項を追加または削除してモデルを変更するか、まったく異なるモデルに置き換えることもできます。

以降の節では、Curve Fitting Toolbox™ のパラメトリック ライブラリ モデルについて説明します。

モデル タイプの対話的な選択

曲線近似アプリのドロップダウン リストから近似に使用するモデル タイプを選択します。

曲線または曲面にはどの近似タイプを使用できるでしょうか。選択したデータに基づいて、近似カテゴリ リストに曲線または曲面カテゴリが表示されます。次の表に、曲線および曲面のオプションを示します。

近似カテゴリ曲線曲面
回帰モデル
多項式あり (最大次数 9)あり (最大次数 5)
指数あり 
フーリエあり 
ガウスあり 
べき乗あり 
有理あり 
正弦波の和あり 
ワイブルあり 
内挿
内挿あり
メソッド:
最近傍
線形
3 次
形状維持 (PCHIP)
あり
メソッド:
最近傍
線形
3 次
重調和
薄板スプライン
平滑化
平滑化スプラインあり 
Lowess あり
カスタム
カスタム式ありあり
カスタム線形近似 あり

すべての近似カテゴリについて、[結果] ペインを参照し、モデル項、係数の値、適合度の統計量を確認してください。

ヒント

近似に問題がある場合は、[結果] ペインのメッセージを参考に適切な設定を特定します。

近似設定の選択

曲線近似アプリにはさまざまな近似タイプと設定が用意されており、それらを変更して近似の改良を試みることができます。最初に既定の設定を試してから、その他の設定を試してください。

利用可能な近似オプションを使用する方法の概要については、近似オプションと最適化された開始点の指定を参照してください。

単一の近似 Figure 内でさまざまな設定を試したり、また、複数の近似を作成して比較したりできます。複数の近似を作成すると、曲線近似アプリで、さまざまな近似タイプおよび設定を並べて比較できます。詳細は、曲線近似アプリにおける複数の近似の作成を参照してください。

モデル タイプのプログラムによる選択

関数 fit を呼び出すときに、ライブラリ モデル名を文字列として指定できます。たとえば、2 次多項式の poly2 を指定するには次のようにします。

f = fit( x, y, 'poly2' )

使用できるライブラリ モデル名をすべて表示するには、曲線近似または曲面近似のライブラリ モデルのリストを参照してください。

関数 fittype を使用してライブラリ モデルの fittype オブジェクトを構築し、この fittype を関数 fit の入力として使用することもできます。

次のように関数 fitoptions を使用して、設定できるパラメーターを確認できます。

fitoptions(poly2)

例については、モデル タイプの対話的な選択の表にリストされている各モデル タイプの節を参照してください。モデルを作成および解析するすべての関数の詳細については、曲線近似および曲面近似を参照してください。

正規化またはセンタリングとスケーリングの使用

曲線近似アプリのほとんどのモデル タイプには、共通オプションとして [データのセンタリングとスケーリング] があります。このオプションを選択すると、Normalize 設定が変数に適用され、センタリングおよびスケーリングされたデータを使用して再近似が行われます。コマンド ラインでは、関数 fitoptions の入力引数として Normalize を使用できます。fitoptions のリファレンス ページを参照してください。

一般的に、入力 ("予測子データ" とも呼ばれる) を正規化することをお勧めします。これにより、変数のスケールが異なる数値的な問題を緩和できます。たとえば、曲面近似の入力が毎分 500 ~ 4500 回転の範囲のエンジン スピードと 0 ~ 1 の範囲のエンジン負荷率であるとします。この場合、2 つの入力間でスケールが大きく異なるため、通常 [データのセンタリングとスケーリング] により近似が改善されます。ただし、入力が同じ単位または同じスケール (地理的データの東距と北距など) である場合は、[データのセンタリングとスケーリング] はあまり役に立ちません。このオプションで入力を正規化すると、近似係数の値も元のデータに比べて変化します。

曲線近似または曲面近似で係数を推定する場合または係数に物理的な意味がある場合は、[データのセンタリングとスケーリング] チェック ボックスをオフにしてください。曲線近似アプリのプロットでは、[データのセンタリングとスケーリング] オプションを使用しても使用しなくても元のスケールが使用されます。

コマンド ラインで、近似する前にデータをセンタリングおよびスケーリングするオプションを設定するには、既定の近似オプションの構造体を作成し Normalizeon に設定してからそのオプションで近似を行います。

options = fitoptions;
options.Normal = 'on';
options
options =
    Normalize: 'on'
    Exclude: [1x0 double]
    Weights: [1x0 double]
    Method: 'None'

load census
f1 = fit(cdate,pop,'poly3',options)

近似オプションと最適化された開始点の指定

近似オプションについて

以降の節では、対話型の近似オプションについて説明します。同じ近似オプションをプログラムによって指定するには、コマンド ラインでの近似オプションの指定を参照してください。

曲線近似アプリで対話的に近似オプションを指定するには、[近似オプション] ボタンをクリックして [近似オプション] ダイアログ ボックスを開きます。内挿および平滑化スプラインを除くすべての近似カテゴリに、構成変更可能な近似オプションがあります。

使用可能なオプションは、線形モデル、非線形モデル、ノンパラメトリック近似タイプのどれを使用してデータを近似するかによって異なります。

  • 非線形モデルでは、以下に説明するすべてのオプションを使用できます。

  • [下限] および [上限] の係数制約は、多項式線形モデルのダイアログ ボックスで使用できる唯一の近似オプションです。多項式の場合、[近似オプション] ダイアログ ボックスを開かなくても曲線近似アプリで [ロバスト] を設定できます。

  • ノンパラメトリック近似タイプには追加の近似オプション ダイアログ ボックス (内挿、平滑化スプラインおよび lowess) がありません。

単項指数モデルの近似オプションを次に示します。係数の開始値と制約は国勢調査データのものです。

近似法およびアルゴリズム

  • メソッド — 近似法。

    使用するライブラリまたはカスタム モデルに応じて手法が自動的に選択されます。線形モデルの場合、手法は [LinearLeastSquares] です。非線形モデルの場合、手法は [NonlinearLeastSquares] です。

  • ロバスト — ロバスト最小二乗近似法を使用するかどうかを指定します。

    • Off — ロバスト近似を使用しません (既定の設定)。

    • On — 既定のロバスト法 (二重平方重み) を使用して近似します。

    • LAR — 最小絶対残差 (LAR) を最小化することにより近似します。

    • 二重平方 — 残差平方和の最小化により近似し、二重平方重みを使用して外れ値の重みを小さくします。ロバスト近似では多くの場合、これが最良の選択肢です。

  • アルゴリズム — 近似手順で使用するアルゴリズム。

    • Trust-Region — これは既定のアルゴリズムであり、[下限] または [上限] 係数制約を指定する場合は使用しなければなりません。

    • Levenberg-Marquardt — 信頼領域アルゴリズムで適切な近似が生成されず、係数制約がない場合は、レーベンバーグ・マルカート法のアルゴリズムを試してください。

有限差分パラメーター

  • DiffMinChange — 有限差分ヤコビアンの係数の最小変化量。既定値は 10-8 です。

  • DiffMaxChange — 有限差分ヤコビアンの係数の最大変化量。既定値は 0.1 です。

[DiffMinChange] および [DiffMaxChange] は以下に適用されることに注意してください。

  • 非線形カスタム方程式、つまり、独自に記述した非線形方程式

  • Curve Fitting Toolbox ソフトウェアで提供される一部の非線形方程式

ただし、[DiffMinChange] および [DiffMaxChange] は線形方程式には一切適用されません。

近似の収束条件

  • MaxFunEvals — 可能な関数 (モデル) 評価の最大回数。既定値は 600 です。

  • MaxIter — 近似の反復の最大許容回数。既定値は 400 です。

  • TolFun — 関数 (モデル) 値を含む停止条件に使用する終了許容誤差。既定値は 10-6 です。

  • TolX — 係数を含む停止条件に使用する終了許容誤差。既定値は 10-6 です。

係数パラメーター

  • 係数 — 近似される未知の係数の記号。

  • 開始点 — 係数開始値。既定値はモデルに応じて異なります。有理モデル、ワイブル モデルおよびカスタム モデルの場合、既定値は範囲 [0,1] 内でランダムに選択されます。その他のすべての非線形ライブラリ モデルの場合、開始値はデータセットにより異なり、経験則的に計算されます。次の最適化された開始点を参照してください。

  • 下限 — 近似係数の下限。ツールは信頼領域近似アルゴリズムのこの範囲のみを使用します。多くのライブラリ モデルでは既定の下限は -Inf であり、係数の制約はありません。ただし、いくつかのモデルでは既定の下限が有限です。たとえば、ガウス モデルの幅パラメーターには 0 未満にならないようにする制約があります。次の既定の制約を参照してください。

  • 上限 — 近似係数の上限。ツールは信頼領域近似アルゴリズムのこの範囲のみを使用します。すべてのライブラリ モデルにおいて既定の上限は Inf であり、係数の制約はありません。

これらの近似オプションの詳細については、Optimization Toolbox™ のドキュメンテーションの関数 lsqcurvefit を参照してください。

最適化された開始点と既定の制約

ライブラリ モデルおよびカスタム モデルの既定の係数開始点および制約を次の表に示します。開始点が最適化される場合、開始点は現在のデータセットに基づいて経験則的に計算されます。ランダムな開始点は区間 [0,1] で定義され、線形モデルには開始点が必要ありません。

モデルに制約がない場合、係数には下限も上限もありません。既定の開始点と制約をオーバーライドするには、[近似オプション] ダイアログ ボックスを使用して独自の値を指定します。

既定の開始点と制約

モデル

開始点

制約

カスタム線形

該当なし

なし

カスタム非線形

ランダム

なし

指数

最適化済み

なし

フーリエ

最適化済み

なし

ガウス

最適化済み

ci > 0

多項式

該当なし

なし

べき乗

最適化済み

なし

有理

ランダム

なし

正弦波の和

最適化済み

bi > 0

ワイブル

ランダム

a、b > 0

正弦波の和モデルおよびフーリエ級数モデルは開始点の影響を特に受けやすく、また、最適化された値が対応する方程式の少数の項についてしか正確ではない場合があることに注意してください。

コマンド ラインでの近似オプションの指定

既定の近似オプションの構造体を作成し、近似する前にデータをセンタリングおよびスケーリングするオプションを設定します。

options = fitoptions;
options.Normal = 'on';
options
options =
    Normalize: 'on'
    Exclude: [1x0 double]
    Weights: [1x0 double]
    Method: 'None'

NormalizeExclude または Weights フィールドを設定してから、さまざまな近似法で同じオプションを使用してデータを近似する場合、既定の近似オプションの構造体を変更すると便利です。以下に例を示します。

load census
f1 = fit(cdate,pop,'poly3',options);
f2 = fit(cdate,pop,'exp1',options);
f3 = fit(cdate,pop,'cubicsp',options);

データ依存の近似オプションが関数 fit の 3 番目の出力引数として返されます。たとえば、平滑化スプラインの平滑化パラメーターはデータに依存します。

[f,gof,out] = fit(cdate,pop,'smooth');
smoothparam = out.p
smoothparam =
    0.0089

近似オプションを使用して、新しい近似用に既定の平滑化パラメーターを変更できます。

options = fitoptions('Method','Smooth','SmoothingParam',0.0098);
[f,gof,out] = fit(cdate,pop,'smooth',options);

近似オプションの使用方法の詳細については、fitoptions のリファレンス ページを参照してください。