用于回归的多项式对比


17

我无法理解回归拟合中多项式对比的用法。特别是,我指的是,用于R表示此页面上描述的间隔变量(具有相等间距的正交变量)使用的编码。

在该页面的示例中,如果我理解正确的话,R适合间隔变量的模型,返回一些权重,以加权其线性,二次或三次趋势。因此,拟合模型应为:

write=52.7870+14.2587X0.9680X20.1554X3,

其中应取的值,,,或根据不同的电平的间隔可变的。X1234

它是否正确?而且,如果是这样,多项式对比的目的是什么?


7
不,这些系数用于正交多项式项:您已为原始多项式项编写了模型。将,和替换为,和值(来自查找表)。XX2X3LQC
Scortchi-恢复莫妮卡

1
亲爱的@Scortchi,谢谢您的答复。我想了解您的意思,但是后来我不诚实地了解这些正交多项式的工作原理。:P
Pippo

1
从符号上来说,您拥有的并不是完全合适的模型。您可能需要写一个巨大的“帽子”(或E [write]),这意味着写的预期值或写的预期值。或者您需要在末尾加一个“ + e”来表示残差。
gung-恢复莫妮卡

@Scortchi什么是“查找表”,或者如何找到它?
Antoni Parellada

2
@AntoniParellada:这是OP链接到的页面中的表格:ats.ucla.edu/stat/r/library/contrast_coding.htm#ORTHOGONAL。和与得到contr.poly的R.
Scortchi -恢复莫妮卡

Answers:


29

只是概括一下(以防万一OP超级链接将来会失败),我们正在研究hsb2这样的数据集:

   id     female race ses schtyp prog read write math science socst
1  70        0    4   1      1    1   57    52   41      47    57
2 121        1    4   2      1    3   68    59   53      63    61
...
199 118      1    4   2      1    1   55    62   58      58    61
200 137      1    4   3      1    2   63    65   65      53    61

可以在这里导入。

我们将变量read变成和有序/序数变量:

hsb2$readcat<-cut(hsb2$read, 4, ordered = TRUE)
(means = tapply(hsb2$write, hsb2$readcat, mean))
 (28,40]  (40,52]  (52,64]  (64,76] 
42.77273 49.97849 56.56364 61.83333 

现在我们都准备运行常规的方差分析-是的,它是R,基本上我们有一个连续的因变量write,和一个具有多个级别的解释变量readcat。在R中,我们可以使用lm(write ~ readcat, hsb2)


1.生成对比度矩阵:

有序变量有四个不同的级别readcat,因此我们将得到对比。n1=3

table(hsb2$readcat)

(28,40] (40,52] (52,64] (64,76] 
     22      93      55      30 

首先,让我们花钱,看看内置的R函数:

contr.poly(4)
             .L   .Q         .C
[1,] -0.6708204  0.5 -0.2236068
[2,] -0.2236068 -0.5  0.6708204
[3,]  0.2236068 -0.5 -0.6708204
[4,]  0.6708204  0.5  0.2236068

现在,让我们剖析幕后发生的事情:

scores = 1:4  # 1 2 3 4 These are the four levels of the explanatory variable.
y = scores - mean(scores) # scores - 2.5

y=[1.5,0.5,0.5,1.5]

seq_len(n) - 1=[0,1,2,3]

n = 4; X <- outer(y, seq_len(n) - 1, "^") # n = 4 in this case

[11.52.253.37510.50.250.12510.50.250.12511.52.253.375]

那里发生什么了?然后outer(a, b, "^")将的元素提高a到的元素b,因此第一列来自以下操作:,,和;,,和的第二列; 第三个来自,,和 ; 第四,,,- 0.5 0 0.5 0 1.5 0- 1.5 1- 0.5 1 0.5 1 1.5 1- 1.5 2 = 2.25 - 0.5 2 = 0.25 0.5 2 = 0.25 1.5 2 = 2.25 - 1.5 3 = - 3.375(1.5)0(0.5)00.501.50(1.5)1(0.5)10.511.51(1.5)2=2.25(0.5)2=0.250.52=0.251.52=2.25(1.5)3=3.375 3 = 3.3750.5 3 = 0.125 1.5(0.5)3=0.1250.53=0.125和。1.53=3.375

接下来,我们对该矩阵进行正交分解,并采用Q()的紧凑表示。本文中进一步解释 R中QR分解中使用的函数的一些内部工作。QRc_Q = qr(X)$qr

[202.500.52.23604.5840.50.447200.50.8940.92961.342]

...我们仅保存对角线(z = c_Q * (row(c_Q) == col(c_Q)))。对角线是什么:只是分解部分的“底部”条目。只是?好吧,不...事实证明,上三角矩阵的对角线包含矩阵的特征值!RQR

接下来,我们调用以下函数:raw = qr.qy(qr(X), z),其结果可以通过两个操作“手动”复制:1.将的紧凑形式(即)转化为,可以通过和进行转换,以及2.执行矩阵乘法,如。QQqr(X)$qrQQ = qr.Q(qr(X))QzQ %*% z

至关重要的是,将乘以的特征值不会改变组成列向量的正交性,但是鉴于特征值的绝对值从左上到右下以递减的顺序出现,的乘法将趋于减少高阶多项式列中的值:[RQRQz

Matrix of Eigenvalues of R
     [,1]      [,2] [,3]      [,4]
[1,]   -2  0.000000    0  0.000000
[2,]    0 -2.236068    0  0.000000
[3,]    0  0.000000    2  0.000000
[4,]    0  0.000000    0 -1.341641

比较因数分解操作前后的后一列向量(二次方和三次方)中的值,并将其与未受影响的前两列进行比较。QR

Before QR factorization operations (orthogonal col. vec.)
     [,1] [,2] [,3]   [,4]
[1,]    1 -1.5 2.25 -3.375
[2,]    1 -0.5 0.25 -0.125
[3,]    1  0.5 0.25  0.125
[4,]    1  1.5 2.25  3.375


After QR operations (equally orthogonal col. vec.)
     [,1] [,2] [,3]   [,4]
[1,]    1 -1.5    1 -0.295
[2,]    1 -0.5   -1  0.885
[3,]    1  0.5   -1 -0.885
[4,]    1  1.5    1  0.295

最后,我们称将(Z <- sweep(raw, 2L, apply(raw, 2L, function(x) sqrt(sum(x^2))), "/", check.margin = FALSE))矩阵raw变成正交向量:

Orthonormal vectors (orthonormal basis of R^4)
     [,1]       [,2] [,3]       [,4]
[1,]  0.5 -0.6708204  0.5 -0.2236068
[2,]  0.5 -0.2236068 -0.5  0.6708204
[3,]  0.5  0.2236068 -0.5 -0.6708204
[4,]  0.5  0.6708204  0.5  0.2236068

该函数通过将("/")列中的每个元素除以简单地“标准化”矩阵。因此,可以将其分解为两个步骤:,结果为,它们是中每一列的分母,其中一列中的每个元素都除以。iiicol.xi2(i) apply(raw, 2, function(x)sqrt(sum(x^2)))2 2.236 2 1.341(ii)(i)

此时,列向量形成的正交基础,直到我们摆脱掉第一列(即截距)为止,并重现了以下结果:R4contr.poly(4)

[0.67082040.50.22360680.22360680.50.67082040.22360680.50.67082040.67082040.50.2236068]

该矩阵的列是正交的,例如可以通过(sum(Z[,3]^2))^(1/4) = 1和来显示z[,3]%*%z[,4] = 0(顺便说一下,行也是如此)。并且,每一列都是将初始提高到阶,阶和阶幂(即线性,二次方和三次方)的结果1 2 3scores - mean123


2.哪些对比(列)在解释解释变量的各个级别之间的差异方面起着重要作用?

我们可以运行方差分析并查看摘要...

summary(lm(write ~ readcat, hsb2))

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  52.7870     0.6339  83.268   <2e-16 ***
readcat.L    14.2587     1.4841   9.607   <2e-16 ***
readcat.Q    -0.9680     1.2679  -0.764    0.446    
readcat.C    -0.1554     1.0062  -0.154    0.877 

...看到readcaton 的线性影响write,因此原始值(在文章开头的第三部分代码中)可以复制为:

coeff = coefficients(lm(write ~ readcat, hsb2))
C = contr.poly(4)
(recovered = c(coeff %*% c(1, C[1,]),
               coeff %*% c(1, C[2,]),
               coeff %*% c(1, C[3,]),
               coeff %*% c(1, C[4,])))
[1] 42.77273 49.97849 56.56364 61.83333

... 要么...

在此处输入图片说明

...或者更好...

在此处输入图片说明

作为正交对比它们的组分的总和增加了零为常数,它们中的任何两个的点积为零。如果我们可以可视化它们,它们将看起来像这样:a1ai=1tai=0a1,,at

在此处输入图片说明

正交对比背后的思想是,我们可以提取的推论(在这种情况下,是通过线性回归生成系数)将是数据独立方面的结果。如果我们仅使用情况就不会如此作为对比。X0,X1,.Xn

在图形上,这更容易理解。将大型黑色正方形块中按组的实际均值与预测值进行比较,看看为什么对二次多项式和三次多项式(曲线仅用黄土近似)的贡献最小的直线近似是最佳的:

在此处输入图片说明

如果仅出于效果考虑,对于其他近似值(二次方和三次方)的线性对比,ANOVA的系数也一样大,则随后的无意义图将更清楚地描绘每个“贡献”的多项式图:

在此处输入图片说明

代码在这里


+1哇。stats.stackexchange.com/q/63639/3277能否将这个答案(到目前为止还没有读完)视为我的一个古老的,被遗忘的问题的答案
ttnphns

(+1)@ttnphns:可以说它在那里更好。
Scortchi-恢复莫妮卡

提示:您可能想在这里评论我,并提供指向此处的链接;或在此处发布答案-我很可能会接受。
ttnphns

1
@ttnphns和@Scortchi谢谢!我花了很多时间试图理解这些概念,并没有期待太多的反应。因此,这是一个非常积极的惊喜。我认为在解释该qr.qy()功能方面有一些需要解决的问题,但是我一定会尝试一下,我是否有时间尽快就您的问题说些连贯的话。
安东尼帕雷拉达,2016年

1
@Elvis我确实尝试选择一个不错的摘要句子并将其放在帖子中的某个位置。我认为这是一个很好的观点,需要一个很好的数学解释,但在这一点上可能需要进一步阐述。
Antoni Parellada

5

我将使用您的示例来说明其工作原理。使用具有四组的多项式对比得出以下结果。

Ewrite1=μ0.67L+0.5Q0.22CEwrite2=μ0.22L0.5Q+0.67CEwrite3=μ+0.22L0.5Q0.67CEwrite4=μ+0.67L+0.5Q+0.22C

readi

Ewritei=μ+readiL+readi2Q+readi3C

L,Q,Cβ1,β2,β3L,Q,Creadi,readi2,readi3LQC

那么R估计参数,并为您 当和估计系数类似于正常线性回归中的估计值。因此,从输出中可以看到估计系数是否明显不同于零,因此可以预期某种线性,二次或三次趋势。μ,L,Q,C

μ^=52.79,L^=14.26,Q^=0.97,C^=0.16
μ大号QÇμ^=1个4一世=1个4Ëw[R一世ŤË一世μ^大号^^C^

在该示例中,只有显着非零。因此,您的结论可能是:我们看到写作中更好的评分线性地取决于阅读分数,但是没有明显的二次或三次效应。大号^

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.