バージョン7.0の時点では,非線形回帰機能は Mathematica に組み込まれている. »

非線形回帰パッケージ

組込み関数のFindFitを使うと,非線形最小二乗フィットを実行することができる.関数NonlinearRegressは数多くの回帰診断を与え,出力に何を含めるかを厳密に指定することができる.NonlinearRegressは線形最小二乗フィットの診断を与える線形回帰パッケージ関数のRegressに類似したものである.

NonlinearRegress[data,expr,pars,vars]モデル exprdata への最適フィットを vars の関数として与えるようにするパラメータ pars の数値を見付け,フィットの診断を与える
NonlinearRegress[data,{expr,cons},pars,vars] 指定された制約条件の対象となるモデルにデータをフィットし,最適フィットを探し,制約条件 cons の対象となる診断を与える

NonlinearRegress関数

NonlinearRegressの引数 expr は,引数 vars のシンボルおよび引数 pars のシンボルによって完全に指定しなければならない.引数 varsdata で表される独立変数を指定する.引数 pars はフィットするパラメータを指定する.制約条件のあるモデルでは,引数 cons に方程式,不等式,方程式および不等式の論理結合のどれが含まれていてもよい.

引数 data はベクトルのリストでもよい.各ベクトルは独立変数 , , ...の値に続き,関連する応答の観測値 y から成る.また,データ引数は単独のベクトルでもよい.この場合,ベクトルは応答変数の観測値を表し,i 番目の応答に対する独立変数が i に等しいものと仮定する.

{y1,y2,...}応答値のリストによって指定されたデータ点.ここで,ii 番目の応答に関連した独立変数の値 である
{{x11,x12,...,y1},{x21,x22,...,y2},...}
行列によって指定されたデータ点.ここで,k 番目の独立変数の i 番目の値で,i 番目の応答である

NonlinearRegressのデータ指定

モデルのパラメータの推定値は,残差平方和 によって与えられる メリット関数を最小化するよう選ばれる.NonlinearRegressで使用される最適化方法は反復的なので,パラメータ推定値の検索には初期値が必要となる.NonlinearRegressで見付かるパラメータ推定値が メリット関数の極小値を表す可能性があるので,初期値を選ぶ際には注意が必要である.

パラメータはFindFitと同じシンタックスを使って指定する.パラメータは symbolとして指定することができる.ここで startminmax はシンボルの初期値と最小/最大値を指定する実数である.メソッドがNMinimizeならば,NMinimizeは自動的に実現可能な初期値を見付ける.パラメータがシンボルとして指定されておりメソッドがNMinimizeでない場合は,すべてのパラメータの初期値は1とされる.

パラメータがと指定された場合,パラメータ推定の検索では symbol の最初の2つの値として が使われる.パラメータに関して の記号的導関数を見付けられ場合は,この形式を使わなければならない.

パッケージをロードする.
In[1]:=
Click for copyable input
RothとMeyerによる以下のデータは,化学反応を記述する.
In[2]:=
Click for copyable input
以下でモデル にフィットし,フィットの診断を与える.
In[3]:=
Click for copyable input
Out[3]=
オプション名
デフォルト値
AccuracyGoalAutomatic目標確度
CompiledAutomaticモデルをコンパイルするかどうか
GradientAutomatic勾配関数のリスト
MaxIterations100使用する最大反復回数
MethodAutomatic使用するメソッド
PrecisionGoalAutomatic目標精度
RegressionReportSummaryReport含まれるフィット診断
ToleranceAutomatic行列操作に対する数値許容誤差
WeightsAutomatic各点あるいは純関数に対する重みのリスト
WorkingPrecisionMachinePrecision内部計算で使われる精度

NonlinearRegressのオプション

NonlinearRegressはパラメータ推定値を求めるのにFindFitを使うので,FindFitのオプションであるAccuracyGoalCompiledMaxIterationsMethodPrecisionGoalWorkingPrecisionを使うことができる.Methodオプションは,メリット関数の最小化を実行するアルゴリズムの選択を可能にするものである.Methodで可能な設定には(最急降下法),NMinimizeAutomaticがある.メソッドオプションはMethod->{method, options}と指定することで,メソッドに渡すことができる.

RegressionReportのデフォルト設定のSummaryReportでは,BestFitParametersParameterCITableEstimatedVarianceANOVATableAsymptoticCorrelationMatrixFitCurvatureTableの値を含むリストが与えられる.オプションRegressionReportで単独のオブジェクトあるいはオブジェクトのリストを指定すると,出力にデフォルトの結果以上(あるいは以下)が含まれるようになる.RegressionReportValues[NonlinearRegress]NonlinearRegress関数のRegressionReportリストに含むことのできるオブジェクトを与える.

Weightsオプションを使うと,各データ点につき1つの重みのリストを指定することにより,重み付き最小二乗を実装することができる.デフォルトのWeights->Automaticは各データ点が単位重であることを示す.Weights->{w1, ..., wn}のときは,パラメータ推定値は重み付き残差平方和 を最小化するよう選ばれる.

Weightsは応答の純関数を指定することもできる.例えば, を最小化するパラメータ推定値を選ぶためには,Weights->(Sqrt[#]&)と設定する.

NonlinearRegressStudentTCIに指定できるオプションならどれでも取ることができる.特にConfidenceLevelは参照パラメータの信頼域(この相対的な曲率はFitCurvatureTableで与えられる)とParameterCITableで与えられる個々のパラメータ信頼区間を指定する.

ここではパラメータ推定値だけが返される.
In[4]:=
Click for copyable input
Out[4]=

結果はレポートから抽出し,後の計算で使うことができる.

残差はここでは残差が抽出されプロットされる.
In[5]:=
Click for copyable input
Out[5]=
In[6]:=
Click for copyable input
Out[6]=
BestFit最適フィット関数
BestFitParameters最適フィットのパラメータ推定値
ANOVATable分散分析の表
EstimatedVariance推定誤差分散
ParameterTable漸近標準誤差および検定統計量を含むパラメータ情報の表
ParameterCITableパラメータの漸近信頼区間の表
ParameterConfidenceRegionパラメータの楕円の漸近結合信頼領域
ParameterConfidenceRegion[{pari 1,pari 2,...}]
パラメータの楕円の漸近結合信頼領域
FitResiduals観測応答と予測応答との差
PredictedResponse独立変数の観測値における最適フィット関数を評価することにより求められるフィットされた値
SinglePredictionCITable応答変数の1度の観測を予測するための漸近信頼区間の表
MeanPredictionCITable応答変数の期待値を予測するための漸近信頼区間の表
AsymptoticCovarianceMatrixパラメータの漸近共分散行列
AsymptoticCorrelationMatrixパラメータの漸近相関行列

NonlinearRegressに対する基本的なRegressionReportの値

ANOVATableは平方和の分割を行う.この平方和には,相関のない総平方和(切片項なし)も相関のある総平方和(切片項あり)も含まれる.相関のある総平方和は,非線形モデルの近似が線形モデルの近似と比較できるように,Regressによって生成されたの値に見あうの値を計算するのに便利である.例えば,非線形回帰のの定義として,相関のある総平方和に対する,相関のある総平方和と残差平方和との差の比というものが可能である.上記の表の他のオブジェクトは,線形回帰関数RegressRegressionReportの値と同様の意味を持つ.

StartingParametersパラメータの初期値

最小二乗フィットの検索を記述する値

RegressionReportで要求されるオブジェクトのリストにStartingParametersを入れておくと,最小二乗フィットがうまくいかず新しい点で検索を再開しなければならないときに便利である.

HatDiagonalハット行列の対角行列.ここでは最小二乗パラメータ推定値でのおおよその線形モデルに対する計画行列である
StandardizedResiduals推定誤差分散を使って計算され,漸近標準誤差でスケールされた近似残差

外れ値検出の診断

非線形モデルが最小二乗フィットでほぼ線形であるならば,データの外れ値の検索にはHatDiagonalStandardizedResidualsが役に立つ.HatDiagonalは予測変数の各観測が異常であるかどうかを測定し,各点の影響力を与える.影響力ゼロとは全く影響力がないことであり,影響力1とは,自由度がその点のフィットでは失われていることを示す.

FitCurvatureTable最大相対内部曲率,最大相対パラメータ効果曲率,最小二乗解の信頼領域の相対曲率(ここで信頼水準はConfidenceLevelによって与えられる)
ParameterBias非線形モデルにおけるパラメータの最小二乗推定値のバイアス

線形モデルの非線形モデルへの近似の妥当性検証の診断

FitCurvatureTableは最小二乗推定における解の位置の相対的な曲率を,内部およびパラメータ効果の2つの要素で表現する.前述のデータとモデルの組合せでは,p=3n=5となる.解の位置は{, , , , }, によって与えられるの3D部分空間である.

内部曲率とは,最小二乗推定における解の位置の曲率の通常要素を記述する.パラメータ効果の曲率とは,最小二乗推定での解の位置の曲率の接線要素を記述する.次元の部分空間上の相対内部曲率を通常からその位置に最大化することにより,最大相対内部曲率が求められる.同様に,p 次元の部分空間上の相対パラメータ効果曲率を接線からその位置に最大化することにより,最大相対パラメータ効果曲率が求められる.

両方の最大曲率は,最小二乗パラメータ推定を中心とする信頼領域の相対曲率と比較できる.最大相対内部曲率が信頼領域の相対曲率と比較して小さければ,解の位置は信頼領域上のほぼ平面である.最大相対パラメータ効果曲率が信頼領域の相対曲率と比較して小さければ,接平面上に投影されるパラメータ座標はほぼ平行で,信頼領域上に一様な間隔で広がる.

ParameterBiasは最小二乗推定に対して接線方向の解の位置の平均曲率に基づく.

ここでは,同じデータが再パラメータ化されたモデル にフィットされている.
In[7]:=
Click for copyable input
Out[7]=

モデルを再パラメータ化しても内部曲率には影響がない.しかし,ここでの再パラメータ化はパラメータ効果曲率を臨界値のより小さくしている.このことは,パラメータ の最小二乗推定はほとんど線形に近い動作を見せることを意味する.パラメータ間の漸近相関がすべてのペアについて高くなったことは,パラメータ数の少ないモデルを考えた方がよいことを示している.

最大相対曲率の診断は,非線形モデルへの線形近似に基づく推測を行いたい場合に便利である.例えば,ParameterCITableParameterConfidenceRegionのようなパラメータの漸近標準誤差に基づく診断は,モデルへの線形近似が最小二乗パラメータ推定においてよくない場合に,その妥当性に疑問の余地がある.線形近似は,最大相対内部曲率でテストされる平面仮定,および最大相対パラメータ効果曲率でテストされる一様な座標仮定に基づいている.

制約条件付きのモデルでは,近似的な正規性の仮定に基づくRegressionReportの値は妥当でない場合がある.そのような値がRegressionReportオプションにリストされているときは,その値は警告メッセージを伴って表示される.

New to Mathematica? Find your learning path »
Have a question? Ask support »