Orthogonal Polynomials
Orthogonal Polynomials タブでは、数値列から直交多項式列を生成します。素の多項式基底 は次数が上がるにつれて列間の相関が極めて高くなり、回帰で得られる係数や当てはめ値の有効桁数が失われることがあります。直交多項式基底を Linear Regression の説明変数に使うと、デザイン行列の条件数が約 1 に低下し、数値計算の精度が改善されます。
基本的な使い方
Orthogonal Polynomials を開く
メニューバーから Data > Orthogonal Polynomials... を選択すると、新しい Orthogonal Polynomials タブが開きます。
多項式列を生成する
- Dataset ドロップダウンで対象のデータセットを選択
- Source column で多項式に変換する数値列を選択
- Degree で多項式の最大次数を指定(1 ~ 30)。次数は有効なデータ点数(null、NaN、Infinity を除いた行数)未満である必要があります
- Preview をクリックして結果を確認
- Output Name に出力データセットの名前を入力
- Save as Dataset をクリック

元のデータセットは変更されず、新しい派生データセットが作成されます。ソース列に null、NaN、Infinity を含む行は派生データセットから除外されます。残りの行について、元の全列に加えて poly_1, poly_2, ..., poly_{degree} の列が追加されます。出力データセットの行数は元のデータセットより少なくなる場合があります。
各直交多項式列は ( は有効データ点数)に正規化されています。
多項式回帰での使い方
素の多項式基底の代わりに直交多項式列を使って回帰する手順です。
- Orthogonal Polynomials タブで
x列から次数 の直交多項式列を生成し、保存する - Linear Regression タブを開き、保存した派生データセットを選択する
- 応答変数に
yを設定する - 説明変数に
poly_1,poly_2, ...,poly_dを設定する
R-squared、残差 SD、当てはめ値、予測区間は素の多項式基底での回帰と同じ値になります。係数は直交多項式基底での値であり、素の多項式基底の係数とは値も解釈も異なります。各 poly_j の係数は 次の直交多項式成分が応答変数にどれだけ寄与するかを表します。直交基底では各係数の 検定が互いに独立になるため、最高次の poly_d の 値が大きければ次数 の成分はモデルに寄与しないと判断できます。
次数を選ぶには、異なる次数で回帰を実行し、Linear Regression の AIC や Adj. R-squared を比較します。直交多項式は数値計算の精度を改善しますが、過適合は防止しません。
Next steps
- Linear Regression - 直交多項式列を使った回帰分析
See also
- 数値計算の基礎 - 条件数が精度に与える影響
- 数値計算の精度 - NIST StRD ベンチマークによる精度検証結果
- Dummy Coding - カテゴリ変数のダミー変数変換