公開日: 11/25/2021

損失関数が定義されたときの仕組み

「非線形回帰」プラットフォームでは、デフォルトの残差平方和(誤差平方和)以外の関数を最小化または最大化することができます。この節では、その処理について数学的に説明します。

f(b)というモデルを使うとしましょう。「非線形回帰」プラットフォームでは、次の式で定義される損失関数の合計が最小化されます。

Equation shown here

各行の損失関数r(•)は、データテーブル内にある、損失関数が定義されている列以外の列の関数である場合があります。また、損失関数を1次微分および2次微分した値はゼロでない必要があります。デフォルトの損失関数r(•)は残差の2乗で、次の式で表されます。

Equation shown here

モデルに自分自身で定義した損失関数を指定するには、データテーブル内で、損失関数を計算式として定義した列を作成します。そして、「非線形回帰」プラットフォームを起動し、損失関数を含んだ列を[損失]に指定します。

非線形回帰における最小化の計算では、モデル内にあるr(•)の最初の2つの微分を取り、次のように勾配と近似ヘッセ行列が求められます。

Equation shown here

パラメータに関してf(•)が線形なら、最後の式の第2項はゼロになります。ゼロにならなくても、合計が第1項に比べて比較的小さくなるようであれば、次の式を使っても良いでしょう。

Equation shown here

rが残差の2乗のときは、残差の合計が小さいため、第2項は小さくなるはずです。また、切片項があるときは0になります。最小2乗法の場合は、この項がGauss-Newton法とNewton-Raphson法とで異なります。

メモ: 標準誤差、信頼区間、および仮説検定が正しくなるのは、最小2乗推定が行われた場合か、負の対数尤度が損失関数として指定され最尤推定が行われた場合のみです。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).