Đa thức trực giao đa biến như được tính trong R là gì?


12

Đa thức trực giao trong tập hợp các điểm đơn biến là đa thức tạo ra các giá trị trên các điểm đó theo cách mà sản phẩm chấm của nó và tương quan cặp đôi bằng không. R có thể tạo ra đa thức trực giao với hàm poly .

Hàm tương tự có một polime biến thể tạo ra đa thức trực giao trên tập hợp các điểm đa biến. Dù sao các đa thức kết quả không phải là trực giao theo nghĩa là có tương quan cặp không. Trong thực tế, vì các đa thức bậc nhất được coi là các biến ban đầu, nên các đa thức bậc nhất sẽ không trực giao trừ khi các biến ban đầu không tương thích.

Sau đó, câu hỏi của tôi là:

  • Các đa thức trực giao đa biến được tính bằng polym trong R là gì? Có phải chúng chỉ là sản phẩm của đa thức trực giao đơn biến? Chúng nó được dùng cho cái gì?
  • Có thể tồn tại đa thức trực giao đa biến thực sự? Có một cách dễ dàng để sản xuất chúng? Trong R? Chúng thực sự được sử dụng trong hồi quy?

Cập nhật

Đáp lại bình luận của Superpronker, tôi đưa ra một ví dụ về ý nghĩa của tôi với đa thức không tương quan:

> 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

Hàm poly trả về các đa thức trực giao được đánh giá theo điểm x (ở đây 10.000 điểm cho mỗi đa thức). Tương quan giữa các giá trị trên các đa thức khác nhau bằng 0 (với một số lỗi số).

Khi sử dụng đa thức đa biến, tương quan khác 0:

> 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

Do đó, tôi không hiểu ý nghĩa của các đa thức bivariate là trực giao.

Cập nhật 2

Tôi muốn làm rõ ý nghĩa của "đa thức trực giao" được sử dụng trong hồi quy vì bối cảnh này có thể gây hiểu nhầm bằng cách nào đó khi áp dụng các ý tưởng từ đa thức trực giao trong các khoảng thời gian được kết nối - như trong nhận xét cuối cùng của Superpronker.

Tôi trích dẫn Hồi quy thực tế của Julian J. Faraway và Anova bằng R trang 101 và 102:

Đa thức trực giao có được vấn đề này bằng cách xác định

z1=a1+b1x
z2=a2+b2x+c2x2
z3=a3+b3x+c3x2+d3x3
v.v ... trong đó các hệ số a, b, c ... được chọn sao cho ziT·zj=0khi ij . Các z được gọi là đa thức trực giao.

Bằng cách lạm dụng ngôn ngữ một chút, ở đây tác giả sử dụng zi cho cả đa thức (dưới dạng hàm) và cho vectơ của các giá trị mà đa thức lấy trong các điểm của tập x . Hoặc có thể nó thậm chí không phải là lạm dụng ngôn ngữ vì từ đầu cuốn sách x đã là yếu tố dự đoán (ví dụ: tập hợp các giá trị được thực hiện bởi người dự đoán).

Ý nghĩa của đa thức trực giao không thực sự khác với đa thức trực giao trên một khoảng. Chúng ta có thể định nghĩa các đa thức trực giao theo cách thông thường (sử dụng tích phân) trên bất kỳ tập hợp đo lường nào với bất kỳ hàm đo nào. Ở đây chúng ta có một tập hữu hạn ( x ) và chúng ta đang sử dụng sản phẩm chấm thay vì tích phân, nhưng đó vẫn là đa thức trực giao nếu chúng ta lấy hàm số đo là đồng bằng Dirac trong các điểm của tập hữu hạn.

Và liên quan đến tương quan: sản phẩm chấm của vectơ trực giao trong Rn (như hình ảnh của vectơ trực giao trên tập hữu hạn). Nếu sản phẩm chấm của hai vectơ bằng 0, hiệp phương sai bằng 0 và nếu hiệp phương sai bằng 0 thì tương quan bằng không. Trong bối cảnh của các mô hình tuyến tính là rất hữu ích để liên kết "trực giao" và "không tương quan", như trong "thiết kế trực giao của các thí nghiệm".


Bạn có ý nghĩa gì khi bạn nói rằng các đa thức tại một điểm không tương quan? Biến ngẫu nhiên có thể không tương quan; vectơ có thể có sản phẩm chấm bằng không.
Superpronker

Khi được đánh giá tại một tập hợp điểm hữu hạn, chúng ta sẽ có được một tập hợp các giá trị cho mỗi đa thức. Chúng ta có thể tính toán tương quan giữa các bộ giá trị đó và cho đa thức trực giao, chúng ta có được mối tương quan bằng không. Vì tương quan có liên quan đến hiệp phương sai và hiệp phương sai liên quan đến sản phẩm chấm, nên tôi giả sử rằng tương quan bằng không và sản phẩm chấm không là tương đương.
Pere

Xin lỗi nếu tôi hiểu lầm, nhưng tôi vẫn không làm theo. Tương quan là giữa hai vectơ nơi bạn có, giả sử, N quan sát của mỗi vectơ. Bạn có nghĩa là thuật ngữ thứ tự đầu tiên và thứ hai nên không được sửa chữa? Sau đó, nó phụ thuộc vào các điểm mà bạn đánh giá. Trên [-1; 1] họ không nhưng trên [0; 1] họ là. Tôi nghĩ rằng trực giác của bạn cho mối quan hệ giữa tính trực giao và không tương quan là không chính xác.
Superpronker

Tôi đã cập nhật câu hỏi với điều này, mặc dù trong bối cảnh hồi quy trực giao và không tương quan gần như là từ đồng nghĩa. Tôi đã liên kết một nguồn. Và vâng, nó phụ thuộc vào các điểm chúng tôi đang đánh giá. Đối số đầu tiên của poly thứ tự là vectơ của các điểm chúng ta đang đánh giá và bước đầu tiên trong các ví dụ của tôi là tạo ra một vectơ các điểm để đánh giá. Trong hồi quy, chúng tôi quan tâm đến các vectơ trực giao trong các giá trị của công cụ dự đoán của chúng tôi.
Pere

Tôi nghĩ rằng việc lạm dụng ký hiệu có nhiều vấn đề hơn dường như; tính trực giao của hai đa thức không được định nghĩa là sản phẩm chấm bằng 0 cho dù bạn đánh giá đa thức ở đâu. Thay vào đó, đó là hai thuật ngữ đa thức (của các đơn đặt hàng khác nhau) nên có sản phẩm không có dấu chấm theo "nghĩa hàm"; và các sản phẩm chấm cho các chức năng thường là tích phân wrt một số biện pháp (tức là hàm Trọng lượng). Xem en.m.wikipedia.org/wiki/Orthogonal_polynomials . Nếu tôi đúng, điều này giải thích sự nhầm lẫn. Nhưng trên wiki có một bình luận về mối quan hệ với những khoảnh khắc.
Superpronker

Câu trả lời:


5

Hãy khám phá những gì đang xảy ra. Tôi chắc rằng bạn đã biết hầu hết các tài liệu sau đây, nhưng để thiết lập các ký hiệu và định nghĩa và để làm cho các ý tưởng rõ ràng, tôi sẽ trình bày các khái niệm cơ bản về hồi quy đa thức trước khi trả lời câu hỏi. Nếu bạn thích, hãy chuyển đến tiêu đề "Cái gì R" khoảng hai phần ba đường vào bài đăng này, sau đó bỏ qua cho bất kỳ định nghĩa nào bạn có thể cần.

Cài đặt

Chúng tôi đang xem xét một ma trận mô hình n×kX của các biến giải thích tiềm năng trong một số loại hồi quy. Điều này có nghĩa là chúng tôi nghĩ rằng các cột của Xn -vectorX1,X2,,Xk và chúng tôi sẽ tạo thành tổ hợp tuyến tính của họ,β1X1+β2X2++βkXk, để dự đoán hoặc ước tính một phản ứng.

Đôi khi một hồi quy có thể được cải thiện bằng cách giới thiệu các cột bổ sung được tạo bằng cách nhân các cột X khác nhau với nhau, hệ số theo hệ số. Những sản phẩm như vậy được gọi là "đơn thức" và có thể được viết như

X1d1X2d2Xkdk

nơi mỗi "sức mạnh" di bằng 0 hoặc lớn hơn, biểu thị số lần mỗiX1 xuất hiện trong sản phẩm. Chú ý rằngX0 là mộtn -vector các hệ số hằng số (1 ) vàX1=X chính nó. Như vậy, monomials (như vectơ) tạo ra một không gian véc tơ đó bao gồm không gian cột ban đầu củaX. Khả năng nó có thể là một không gian vectơ lớn hơn cung cấp cho quy trình này phạm vi lớn hơn để mô hình hóa phản ứng với các kết hợp tuyến tính.

Chúng tôi dự định thay thế ma trận mô hình ban đầu X bằng một tập hợp các đơn thức tuyến tính. Khi mức độ của ít nhất một trong các đơn thức này vượt quá 1, đây được gọi là hồi quy đa thức.

Phân loại đa thức

Các mức độ của một đơn thức là tổng của quyền hạn của mình, d1+d2++dk. Mức độ kết hợp tuyến tính của các đơn thức (một "đa thức") là mức độ lớn nhất trong số các thuật ngữ đơn trị với các hệ số khác không. Độ có một ý nghĩa nội tại, bởi vì khi bạn thay đổi cơ sở của không gian vectơ ban đầu, mỗi vectơ Xi mới được biểu diễn bằng một tổ hợp tuyến tính của tất cả các vectơ; đơn thức X1d1X2d2Xkdkdo đó trở thành đa thức có cùng mức độ; và do đó mức độ của bất kỳ đa thức là không thay đổi.

Độ cung cấp một "phân loại" tự nhiên cho đại số đa thức này: không gian vectơ được tạo bởi tất cả các tổ hợp tuyến tính của các đơn thức trong X độ đến và bao gồm d+1, được gọi là "đa thức của [hoặc lên đến] độ d+1 trong X, "mở rộng không gian vector của đa thức lên đến mức độ d trong X.

Công dụng của hồi quy đa thức

Thông thường, hồi quy đa thức là thăm dò theo nghĩa mà chúng ta không biết ngay từ đầu nên bao gồm các đơn thức. Quá trình tạo ma trận mô hình mới ra khỏi các đơn thức và điều chỉnh lại hồi quy có thể cần phải được lặp lại nhiều lần, có lẽ là số lần thiên văn trong một số cài đặt máy học.

Vấn đề chính của phương pháp này là

  1. Monomials thường đưa ra số lượng "đa cộng tuyến" có vấn đề trong ma trận mô hình mới, chủ yếu là do các quyền hạn của một biến duy nhất có xu hướng cộng tuyến cao. (Sự cộng tác giữa các quyền hạn của hai biến khác nhau là không thể dự đoán được, bởi vì nó phụ thuộc vào cách các biến đó có liên quan với nhau và do đó ít có thể dự đoán được.)

  2. Chỉ thay đổi một cột duy nhất của ma trận mô hình hoặc giới thiệu một cột mới hoặc xóa một cột có thể yêu cầu "khởi động lại lạnh" của quy trình hồi quy, có thể mất nhiều thời gian để tính toán.

Sự phân loại của đại số đa thức cung cấp một cách để khắc phục cả hai vấn đề.

Đa thức trực giao trong một biến

Cho một đơn vector cột X, một bộ "đa thức trực giao" cho X là một chuỗi các vectơ cột p0(X),p1(X),p2(X), được hình thành như kết hợp tuyến tính của monomials trongX một mình - đó là, như quyền hạn củaX - với các thuộc tính sau:

  1. Với mỗi độ d=0,1,2,, các vectơ p0(X),p1(X),,pd(X) tạo ra cùng một không gian vectơ như X0,X1,,Xd. (Lưu ý rằngX0n -vector của những người vàX1 chỉ làX chinh no.)

  2. Các pi(X) là đôi bên cùng có trực giao theo nghĩa là cho ij,

    pi(X)pj(X)=0.

Thông thường, việc thay đổi mô hình ma trận

P=(p0(X)p1(X)pd(X))
hình thành từ những monomials được chọn là trực giao bằng cách bình thường hóa cột của mình cho đơn vị chiều dài:
PP=Id+1.
Bởi vì nghịch đảo của PP xuất hiện trong hầu hết các phương trình hồi quy và nghịch đảo của ma trận sắc Id+1 là chính nó, điều này thể hiện một lợi ích tính toán rất lớn.

Orthonormality gần như xác định pi(X). Bạn có thể thấy điều này bằng cách xây dựng:

  • Đa thức đầu tiên, p0(X), phải là bội số của n -vector 1=(1,1,,1) của đơn vị chiều dài. Chỉ có hai sự lựa chọn, ±1/n1. Đó là thông lệ để chọn căn bậc hai tích cực.

  • Đa thức thứ hai, p1(X), phải trực giao với 1. Nó có thể được thu được bằng suy thoái X chống lại 1, mà giải pháp là vector của các giá trị trung bình X = ˉ X 1 . Nếu dư ε = X - XX^=X¯1.ϵ=XX^ là không giống nhau không, họ đưa ra chỉ có hai giải pháp khả thi p1(X)=±(1/||ϵ||)ϵ.

...

  • Nói chung, pd+1(X) có được bằng cách hồi quy Xd+1 so với p0(X),p1(X),,pd(X) và định cỡ lại phần dư thành một vectơ có độ dài đơn vị. Có hai sự lựa chọn về dấu hiệu khi phần dư không phải là tất cả bằng không. Nếu không, quá trình đầu: nó sẽ không kết quả để nhìn vào bất kỳ quyền hạn cao hơn củaX. (Đây là một định lý hay nhưng bằng chứng của nó không cần phải làm chúng ta mất tập trung ở đây.)

Đây là quá trình Gram-Schmidt được áp dụng cho chuỗi các vectơ nội tạiX0,X1,,Xd,. Thông thường, nó được tính toán bằng cách sử dụngphân tách QR,gần như tương tự nhưng được tính theo cách ổn định về số lượng.

Cấu trúc này mang lại một chuỗi các cột bổ sung để xem xét bao gồm trong ma trận mô hình. Do đó, hồi quy đa thức trong một biến thường được tiến hành bằng cách thêm từng phần tử của chuỗi này theo thứ tự, cho đến khi không có sự cải thiện nào nữa trong hồi quy. Bởi vì mỗi cột mới là trực giao với các cột trước đó, bao gồm nó không thay đổi bất kỳ ước tính hệ số nào trước đó. Điều này làm cho một thủ tục hiệu quả và dễ hiểu.

Đa thức trong nhiều biến

Hồi quy thăm dò (cũng như phù hợp với mô hình) thường được tiến hành bằng cách xem xét đầu tiên các biến (bản gốc) nào được đưa vào trong một mô hình; sau đó đánh giá xem các biến đó có thể được tăng thêm hay không bằng cách đưa vào các biến đổi khác nhau của chúng, chẳng hạn như các đơn thức; và sau đó giới thiệu "tương tác" được hình thành từ các sản phẩm của các biến này và biểu thức lại của chúng.

Sau đó, thực hiện một chương trình như vậy, sẽ bắt đầu bằng việc hình thành các đa thức trực giao đơn biến trong các cột của X một cách riêng biệt. Sau khi chọn một mức độ phù hợp cho mỗi cột, sau đó bạn sẽ giới thiệu các tương tác.

Tại thời điểm này, các phần của chương trình đơn biến bị hỏng. Chuỗi tương tác nào bạn sẽ áp dụng, từng cái một, cho đến khi một mô hình phù hợp được xác định? Hơn nữa, bây giờ chúng ta đã thực sự bước vào lĩnh vực phân tích đa biến, số lượng các tùy chọn có sẵn và độ phức tạp ngày càng tăng của chúng cho thấy có thể có lợi nhuận giảm dần khi xây dựng một chuỗi các đa thức trực giao đa biến. Tuy nhiên, nếu bạn có một trình tự như vậy trong tâm trí, bạn có thể tính toán nó bằng cách sử dụng phân tách QR.


Có gì Rkhông

Do đó, phần mềm cho hồi quy đa thức có xu hướng tập trung vào tính toán các chuỗi đa thức trực giao đơn biến . Đó là đặc điểm Rđể mở rộng hỗ trợ như vậy tự động nhất có thể cho các nhóm đa thức đơn biến. Đây gì polykhông. (Đồng hành của nó polymvề cơ bản là cùng một mã, với ít tiếng chuông và còi hơn; hai chức năng làm cùng một việc.)

Cụ thể, polysẽ tính một chuỗi các đa thức trực giao đơn biến khi cho một vectơ X, duy nhất , dừng ở một mức độ xác định d. (Nếu d là quá lớn - và nó có thể khó khăn để dự đoán như thế nào lớn là quá lớn -. Chẳng may ném một lỗi) Khi cung cấp một bộ các vectơ X1,,Xk dưới dạng một ma trận X, nó sẽ trở lại

  1. Chuỗi các đa thức trực giao p1(Xj),p2(Xj),,pd(Xj) cho mỗi j ra đến một mức độ tối đa được yêu cầu d. (Vì vectơ không đổi p0(Xi) là phổ biến cho tất cả các biến và rất đơn giản - nó thường được điều chỉnh bởi phần chặn trong hồi quy-- Rkhông bận tâm đến việc bao gồm nó.)

  2. Tất cả các tương tác giữa các đa thức trực giao lên đến và bao gồm cả các mức độ d.

Bước (2) liên quan đến một số tinh tế. Thông thường bởi một "tương tác" giữa các biến, chúng tôi có nghĩa là "tất cả các sản phẩm có thể", nhưng một số sản phẩm có thể sẽ có độ lớn hơn d. Chẳng hạn, với 2 biến và d=2, R tính toán

p1(X1),p2(X1),p1(X2),p1(X1)p1(X2),p2(X2).

Rkhông không bao gồm sự tương tác độ cao p2(X1)p1(X2), p1(X1)p2(X2) (đa thức của mức độ 3) hoặc p1(X2)p2(X2) (một đa thức bậc 4). (Đây không phải là một giới hạn nghiêm trọng vì bạn có thể dễ dàng tự tính toán các sản phẩm này hoặc chỉ định chúng trong một formulađối tượng hồi quy .)

Một sự tinh tế khác là không có loại bình thường hóa nào được áp dụng cho bất kỳ sản phẩm đa biến nào. Trong ví dụ, sản phẩm duy nhất như vậy là p1(X1)p1(X2). Tuy nhiên, không có gì đảm bảo rằng giá trị trung bình của nó sẽ bằng 0 và gần như chắc chắn sẽ không có định mức đơn vị. Theo nghĩa này, đó là một "tương tác" thực sự giữa p1(X1)p1(X2) và như vậy có thể được hiểu là các tương tác thường nằm trong mô hình hồi quy.

Một ví dụ

Hãy xem xét một ví dụ. Tôi đã tạo ngẫu nhiên một ma trận

X=(135624).
Để làm cho các phép tính dễ theo dõi hơn, mọi thứ được làm tròn thành hai con số quan trọng để hiển thị.

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).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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.