何が起こっているのかを調べましょう。次の資料のほとんどを既に知っていると思いますが、表記法と定義を確立し、アイデアを明確にするために、質問に答える前に多項式回帰の基本をカバーします。R
必要に応じて、この投稿の約3分の2にある「What does」という見出しにジャンプし、必要に応じて定義をスキップしてください。
設定
ある種の回帰における潜在的な説明変数のn×kモデル行列Xを検討しています。これは、私たちの列のだ思考Xであるとしてn -vectors X1,X2,…,Xkと私たちは、それらの線形結合を形成することになるβ1X1+β2X2+⋯+βkXk,応答を予測または推定します。
Xさまざまな列を互いに係数で乗算することにより作成される追加の列を導入することにより、回帰を改善できる場合があります。そのような製品は「モノミアル」と呼ばれ、次のように書くことができます。
Xd11Xd22⋯Xdkk
ここで、各「パワー」diはゼロ以上で、各X1が製品に現れる回数を表します。X0は定数係数(1)のnベクトルであり、X 1 = Xそのものであることに注意してください。したがって、単項式(ベクトルとして)は、Xの元の列空間を含むベクトル空間を生成します。1X1=XX. 大きなベクトル空間である可能性があるため、この手順では、線形結合で応答をモデル化するための範囲が広がります。
元のモデル行列Xを単項式のコレクション線形結合で置き換えるつもりです。これらの単項式の少なくとも1つの次数が1,を超える場合、これは多項式回帰ます。
多項式のグレーディング
単項式の次数は、その累乗の合計d1+d2+…+dk. 単項式の線形結合の次数(「多項式」)は、非ゼロ係数を持つ単項項の中で最大の次数です。 次数には固有の意味があります。元のベクトル空間の基底を変更すると、各ベクトルXiがすべてのベクトルの線形結合によって新たに表されるためです。単項式Xd11Xd22⋯Xdkkこれにより、同じ次数の多項式になります。その結果、多項式の次数は変更されません。
次数は、この多項式代数に自然な「グレーディング」を提供しますXの単項式のすべての線形結合により生成されるベクトル空間は、d+1,次数(または次数d+1多項式と呼ばれます)X,「度までの多項式のベクトル空間拡張dでX.
多項式回帰の使用
多くの場合、多項式回帰は、最初にどの単項式を含めるかわからないという意味で探索的です。単項式から新しいモデル行列を作成し、回帰を再フィッティングするプロセスを何度も繰り返す必要があるかもしれません。おそらく機械学習の設定によっては天文学的な回数になるかもしれません。
このアプローチの主な問題は
単項式は、主に単一変数のべき乗が高度に共線になる傾向があるため、新しいモデル行列に問題のある量の「多重共線性」を導入することがよくあります。(2つの異なる変数のべき乗の間の共線性は、それらの変数がどのように関連しているかに依存するため、予測不能であり、したがって予測が困難です。)
モデルマトリックスの1つの列のみを変更したり、新しい列を導入したり、列を削除したりするには、回帰手順の「コールドリスタート」が必要になることがあり、計算に時間がかかる可能性があります。
多項式代数のグレーディングは、両方の問題を克服する方法を提供します。
1つの変数の直交多項式
与えられた単一の列ベクトルX,のために「直交多項式」の組X列ベクトルのシーケンスであるp0(X),p1(X),p2(X),…における単項式の線形結合として形成されるXのみ-つまり、X累乗として- 次のプロパティを持つ:
各次数ためd=0,1,2,…,ベクトルp0(X),p1(X),…,pd(X)と同じベクトル空間を生成するX0,X1,…,Xd. (X0は1のnベクトルであり、X1は単なるXであることに注意してくださいX 自体。)
pi(X)相互にある直交する意味で、そのためのi≠j, pi(X)′pj(X)=0.
通常、これらの単項式から形成される置換モデル行列P=(p0(X)p1(X)⋯pd(X))
は、列を単位長に正規化することにより正規直交するように選択されます:P′P=Id+1.
P′P 逆数はほとんどの回帰式に現れ、単位行列の逆数Id+1 それ自体であり、これは巨大な計算ゲインを表します。
正規直交性はpi(X).ほぼ決定します。 これは構造によって見ることができます:
第1の多項式、p0(X),の倍数でなければならないn -ベクトル1=(1,1,…,1)′の単位長さの。選択肢は2つだけです。±1/n−−−√1. 正の平方根を選択するのが慣例です。
2番目の多項式p1(X),1.に直交しなければなりません。 これは、回帰することによって得ることができるX反対1,その溶液の平均値のベクトルであり、X = ˉ X 1。 残差が場合はε = X - X同様にゼロではない、彼らは唯一の2つの解決策与えるP 1(X )= ±を(1 / | | ε | |X^=X¯1.ϵ=X−X^p1(X)=±(1/||ϵ||)ϵ.
...
- 一般的に、pd+1(X)は、Xd+1をp0(X),p1(X),…,pd(X)に対して回帰し、残差を単位長さのベクトルに再スケーリングすることにより得られます。残差がすべてゼロではない場合、符号には2つの選択肢があります。それ以外の場合、プロセスは終了しますX.より高いパワーを調べることは無益です。 (これは素晴らしい定理ですが、その証明はここで私たちの注意をそらす必要はありません。)
これは、ベクトルX 0、X 1、… 、X d、…の固有のシーケンスに適用されるグラムシュミットプロセスです。 通常、QR分解を使用して計算されますが、これはほとんど同じですが、数値的に安定した方法で計算されます。X0,X1,…,Xd,….
この構造により、モデルマトリックスに含めることを検討する一連の追加列が生成されます。したがって、通常、1つの変数の多項式回帰は、回帰のさらなる改善が得られなくなるまで、このシーケンスの要素を1つずつ順番に追加することによって進行します。新しい列は以前の列と直交しているため、以前の係数推定値は変更されません。これにより、効率的で容易に解釈可能な手順が作成されます。
複数変数の多項式
探索回帰(およびモデルフィッティング)は、通常、最初にモデルに含める(元の)変数を検討することから始まります。次に、単項式などの変数のさまざまな変換を含めることで、これらの変数を増強できるかどうかを評価します。そして、これらの変数とその再表現の積から形成される「相互作用」を導入します。
そのようなプログラムを実行するには、Xの列に単変量直交多項式を個別にX形成することから始めます。 各列に適切な次数を選択した後、相互作用を導入します。
この時点で、単変量プログラムの一部が故障します。適切なモデルが特定されるまで、どのような相互作用のシーケンスを1つずつ適用しますか?さらに、多変量解析の領域に真に入った今、利用可能なオプションの数とその複雑さは、多変量直交多項式のシーケンスを構築する際の収益が減少する可能性があることを示唆しています。 ただし、このようなシーケンスを念頭に置いていれば、QR分解を使用して計算できます。
何R
ん
したがって、多項式回帰用のソフトウェアは、単変量直交多項式シーケンスの計算に焦点を合わせる傾向があります。そのR
ようなサポートを可能な限り自動的に単変量多項式のグループに拡張することが特徴です。これは何をpoly
します。(そのコンパニオンpolym
は基本的に同じコードであり、付加機能は少なく、2つの関数は同じことを行います。)
具体的にpoly
は、指定された次数d で停止する単一のベクトルX,与えられると、単変量直交多項式のシーケンスを計算します。 (dが大きすぎる場合(および大きすぎる大きさを予測することが困難な場合)、残念ながらエラーがスローされます。)行列Xの形式のベクトルX 1、… 、X kのセットが与えられた場合、戻りますd.dX1,…,XkX,
直交多項式の配列p1(Xj),p2(Xj),…,pd(Xj)毎にjのうち要求された最大次数d. (定数ベクトルp0(Xi)はすべての変数に共通であり、非常に単純であるため(通常、回帰の切片によって調整されR
ます)、それを含めることはありません。)
次数dまでの直交多項式間のすべての相互作用。d.
Step (2) involves several subtleties. Usually by an "interaction" among variables we mean "all possible products," but some of those possible products will have degrees greater than d. For instance, with 2 variables and d=2, R
computes
p1(X1),p2(X1),p1(X2),p1(X1)p1(X2),p2(X2).
R
does not include the higher-degree interactions p2(X1)p1(X2), p1(X1)p2(X2) (polynomials of degree 3) or p1(X2)p2(X2) (a polynomial of degree 4). (This is not a serious limitation because you can readily compute these products yourself or specify them in a regression formula
object.)
Another subtlety is that no kind of normalization is applied to any of the multivariate products. In the example, the only such product is p1(X1)p1(X2). However, there is no guarantee even that its mean will be zero and it almost surely will not have unit norm. In this sense it is a true "interaction" between p1(X1) and p1(X2) and as such can be interpreted as interactions usually are in a regression model.
An example
Let's look at an example. I have randomly generated a matrix X=⎛⎝⎜152364⎞⎠⎟.
To make the calculations easier to follow, everything is rounded to two significant figures for display.
The orthonormal polynomial sequence for the first column X1=(1,5,2)′ begins by normalizing X01=(1,1,1)′ to unit length, giving p0(X1)=(1,1,1)′/3–√≈(0.58,0.58,0.58)′. The next step includes X11=X1 itself. To make it orthogonal to p0(X1), regress X1 against p0(X1) and set p1(X1) equal to the residuals of that regression, rescaled to have unit length. The result is the usual standardization of X1 obtained by recentering it and dividing by its standard deviation, p1(X1)=(−0.57,0.79,−0.23)′. Finally, X21=(1,25,4) is regressed against p0(X1) and p1(X1) and those residuals are rescaled to unit length. We cannot go any further because the powers of X1 cannot generate a vector space of more than n=3 dimensions. (We got this far because the minimal polynomial of the coefficients of X1, namely (t−1)(t−5)(t−4), has degree 3, demonstrating that all monomials of degree 3 or larger are linear combinations of lower powers and those lower powers are linearly independent.)
The resulting matrix representing an orthonormal polynomial sequence for X1 is
P1=⎛⎝⎜0.580.580.58−0.570.79−0.230.590.20−0.78⎞⎠⎟
(to two significant figures).
In the same fashion, an orthonormal polynomial matrix for X2 is
P2=⎛⎝⎜0.580.580.58−0.620.77−0.150.530.27−0.80⎞⎠⎟.
The interaction term is the product of the middle columns of these matrices, equal to (0.35,0.61,0.035)′. The full matrix created by poly
or polym
, then, is
P=⎛⎝⎜−0.570.79−0.230.590.20−0.78−0.620.77−0.150.350.610.0350.530.27−0.80⎞⎠⎟.
Notice the sequence in which the columns are laid out: the non-constant orthonormal polynomials for X1 are in columns 1 and 2 while those for X2 are in columns 3 and 5. Thus, the only orthogonality that is guaranteed in this output is between these two pairs of columns. This is reflected in the calculation of P′P, which will have zeros in positions (1,2),(2,1),(3,5), and (5,3) (shown in red below), *but may be nonzero anywhere else, and will have ones in positions (1,1),(2,2),(3,3), and (5,5) (shown in blue below), but is likely not to have a one in the other diagonal positions ((4,4) in this example). Indeed,
P′P=⎛⎝⎜⎜⎜⎜⎜⎜1010.280.09101−0.0910.311−0.09110.2500.280.30.250.50.320.091100.321⎞⎠⎟⎟⎟⎟⎟⎟.
When you inspect the P matrix shown in the question, and recognize that multiples of 10−17 are really zeros, you will observe that this pattern of zeros in the red positions holds. This is the sense in which those bivariate polynomials are "orthogonal."