用R计算的多元正交多项式是什么?


12

单变量点集中的正交多项式是在点上产生值的多项式,其点积和成对相关性为零。R可以产生具有函数poly的正交多项式。

相同的函数具有变式多项式,该变式在多变量点集上生成正交多项式。无论如何,所得的多项式在成对零相关的意义上是不正交的。实际上,由于一阶多项式应该只是原始变量,因此除非原始变量不相关,否则一阶多项式就不会是正交的。

然后,我的问题是:

  • R中由polym计算的多元正交多项式是什么?它们只是单变量正交多项式的乘积吗?它们是用来干什么的?
  • 可以存在真正的多元正交多项式吗?有没有简单的生产方法?在R中?它们实际用于回归吗?

更新资料

在回应Superpronker的评论时,我举一个例子说明不相关多项式的含义:

> 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

多边形函数返回以点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

我想弄清楚回归中使用的“正交多项式”的含义,因为在关联区间应用正交多项式的思想时,这种上下文可能会产生某种误导-就像上次Superpronker的评论一样。

用R页101和102 引用朱利安·法拉威(Julian J.

正交多项式通过定义

z1=a1+b1x
z2=a2+b2x+c2x2
z3=a3+b3x+c3x2+d3x3
等等,其中选择系数a,b,c ...使得ziT·zj=0ij。z称为正交多项式。

通过稍微滥用语言,作者在这里将zi既用于多项式(作为函数),又用于多项式取集合x的点的值的向量。也许根本就不是在滥用语言,因为自从本书开始以来,x就是预测变量(例如,预测变量所取的一组值)。

正交多项式的含义实际上与区间上的正交多项式没有什么不同。我们可以在具有任何度量函数的任何可测量集合上以常规方式(使用积分)定义正交多项式。在这里,我们有一个有限集(x),并且我们使用点积而不是整数,但是如果在我们的有限集的点上将度量函数用作狄拉克增量,那仍然是正交多项式。

并且关于相关性:Rn中正交向量的点积(作为有限集合上正交向量的图像)。如果两个向量的点积为零,则协方差为零,如果协方差为零,则相关性为零。在线性模型的上下文中,将“正交”和“不相关”联系起来非常有用,例如“实验的正交设计”。


当您说一点处的多项式不相关时,您是什么意思?随机变量可以不相关;向量的点积可以等于零。
Superpronker

当在一组有限的点上求值时,我们为每个多项式得到一组值。我们可以计算这些值集之间的相关性,对于正交多项式,我们得到零相关性。由于相关性与协方差相关,协方差与点积相关,因此我假设零相关性和零点积是等效的。
2016年

抱歉,如果我误会了,但是我仍然不明白。相关性是在两个向量之间,例如,每个向量有N个观测值。您是说一阶和二阶项不相关吗?然后,这取决于您评估的点。在[-1; 1]上不是,但是在[0; 1]上是。我认为您对正交性和不相关性之间关系的直觉并不精确。
Superpronker

我用这个来更新这个问题,尽管在回归的情况下正交和不相关几乎是同义词。我链接了一个来源。是的,这取决于我们正在评估的观点。阶poly的第一个参数是我们要评估的点的向量,而我的示例的第一步是生成要评估的点的向量。在回归中,我们对预测变量值中的正交向量感兴趣。
佩雷

我认为滥用符号比看起来要麻烦得多。无论在何处评估多项式,两个多项式的正交性都不会定义为点积为零。而是两个(不同阶数)多项式项在“函数意义上”应具有零点积;函数的点积通常是某种量度的积分(即权重函数)。参见en.m.wikipedia.org/wiki/Orthogonal_polynomials。如果我是正确的话,这可以解释混乱。但是在Wiki上,有一段关于瞬间的评论。
Superpronker

Answers:


5

让我们探索正在发生的事情。我确定您已经了解以下大多数材料,但是为了建立符号和定义并使思路清晰,在回答问题之前,我将介绍多项式回归的基础。如果您愿意,可以跳到R这篇文章大约三分之二的标题“做什么” 的标题,然后跳回您可能需要的任何定义。

那个设定

n×kXXnX1,X2,,Xkβ1X1+β2X2++βkXk,

X

X1d1X2d2Xkdk

diX1X0n1X1=XX.

X1,

多项式的等级

d1+d2++dk.XiX1d1X2d2Xkdk从而成为同等次数的多项式;因此,任何多项式的次数都是不变的。

Xd+1,d+1X,dX.

多项式回归的用途

从一开始我们不知道要包含哪些单项式的意义上讲,多项式回归通常是探索性的。从单项式多项式创建新模型矩阵并重新拟合回归的过程可能需要重复很多次,在某些机器学习设置中可能是天文数字。

这种方法的主要问题是

  1. 单项式通常在新模型矩阵中引入“多重共线性”的问题量,主要是因为单个变量的幂趋于高度共线性。(两个不同变量的幂之间的线性关系是不可预测的,因为它取决于这些变量之间的关系,因此难以预测。)

  2. 仅更改模型矩阵的单个列,或引入一个新列,或删除一个列,可能需要回归过程的“冷重启”,这可能会花费很长时间进行计算。

多项式代数的等级提供了一种克服两个问题的方法。

一个变量的正交多项式

X,Xp0(X),p1(X),p2(X),XX

  1. d=0,1,2,,p0(X),p1(X),,pd(X)X0,X1,,Xd.X0nX1X 本身。)

  2. pi(X)ij,

    pi(X)pj(X)=0.

P=(p0(X)p1(X)pd(X))
PP=Id+1.
PPId+1 本身,这代表了巨大的计算收益。

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,.

这种构造产生了一系列要考虑包括在模型矩阵中的附加列的序列。因此,通常在一个变量中进行多项式回归,方法是依次依次添加此序列的元素,直到无法获得进一步的回归。因为每个新列都与先前的列正交,所以包括它不会更改任何先前的系数估计。这使得程序高效且易于解释。

多项式中的多项式

探索性回归(以及模型拟合)通常是通过首先考虑要在模型中包含哪些(原始)变量来进行的;然后评估这些变量是否可以通过包含它们的各种转换(例如单项式转换)来增加;然后介绍由这些变量及其再表达的乘积形成的“相互作用”。

X

此时,单变量程序的某些部分将崩溃。在确定合适的模型之前,您将应用什么顺序的交互操作?而且,既然我们已经真正进入了多元分析的领域,可用选项的数量及其不断增加的复杂性表明,在构建多元正交多项式序列时,回报可能会减少 但是,如果您想到了这样的序列,则可以使用QR分解对其进行计算。


是什么R

因此,用于多项式回归的软件倾向于将重点放在计算单变量正交多项式序列上。它是特性为R向单变量多项式的组尽可能自动延伸这样的支持。这是poly做什么的。(它的同伴polym基本上是相同的代码,但花哨的时间更少;这两个函数执行相同的操作。)

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)

一个例子

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 或更大的是较低功率的线性组合,而这些较低功率是线性独立的。)

X1

P1=(0.580.570.590.580.790.200.580.230.78)

(两个有效数字)。

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


1
Rp1(X1)p2(X2)p1(X1)p1(X2)

1
@Cool好抓住-现在已修复。
ub

1
感谢您的出色回答。答案在我对答案失去希望之前很久就到达了,这使它非常令人惊喜。
佩雷

X1=XX1=X

完全正确。非常感谢您阅读本文如此紧密,以至于您发现了这些错误!
ub
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.