Que sont les polynômes orthogonaux multivariés calculés dans R?

12

Les polynômes orthogonaux dans un ensemble univarié de points sont des polynômes qui produisent des valeurs sur ces points d'une manière telle que son produit scalaire et sa corrélation par paires sont nuls. R peut produire des polynômes orthogonaux avec fonction poly .

La même fonction a une variante polym qui produit des polynômes orthogonaux sur un ensemble de points multivariés. Quoi qu'il en soit, les polynômes résultants ne sont pas orthogonaux dans le sens d'avoir une corrélation nulle par paire. En fait, puisque les polynômes de premier ordre sont censés être les seules variables d'origine, les polynômes de premier ordre ne seront orthogonaux que si les variables d'origine ne sont pas corrélées.

Ensuite, mes questions sont:

  • Quels sont les polynômes orthogonaux multivariés calculés par polym dans R? Sont-ils simplement le produit des polynômes orthogonaux univariés? Pour quoi sont-ils utilisés?
  • Peut-il exister de vrais polynômes orthogonaux multivariés? Existe-t-il un moyen simple de les produire? Dans R? Sont-ils réellement utilisés dans la régression?

Mise à jour

En réponse au commentaire de Superpronker, je donne un exemple de ce que je veux dire avec des polynômes non corrélés:

> 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

La fonction Poly renvoie les polynômes orthogonaux évalués en points x (ici 10 000 points pour chaque polynôme). La corrélation entre les valeurs sur différents polynômes est nulle (avec une erreur numérique).

Lors de l'utilisation de polynômes multivariés, les corrélations sont différentes de zéro:

> 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

Par conséquent, je ne comprends pas dans quel sens ces polynômes bivariés sont orthogonaux.

Update 2

Je veux clarifier la signification des "polynômes orthogonaux" utilisés dans la régression parce que ce contexte peut être en quelque sorte trompeur lors de l'application des idées des polynômes orthogonaux à intervalles connectés - comme dans le commentaire du dernier Superpronker.

Je cite la régression pratique de Julian J. Faraway et Anova en utilisant R pages 101 et 102:

Les polynômes orthogonaux contournent ce problème en définissant

z1=a1+b1x
z2=a2+b2x+c2x2
z3=a3+b3x+c3x2+d3x3
etc. où les coefficients a, b, c ... sont choisis de telle sorte queziT·zj=0quand ij . Les z sont appelés polynômes orthogonaux.

Par un léger abus de langage, l'auteur utilise ici zi fois pour le polynôme (en fonction) et pour le vecteur des valeurs que le polynôme prend aux points de l'ensemble x . Ou peut-être que ce n'est même pas du tout un abus de langage parce que depuis le début du livre, x est le prédicteur (par exemple l'ensemble des valeurs prises par le prédicteur).

Cette signification des polynômes orthogonaux n'est pas réellement différente des polynômes orthogonaux sur un intervalle. Nous pouvons définir des polynômes orthogonaux de la manière habituelle (en utilisant des intégrales) sur tout ensemble mesurable avec n'importe quelle fonction de mesure. Ici, nous avons un ensemble fini ( x ) et nous utilisons un produit scalaire au lieu d'intégrale, mais ce sont toujours des polynômes orthogonaux si nous prenons notre fonction de mesure comme le delta de Dirac dans les points de notre ensemble fini.

Et par rapport à la corrélation: produit scalaire des vecteurs orthogonaux dans Rn (comme l'image d'un vecteur orthogonal sur un ensemble fini). Si le produit scalaire de deux vecteurs est nul, la covariance est nulle, et si la covariance est nulle, la corrélation est nulle. Dans le contexte des modèles linéaires, il est très utile de relier «orthogonal» et «non corrélé», comme dans «conception orthogonale d'expériences».

Pere
la source
Que voulez-vous dire lorsque vous dites que les polynômes en un point ne sont pas corrélés? Les variables stochastiques peuvent être non corrélées; les vecteurs peuvent avoir un produit scalaire égal à zéro.
Superpronker
Lorsqu'ils sont évalués à un ensemble fini de points, nous obtenons un ensemble de valeurs pour chaque polynôme. Nous pouvons calculer la corrélation entre ces ensembles de valeurs et pour les polynômes orthogonaux, nous obtenons une corrélation nulle. Étant donné que la corrélation est liée à la covariance et que la covariance est liée au produit scalaire, je suppose que la corrélation nulle et le produit scalaire nul sont équivalents.
Pere
Désolé si je me méprends, mais je ne suis toujours pas. La corrélation est entre deux vecteurs où vous avez, disons, N observations de chacun. Voulez-vous dire que le terme du premier et du deuxième ordre ne doit pas être corrélé? Ensuite, cela dépend des points où vous évaluez. Sur [-1; 1] ils ne le sont pas mais sur [0; 1] ils le sont. Je pense que votre intuition pour la relation entre orthogonalité et non corrélation n'est pas précise.
Superpronker
J'ai mis à jour la question avec cela, bien que dans le contexte de la régression, l'orthogonalité et la non-corrélation soient presque synonymes. J'ai lié une source. Et oui, cela dépend des points que nous évaluons. Le premier argument d'ordre poly est le vecteur de points que nous évaluons et la première étape de mes exemples est la génération d'un vecteur de points à évaluer. En régression, nous nous intéressons aux vecteurs orthogonaux dans les valeurs de notre prédicteur.
Pere
Je pense que l'abus de notation est plus problématique qu'il n'y paraît; l'orthogonalité de deux polynômes n'est pas définie comme le produit scalaire étant nul, peu importe où vous évaluez les polynômes. C'est plutôt que deux termes polynomiaux (d'ordres différents) devraient avoir un produit scalaire nul dans le "sens de la fonction"; et les produits scalaires pour les fonctions sont généralement des intégrales dans une certaine mesure (c'est-à-dire la fonction de pondération). Voir en.m.wikipedia.org/wiki/Orthogonal_polynomials . Si j'ai raison, cela explique la confusion. Mais sur wiki il y a un commentaire sur la relation aux moments.
Superpronker

Réponses:

5

Explorons ce qui se passe. Je suis sûr que vous connaissez déjà la plupart des éléments suivants, mais pour établir la notation et les définitions et pour clarifier les idées, je couvrirai les bases de la régression polynomiale avant de répondre à la question. Si vous le souhaitez, passez à la rubrique "Qu'est R- ce que" à environ deux tiers du chemin dans ce message, puis revenez en arrière pour toutes les définitions dont vous pourriez avoir besoin.

Le réglage

Nous considérons une matrice de modèle n×kX de variables explicatives potentielles dans une sorte de régression. Cela signifie que nous pensons que les colonnes de X sont n vecteurs X1,X2,,Xk et que nous en formerons des combinaisons linéaires, β1X1+β2X2++βkXk, pour prédire ou estimer une réponse.

Parfois, une régression peut être améliorée en introduisant des colonnes supplémentaires créées en multipliant les différentes colonnes de X unes par les autres, coefficient par coefficient. Ces produits sont appelés "monômes" et peuvent s'écrire comme

X1d1X2d2Xkdk

où chaque "puissance" di est égale ou supérieure à zéro, représentant le nombre de fois où chaque X1 apparaît dans le produit. Notez que X0 est un vecteur n de coefficients constants ( 1 ) et X1=X lui-même. Ainsi, en tant que vecteurs (monômes) génèrent un espace vectoriel qui inclut l'espace de colonne initiale de X. La possibilité qu'il s'agisse d'un espace vectoriel plus grand donne à cette procédure plus de latitude pour modéliser la réponse avec des combinaisons linéaires.

Nous avons l'intention de remplacer la matrice modèle d'origine X par une collection de combinaisons linéaires de monômes. Lorsque le degré d'au moins un de ces monômes dépasse 1, on parle de régression polynomiale.

Grades des polynômes

Le degré d'un monôme est la somme de ses puissances, d1+d2++dk. Le degré d'une combinaison linéaire de monômes (un "polynôme") est le plus grand degré parmi les termes monômes avec des coefficients non nuls. Le degré a une signification intrinsèque, car lorsque vous modifiez la base de l'espace vectoriel d'origine, chaque vecteur Xi est nouvellement représenté par une combinaison linéaire de tous les vecteurs; monômes X1d1X2d2Xkdkdeviennent ainsi des polynômes du même degré; et par conséquent le degré de tout polynôme est inchangé.

Le degré fournit une "gradation" naturelle à cette algèbre polynomiale: l'espace vectoriel généré par toutes les combinaisons linéaires de monômes en X de degré jusqu'à et y compris d+1, appelé les "polynômes de [ou jusqu'à] degré d+1 en X, "étend l'espace vectoriel des polynômes jusqu'au degré d en X.

Utilisations de la régression polynomiale

Souvent, la régression polynomiale est exploratoire dans le sens où nous ne savons pas au départ quels monômes inclure. Le processus de création de nouvelles matrices de modèles à partir de monômes et de réajustement de la régression peut devoir être répété plusieurs fois, peut-être un nombre astronomique de fois dans certains paramètres d'apprentissage automatique.

Les principaux problèmes de cette approche sont

  1. Les monétaires introduisent souvent des quantités problématiques de «multicolinéarité» dans la nouvelle matrice de modèle, principalement parce que les puissances d' une seule variable ont tendance à être fortement colinéaires. (La colinéarité entre les puissances de deux variables différentes est imprévisible, car elle dépend de la façon dont ces variables sont liées, et est donc moins prévisible.)

  2. La modification d'une seule colonne de la matrice du modèle, ou l'introduction d'une nouvelle ou la suppression d'une, peut nécessiter un "redémarrage à froid" de la procédure de régression, ce qui peut prendre un certain temps pour le calcul.

Les classements des algèbres polynomiales permettent de surmonter ces deux problèmes.

Polynômes orthogonaux dans une variable

Étant donné un vecteur colonne unique X, un ensemble de "polynômes orthogonaux" pour X est une séquence de vecteurs colonnes p0(X),p1(X),p2(X),XX

  1. d=0,1,2,,p0(X),p1(X),,pd(X)X0,X1,,Xd.X0nX1X lui-même.)

  2. pi(X)ij,

    pi(X)pj(X)=0.

P=(p0(X)p1(X)pd(X))
PP=Id+1.
PPId+1 est lui-même, cela représente un énorme gain de calcul.

L'orthodormalité détermine très près la pi(X).

  • p0(X),n1=(1,1,,1)±1/n1.

  • p1(X),1.X1,X^=X¯1.ϵ=XX^p1(X)=±(1/||ϵ||)ϵ.

...

  • pd+1(X)Xd+1p0(X),p1(X),,pd(X)X.

X0,X1,,Xd,.

Cette construction produit une séquence de colonnes supplémentaires à envisager d'inclure dans la matrice du modèle. La régression polynomiale dans une variable procède donc généralement en ajoutant des éléments de cette séquence un par un, dans l'ordre, jusqu'à ce qu'aucune autre amélioration de la régression ne soit obtenue. Parce que chaque nouvelle colonne est orthogonale aux précédentes, l'inclure ne modifie aucune des estimations de coefficient précédentes. Cela permet une procédure efficace et facilement interprétable.

Polynômes à plusieurs variables

La régression exploratoire (ainsi que l'ajustement du modèle) procède généralement en considérant d'abord les variables (originales) à inclure dans un modèle; évaluer ensuite si ces variables pourraient être augmentées en incluant diverses transformations de celles-ci, telles que les monômes; puis introduire des «interactions» formées à partir des produits de ces variables et de leurs ré-expressions.

X séparément. Après avoir sélectionné un degré approprié pour chaque colonne, vous introduisez ensuite des interactions.

À ce stade, certaines parties du programme univarié tombent en panne. Quelle séquence d'interactions appliqueriez-vous, une par une, jusqu'à ce qu'un modèle approprié soit identifié? De plus, maintenant que nous sommes vraiment entrés dans le domaine de l'analyse multivariable, le nombre d'options disponibles et leur complexité croissante suggèrent qu'il peut y avoir des rendements décroissants dans la construction d'une séquence de polynômes orthogonaux multivariés. Si, cependant, vous aviez une telle séquence en tête, vous pourriez la calculer en utilisant une décomposition QR.


Qu'est R- ce que

Les logiciels de régression polynomiale ont donc tendance à se concentrer sur le calcul de séquences polynomiales orthogonales univariées . Il est caractéristique Rd'étendre ce support aussi automatiquement que possible à des groupes de polynômes univariés. C'est ce qui polyfait. (Son compagnon polymest essentiellement le même code, avec moins de cloches et de sifflets; les deux fonctions font les mêmes choses.)

polyX,d.dX1,,XkX,

  1. p1(Xj),p2(Xj),,pd(Xj)jd.p0(Xi)R

  2. d.

d.2d=2, R

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

R p2(X1)p1(X2), p1(X1)p2(X2)p1(X2)p2(X2)formula

p1(X1)p1(X2).p1(X1)p1(X2)

Un exemple

X=(135624).

X1=(1,5,2)X10=(1,1,1)p0(X1)=(1,1,1)/3(0.58,0.58,0.58).X11=X1p0(X1),X1p0(X1)p1(X1)X1p1(X1)=(0.57,0.79,0.23).X12=(1,25,4)p0(X1)p1(X1)X1n=3X1,(t1)(t5)(t4),3,3 ou plus grandes sont des combinaisons linéaires de puissances inférieures et ces puissances inférieures sont linéairement indépendantes.)

X1

P1=(0.580.570.590.580.790.200.580.230.78)

(à deux chiffres significatifs).

X2

P2=(0.580.620.530.580.770.270.580.150.80).

(0.35,0.61,0.035).polypolym

P=(0.570.590.620.350.530.790.200.770.610.270.230.780.150.0350.80).

X1X2PP,(1,2),(2,1),(3,5),(5,3)(1,1),(2,2),(3,3),(5,5)(4,4)

PP=(1010.280.091010.0910.3110.09110.2500.280.30.250.50.320.091100.321).

P1017

whuber
la source
1
Rp1(X1)p2(X2)p1(X1)p1(X2)
1
@Cool Good catch - corrigé maintenant.
whuber
1
Merci pour cette excellente réponse. Le fait que la réponse arrive longtemps après que j'aie perdu espoir qu'on y réponde en fait une très agréable surprise.
Pere
X1=XX1=X
Complètement raison. Je vous suis reconnaissant de lire le texte de si près que vous trouvez ces erreurs!
whuber