Vamos explorar o que está acontecendo. Tenho certeza de que você já conhece a maior parte do material a seguir, mas para estabelecer notação e definições e tornar as idéias claras, abordarei o básico da regressão polinomial antes de responder à pergunta. Se desejar, R
vá para o cabeçalho "O que faz" cerca de dois terços do caminho nesta postagem e, em seguida, volte para todas as definições necessárias.
A configuração
Estamos considerando uma matriz modelo n×kX de potenciais variáveis explicativas em algum tipo de regressão. Isso significa que estamos pensando nas colunas de X como sendo n vetores X1,X2,…,Xk e estaremos formando combinações lineares delas, β1X1+β2X2+⋯+βkXk, para prever ou estimar uma resposta.
Às vezes, uma regressão pode ser aprimorada através da introdução de colunas adicionais criadas pela multiplicação de várias colunas de X , coeficiente por coeficiente. Esses produtos são chamados de "monômios" e podem ser escritos como
Xd11Xd22⋯Xdkk
onde cada "potência" di é zero ou maior, representando quantas vezes cada X1 aparece no produto. Observe que X0 é um vetor n de coeficientes constantes ( 1 ) e X1=X si. Assim, monomios (como vectores) gerar um espaço de vector que inclui o espaço de coluna inicial de X. A possibilidade de que seja um espaço vetorial maior dá a esse procedimento um escopo maior para modelar a resposta com combinações lineares.
Pretendemos substituir a matriz original do modelo X por uma coleção de combinações lineares de monômios. Quando o grau de pelo menos um desses monômios excede 1, isso é chamado de regressão polinomial.
Gradings of polynomials
O grau de um monômio é a soma de seus poderes, d1+d2+…+dk. O grau de uma combinação linear de monômios (um "polinômio") é o maior grau entre os termos monomiais com coeficientes diferentes de zero. O grau tem um significado intrínseca, porque quando altera a base do espaço vectorial original, cada vector Xi é recém representado por uma combinação linear de todos os vectores; monômios Xd11Xd22⋯Xdkktornam-se polinômios do mesmo grau; e consequentemente o grau de qualquer polinômio é inalterado.
O grau fornece uma "classificação" natural para essa álgebra polinomial: o espaço vetorial gerado por todas as combinações lineares de monômios em X de grau até e incluindo d+1, chamados de "polinômios de [ou até] grau d+1 em X, "estende-se do espaço vectorial de polinómios até grau d em X.
Usos da regressão polinomial
Freqüentemente, a regressão polinomial é exploratória no sentido de que não sabemos desde o início quais monômeros devem ser incluídos. O processo de criação de novas matrizes de modelo a partir de monômios e readequação da regressão pode precisar ser repetido várias vezes, talvez um número astronômico de vezes em algumas configurações de aprendizado de máquina.
Os principais problemas com essa abordagem são
Os monômios geralmente introduzem quantidades problemáticas de "multicolinearidade" na nova matriz do modelo, principalmente porque os poderes de uma única variável tendem a ser altamente colineares. (A colinearidade entre os poderes de duas variáveis diferentes é imprevisível, porque depende de como essas variáveis estão relacionadas e, portanto, é menos previsível.)
Alterar apenas uma coluna da matriz do modelo ou introduzir uma nova ou excluir uma pode exigir uma "reinicialização a frio" do procedimento de regressão, o que pode levar muito tempo para ser computado.
As classificações das álgebras polinomiais fornecem uma maneira de superar os dois problemas.
Polinômios ortogonais em uma variável
Dado um vetor de coluna única X, um conjunto de "polinômios ortogonais" para X é uma sequência de vetores de coluna p0(X),p1(X),p2(X),… formados como combinações lineares de monômios somente em X - ou seja, como potências de X as seguintes propriedades:
Para cada grau d=0,1,2,…, os vetores p0(X),p1(X),…,pd(X) geram o mesmo espaço vetorial que X0,X1,…,Xd. (Observe que X0 é o vetor n de um e X1 é apenas X próprio).
Os pi(X) são mutuamente ortogonais no sentido de que para i≠j, pi(X)′pj(X)=0.
Normalmente, a matriz do modelo de substituição P=(p0(X)p1(X)⋯pd(X))
formada a partir desses monômios é escolhida para ser ortonormal , normalizando suas colunas para o comprimento da unidade: P′P=Id+1.
Porque o inverso de P′P aparece na maioria das equações de regressão e o inverso da matriz de identidade Id+1 por si só, isso representa um enorme ganho computacional.
A ortonormalidade quase determina o pi(X). Você pode ver isso por construção:
O primeiro polinômio, p0(X), deve ser um múltiplo do n vetor 1=(1,1,…,1)′ de comprimento da unidade. Existem apenas duas opções,±1/n−−−√1. É habitual escolher a raiz quadrada positiva.
O segundo polinômio, p1(X), deve ser ortogonal a 1. Ele pode ser obtido pela regressão X contra 1, cuja solução é o vector dos valores médios X = ˉ X 1 . Se os resíduos ε = X - X não são identicamente zero, eles dão apenas as duas soluções possíveis p 1 ( X ) = ± ( 1 / | | ε | |X^=X¯1.ϵ=X−X^p1(X)=±(1/||ϵ||)ϵ.
...
- Geralmente, pd+1(X) é obtido por regressão de Xd+1 contra p0(X),p1(X),…,pd(X) e redimensionando os resíduos como um vetor de comprimento unitário. Existem duas opções de sinal quando os resíduos não são todos zero. Caso contrário, o processo termina: será infrutífera de olhar para quaisquer poderes mais altos de X. (Esse é um bom teorema, mas sua prova não precisa nos distrair aqui.)
Este é o processo de Gram-Schmidt aplicado à sequência intrínseca dos vetores X0,X1,…,Xd,…. Geralmente é calculado usando uma decomposição QR, que é quase a mesma coisa, mas calculada de maneira numericamente estável.
Essa construção gera uma sequência de colunas adicionais a serem consideradas, incluindo na matriz do modelo. A regressão polinomial em uma variável, portanto, geralmente prossegue adicionando elementos dessa sequência, um por um, em ordem, até que nenhuma melhoria adicional na regressão seja obtida. Como cada nova coluna é ortogonal às anteriores, inclusive ela não altera nenhuma das estimativas anteriores do coeficiente. Isso cria um procedimento eficiente e prontamente interpretável.
Polinômios em várias variáveis
A regressão exploratória (assim como o ajuste do modelo) geralmente prossegue considerando primeiro quais variáveis (originais) incluir em um modelo; avaliando se essas variáveis poderiam ser aumentadas, incluindo várias transformações delas, como monômios; e, em seguida, introduzindo "interações" formadas a partir de produtos dessas variáveis e suas re-expressões.
A execução de tal programa começaria com a formação de polinômios ortogonais univariados nas colunas de X separadamente. Depois de selecionar um grau adequado para cada coluna, você introduziria interações.
Nesse ponto, partes do programa univariado são interrompidas. Que sequência de interações você aplicaria, uma a uma, até que um modelo adequado seja identificado? Além disso, agora que realmente entramos no campo da análise multivariável, o número de opções disponíveis e sua crescente complexidade sugerem que pode haver retornos decrescentes na construção de uma sequência de polinômios ortogonais multivariados. Se, no entanto, você tivesse essa sequência em mente, poderia calculá-la usando uma decomposição QR.
O que R
faz
O software para regressão polinomial, portanto, tende a se concentrar na computação de sequências polinomiais ortogonais univariadas . É característico R
estender esse suporte o mais automaticamente possível a grupos de polinômios univariados. É isso que poly
faz. (Seu companheiro polym
é essencialmente o mesmo código, com menos sinos e assobios; as duas funções fazem as mesmas coisas.)
Especificamente, poly
calculará uma sequência de polinômios ortogonais univariados quando receber um único vetor X, parando em um grau especificado d. (Se d é muito grande - e pode ser difícil prever quão grande é -, infelizmente, isso gera um erro.) Quando um conjunto de vetores X1,…,Xk recebe um formato na matriz X, vai voltar
Sequências de polinômios ortonormais p1(Xj),p2(Xj),…,pd(Xj) para cada j com um grau máximo solicitado d. (Como o vetor constante p0(Xi) é comum a todas as variáveis e é muito simples - geralmente é acomodado pela interceptação na regressão - R
não se preocupa em incluí-lo.)
Todas as interações entre os polinômios ortogonais até e incluindo os de grau d.
O passo (2) envolve várias sutilezas. Geralmente, por uma "interação" entre variáveis, queremos dizer "todos os produtos possíveis", mas alguns desses produtos possíveis terão graus maiores que d. Por exemplo, com 2 variáveis d=2, R
calcula
p1(X1),p2(X1),p1(X2),p1(X1)p1(X2),p2(X2).
R
que não incluem as interacções maior grau p2(X1)p1(X2), p1(X1)p2(X2) (polinómios de grau 3) ou p1(X2)p2(X2) (um polinômio de grau 4). (Essa não é uma limitação séria, pois você pode facilmente calcular esses produtos ou especificá-los em um formula
objeto de regressão .)
Outra sutileza é que nenhum tipo de normalização é aplicado a nenhum dos produtos multivariados. No exemplo, o único produto desse tipo é p1(X1)p1(X2). No entanto, não há garantia de que sua média seja zero e quase certamente não terá norma unitária. Neste sentido, é um verdadeiro "interacção" entre p1(X1) e p1(X2) e, como tal, pode ser interpretado como as interacções são geralmente em um modelo de regressão.
Um exemplo
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.
X1=(1,5,2)′X01=(1,1,1)′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."