Rで計算される多変量直交多項式とは何ですか?


12

点の単変量セットの直交多項式は、そのドット積とペアワイズ相関がゼロになるように、その点に値を生成する多項式です。Rは関数polyで直交多項式を生成できますます。

同じ関数には、多変量点セットで直交多項式を生成する変種polymがあります。とにかく、結果として得られる多項式は、ペアワイズゼロ相関を持つという意味で直交していません。実際、1次多項式は元の変数にすぎないため、元の変数が無相関でない限り、1次多項式は直交しません。

次に、私の質問は次のとおりです。

  • Rのpolymによって計算される多変量直交多項式とは何ですか?それらは単変量直交多項式の単なる積ですか?彼らは何のために使われますか?
  • 真の多変量直交多項式は存在できますか?それらを簡単に作成する方法はありますか?Rで?実際に回帰で使用されていますか?

更新

スーパープロンカーのコメントに応えて、無相関多項式で私が意味することの一例を挙げます。

> x<-rnorm(10000)
> cor(cbind(poly(x,degree=3)))
              1             2             3
1  1.000000e+00 -6.809725e-17  2.253577e-18
2 -6.809725e-17  1.000000e+00 -2.765115e-17
3  2.253577e-18 -2.765115e-17  1.000000e+00

Poly関数は、ポイントx(各多項式で10,000ポイント)で評価された直交多項式を返します。異なる多項式の値間の相関はゼロです(数値エラーがあります)。

多変量多項式を使用する場合、相関はゼロとは異なります。

> x<-rnorm(1000)
> y<-rnorm(1000)
> cor(cbind(polym(x,y,degree=2)))
              1.0           2.0           0.1         1.1           0.2
1.0  1.000000e+00  2.351107e-17  2.803716e-02 -0.02838553  3.802363e-02
2.0  2.351107e-17  1.000000e+00 -1.899282e-02  0.10336693 -8.205039e-04
0.1  2.803716e-02 -1.899282e-02  1.000000e+00  0.05426440  5.974827e-17
1.1 -2.838553e-02  1.033669e-01  5.426440e-02  1.00000000  8.415630e-02
0.2  3.802363e-02 -8.205039e-04  5.974827e-17  0.08415630  1.000000e+00

したがって、私はこれらの二変量多項式がどのような意味で直交するのか理解できません。

更新2

最後のスーパープロンカーのコメントのように、回帰で使用される「直交多項式」の意味を明確にしたいのは、接続された間隔で直交多項式からのアイデアを適用すると、このコンテキストが何らかの形で誤解を招く可能性があるためです。

Rページ101および102 を使用したジュリアンJ.ファラウェイの実用回帰とAnovaを引用します。

直交多項式は、

z1=a1+b1x
z2=a2+b2x+c2x2
z3=a3+b3x+c3x2+d3x3
など。係数a、b、c ...は、z T iz j = 0になるように選択されますziT·zj=0ij場合。zは直交多項式と呼ばれます。

言語のわずかな乱用により、ここで著者は、多項式(関数として)と、多項式が集合xの点で取る値のベクトルの両方にzi使用します。あるいは、本xの冒頭が予測子(予測子によって取得された値のセットなど)であるため、言語の乱用でさえないかもしれません。xx

直交多項式のこの意味は、実際には区間の直交多項式と違いはありません。通常の方法で(積分を使用して)任意の測定関数で測定可能なセットに対して直交多項式を定義できます。ここで、有限集合(x)があり、積分の代わりにドット積を使用していますが、有限集合の点でディラックデルタとして測定関数を使用する場合、それは依然として直交多項式です。

相関関係:Rn直交ベクトルのドット積(有限セット上の直交ベクトルの画像として)。2つのベクトルの内積がゼロの場合、共分散はゼロであり、共分散がゼロの場合、相関はゼロです。線形モデルのコンテキストでは、「実験の直交計画」のように、「直交」と「非相関」を関連付けるのに非常に便利です。


ある点の多項式が無相関であると言うとき、どういう意味ですか?確率変数は相関関係がありません。ベクトルは、ゼロに等しい内積を持つことができます。
スーパープロンカー16

点の有限セットで評価されると、各多項式の値のセットを取得します。これらの値のセット間の相関を計算でき、直交多項式の場合はゼロの相関が得られます。相関関係は共分散に関係し、共分散関係は内積に関係するため、ゼロ相関とゼロ内積は同等であると仮定します。
ペレ

誤解した場合は申し訳ありませんが、私はまだ従いません。相関は、たとえば各N個の観測値を持つ2つのベクトル間のものです。一次と二次の項は無相関でなければならないという意味ですか?次に、評価するポイントに依存します。[-1; 1]にはありませんが、[0; 1]にはあります。直交性と無相関性の関係についての直感は正確ではないと思います。
スーパープロンカー16

回帰のコンテキストでは、直交性と無相関性はほぼ同義語ですが、質問をこれで更新しました。ソースをリンクしました。そして、はい、私たちが評価しているポイントに依存します。次数polyの最初の引数は評価する点のベクトルであり、私の例の最初のステップは評価する点のベクトルの生成です。回帰では、予測子の値の直交ベクトルに関心があります。
ペレ

表記法の乱用は、見かけよりも問題が多いと思います。2つの多項式の直交性は、どこで多項式を評価しても、内積がゼロとして定義されません。むしろ、2つの多項式の項(次数が異なる)は、「関数の意味」で内積がゼロでなければなりません。また、関数の内積は通常、何らかの尺度の積分です(つまり、重み関数)。en.m.wikipedia.org/wiki/Orthogonal_polynomialsを参照してください。私が正しい場合、これは混乱を説明しています。しかし、ウィキには、瞬間との関係に関するコメントがあります。
スーパープロンカー16

回答:


5

何が起こっているのかを調べましょう。次の資料のほとんどを既に知っていると思いますが、表記法と定義を確立し、アイデアを明確にするために、質問に答える前に多項式回帰の基本をカバーします。R必要に応じて、この投稿の約3分の2にある「What does」という見出しにジャンプし、必要に応じて定義をスキップしてください。

設定

ある種の回帰における潜在的な説明変数のn×kモデル行列Xを検討しています。これは、私たちの列のだ思考Xであるとしてn -vectors X1,X2,,Xkと私たちは、それらの線形結合を形成することになるβ1X1+β2X2++βkXk,応答を予測または推定します。

Xさまざまな列を互いに係数で乗算することにより作成される追加の列を導入することにより、回帰を改善できる場合があります。そのような製品は「モノミアル」と呼ばれ、次のように書くことができます。

X1d1X2d2Xkdk

ここで、各「パワー​​」diはゼロ以上で、各X1が製品に現れる回数を表します。X0は定数係数(1)のnベクトルであり、X 1 = Xそのものであることに注意してください。したがって、単項式(ベクトルとして)は、Xの元の列空間を含むベクトル空間を生成します1X1=XX. 大きなベクトル空間である可能性があるため、この手順では、線形結合で応答をモデル化するための範囲が広がります。

元のモデル行列Xを単項式のコレクション線形結合で置き換えるつもりです。これらの単項式の少なくとも1つの次数が1,を超える場合、これは多項式回帰ます。

多項式のグレーディング

単項式の次数は、その累乗の合計d1+d2++dk. 単項式の線形結合の次数(「多項式」)は、非ゼロ係数を持つ単項項の中で最大の次数です。 次数には固有の意味があります。元のベクトル空間の基底を変更すると、各ベクトルXiがすべてのベクトルの線形結合によって新たに表されるためです。単項式X1d1X2d2Xkdkこれにより、同じ次数の多項式になります。その結果、多項式の次数は変更されません。

次数は、この多項式代数に自然な「グレーディング」を提供しますXの単項式のすべての線形結合により生成されるベクトル空間は、d+1,次数(または次数d+1多項式と呼ばれます)X,「度までの多項式のベクトル空間拡張dX.

多項式回帰の使用

多くの場合、多項式回帰は、最初にどの単項式を含めるかわからないという意味で探索的です。単項式から新しいモデル行列を作成し、回帰を再フィッティングするプロセスを何度も繰り返す必要があるかもしれません。おそらく機械学習の設定によっては天文学的な回数になるかもしれません。

このアプローチの主な問題は

  1. 単項式は、主に単一変数のべき乗が高度に共線になる傾向があるため、新しいモデル行列に問題のある量の「多重共線性」を導入することがよくあります。(2つの異なる変数のべき乗の間の共線性は、それらの変数がどのように関連しているかに依存するため、予測不能であり、したがって予測が困難です。)

  2. モデルマトリックスの1つの列のみを変更したり、新しい列を導入したり、列を削除したりするには、回帰手順の「コールドリスタート」が必要になることがあり、計算に時間がかかる可能性があります。

多項式代数のグレーディングは、両方の問題を克服する方法を提供します。

1つの変数の直交多項式

与えられた単一の列ベクトルX,のために「直交多項式」の組X列ベクトルのシーケンスであるp0(X),p1(X),p2(X),における単項式の線形結合として形成されるXのみ-つまり、X累乗として- 次のプロパティを持つ:

  1. 各次数ためd=0,1,2,,ベクトルp0(X),p1(X),,pd(X)と同じベクトル空間を生成するX0,X1,,Xd.X0は1のnベクトルであり、X1は単なるXであることに注意してくださいX 自体。)

  2. pi(X)相互にある直交する意味で、そのためのij,

    pi(X)pj(X)=0.

通常、これらの単項式から形成される置換モデル行列

P=(p0(X)p1(X)pd(X))
は、列を単位長に正規化することにより正規直交するように選択されます:
PP=Id+1.
PP 逆数はほとんどの回帰式に現れ、単位行列の逆数Id+1 それ自体であり、これは巨大な計算ゲインを表します。

正規直交性はpi(X).ほぼ決定します。 これは構造によって見ることができます:

  • 第1の多項式、p0(X),の倍数でなければならないn -ベクトル1=(1,1,,1)の単位長さの。選択肢は2つだけです。±1/n1. 正の平方根を選択するのが慣例です。

  • 2番目の多項式p1(X),1.に直交しなければなりません これは、回帰することによって得ることができるX反対1,その溶液の平均値のベクトルであり、X = ˉ X 1 残差が場合はε = X - X同様にゼロではない、彼らは唯一の2つの解決策与えるP 1X = ±を1 / | | ε | |X^=X¯1.ϵ=XX^p1(X)=±(1/||ϵ||)ϵ.

...

  • 一般的に、pd+1(X)は、Xd+1p0(X),p1(X),,pd(X)に対して回帰し、残差を単位長さのベクトルに再スケーリングすることにより得られます。残差がすべてゼロではない場合、符号には2つの選択肢があります。それ以外の場合、プロセスは終了しますX.より高いパワーを調べることは無益です (これは素晴らしい定理ですが、その証明はここで私たちの注意をそらす必要はありません。)

これは、ベクトルX 0X 1X dの固有のシーケンスに適用されるグラムシュミットプロセスです 通常、QR分解を使用して計算されますがこれはほとんど同じですが、数値的に安定した方法で計算されます。X0,X1,,Xd,.

この構造により、モデルマトリックスに含めることを検討する一連の追加列が生成されます。したがって、通常、1つの変数の多項式回帰は、回帰のさらなる改善が得られなくなるまで、このシーケンスの要素を1つずつ順番に追加することによって進行します。新しい列は以前の列と直交しているため、以前の係数推定値は変更されません。これにより、効率的で容易に解釈可能な手順が作成されます。

複数変数の多項式

探索回帰(およびモデルフィッティング)は、通常、最初にモデルに含める(元の)変数を検討することから始まります。次に、単項式などの変数のさまざまな変換を含めることで、これらの変数を増強できるかどうかを評価します。そして、これらの変数とその再表現の積から形成される「相互作用」を導入します。

そのようなプログラムを実行するには、Xの列に単変量直交多項式を個別にX形成することから始めます 各列に適切な次数を選択した後、相互作用を導入します。

この時点で、単変量プログラムの一部が故障します。適切なモデルが特定されるまで、どのような相互作用のシーケンスを1つずつ適用しますか?さらに、多変量解析の領域に真に入った今、利用可能なオプションの数とその複雑さは、多変量直交多項式のシーケンスを構築する際の収益が減少する可能性があることを示唆しています ただし、このようなシーケンスを念頭に置いていれば、QR分解を使用して計算できます。


R

したがって、多項式回帰用のソフトウェアは、単変量直交多項式シーケンスの計算に焦点を合わせる傾向があります。そのRようなサポートを可能な限り自動的に単変量多項式のグループに拡張することが特徴です。これは何をpolyします。(そのコンパニオンpolymは基本的に同じコードであり、付加機能は少なく、2つの関数は同じことを行います。)

具体的にpolyは、指定された次数d 停止する単一のベクトルX,与えられると、単変量直交多項式のシーケンスを計算しますdが大きすぎる場合(および大きすぎる大きさを予測することが困難な場合)、残念ながらエラーがスローされます。)行列Xの形式のベクトルX 1X kのセットが与えられた場合戻りますd.dX1,,XkX,

  1. 直交多項式の配列p1(Xj),p2(Xj),,pd(Xj)毎にjのうち要求された最大次数d. (定数ベクトルp0(Xi)はすべての変数に共通であり、非常に単純であるため(通常、回帰の切片によって調整されRます)、それを含めることはありません。)

  2. 次数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=(135624).
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 X10=(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, X12=(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 (t1)(t5)(t4), 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.570.590.580.790.200.580.230.78)

(to two significant figures).

In the same fashion, an orthonormal polynomial matrix for X2 is

P2=(0.580.620.530.580.770.270.580.150.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.590.620.350.530.790.200.770.610.270.230.780.150.0350.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 PP, 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,

PP=(1010.280.091010.0910.3110.09110.2500.280.30.250.50.320.091100.321).

When you inspect the P matrix shown in the question, and recognize that multiples of 1017 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."


1
(+1) Great read as usual. I believe there is a small typo: You write that R calculates p1(X1)p2(X2) but shouldn't it be p1(X1)p1(X2)?
COOLSerdash

1
@Cool Good catch--fixed now.
whuber

1
Thanks for that great answer. The fact that the answer arrives a long after I lost hope in it being answered makes it a very enjoyable surprise.
Pere

And I think there is another small typo: I think "X1=X itself" in the 4th paragraph is intended to be "X1=X itself".
Pere

Completely right. I am grateful that you are reading the text so closely that you find these errors!
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.