什么是对比度矩阵?


46

什么究竟是对比矩阵(一个术语,关于与分类预测分析),以及如何准确地进行对比矩阵指定?即什么是列,什么是行,对该矩阵的约束是什么,列j和行中的数字i是什么意思?我试图研究文档和网络,但似乎每个人都在使用它,但任何地方都没有定义。我可以对可用的预定义对比进行后向工程,但是我认为没有该定义就应该可用。

> contr.treatment(4)
  2 3 4
1 0 0 0
2 1 0 0
3 0 1 0
4 0 0 1
> contr.sum(4)
  [,1] [,2] [,3]
1    1    0    0
2    0    1    0
3    0    0    1
4   -1   -1   -1
> contr.helmert(4)
  [,1] [,2] [,3]
1   -1   -1   -1
2    1   -1   -1
3    0    2   -1
4    0    0    3
> contr.SAS(4)
  1 2 3
1 1 0 0
2 0 1 0
3 0 0 1
4 0 0 0

“对比度矩阵”用于表示建模中的分类IV(因素)。特别是,它用于将因子重新编码为一组“对比变量”(虚拟变量仅是示例)。每种类型的对比变量都有自己的对应对比矩阵。例如,请参阅我自己的相关问题,尚未回答。
ttnphns

5
@ttnphns对不起,但是您继续做所有文档和Web所做的事情:您解释了对比度矩阵的用途,而没有解决对比度矩阵是什么的问题这就是定义的目的。
好奇的

3
当然,它是相关的,但是从“需要什么”派生“它是什么”是侦探的工作,这不是必须的。那是逆向工程。事情应该记录在案。
好奇的2013年

2
ats.ucla.edu/stat/r/library/contrast_coding.htm是一个很好R的编码方法资源。
ub

1
@好奇,只是想让您知道:我授予ttnphns 100赏金,但我还将开始另一个赏金(或要求其他人做赏金)以便也授予Gus_est。我也写了我自己的答案,以防万一您更喜欢一个简短的答案:-)
变形虫说恢复莫妮卡

Answers:


31

@Gus_est在他们很好的答案中,对对比度系数矩阵L的本质进行了数学解释(在图中以C表示)。是检验单变量通用线性建模中的假设的基本公式(其中是参数,是表示零假设的可估计函数),并且该答案表明了在现代ANOVA程序中使用的一些必要公式。b kLb=kbk

我的回答风格迥异。它是针对数据分析师的,他认为自己是“工程师”而不是“数学家”,因此答案将是(肤浅的)“实用”或“指导性”说明,并将专注于仅回答主题(1)对比系数平均值和(2)如何通过线性回归程序帮助进行ANOVA 。

ANOVA作为带有虚拟变量的回归:引入对比

让我们想象一下具有3个级别(组)的因变量Y和分类因子A的 ANOVA 。让我们从线性回归的角度看一下方差分析,即-通过将因子变成一组虚拟(又称为指标又称为治疗,又称为“ 一火”)二元变量。这是我们的独立设置的X。(大概每个人都听说过可以用这种方法进行方差分析-使用虚拟预测变量进行线性回归。)

由于这三个组之一是冗余的,因此只有两个虚拟变量将进入线性模型。让我们指定Group3为冗余或引用。组成X的虚拟预测变量对比变量的示例,即表示因子类别的基本变量。X本身通常称为设计矩阵。现在,我们可以在多元线性回归程序中输入数据集,该程序将以数据为中心并找到回归系数(参数),其中“ +”表示伪逆。b=(XX)1Xy=X+y

等效传递将不执行中心定位,而是将模型的常数项添加为X1 s 的第一列,然后以与上述相同的方式估算系数。到现在为止还挺好。b=(XX)1Xy=X+y

让我们将矩阵C定义为自变量设计矩阵X的集合(汇总)。它简单地示出了我们的编码方案观察到那里, -所述对比度编码矩阵(=基矩阵):。C=aggrX

C
              Const  A1    A2
Gr1 (A=1)       1     1     0
Gr2 (A=2)       1     0     1
Gr3 (A=3,ref)   1     0     0

列是X的变量(列)-基本对比变量A1 A2,在这种情况下为虚拟,行是因子的所有组/级别。我们的用于指示符或伪对比编码方案的编码矩阵C也是如此。

现在,称为对比度系数矩阵或L矩阵。由于C是正方形,。因此,与我们的C对应的对比度矩阵-用于本示例的指标对比度-为:L = C + = C 1C+=LL=C+=C1

L
          Gr1   Gr2   Gr3
         (A=1) (A=2) (A=3)
Const      0     0     1            => Const = Mean_Gr3
A1         1     0    -1            => Param1 = Mean_Gr1-Mean_Gr3
A2         0     1    -1            => Param2 = Mean_Gr2-Mean_Gr3

L矩阵是显示对比度系数的矩阵。请注意,每行(行常量除外)的对比度系数之和为。每这样的行称为一个对比。行对应于对比变量,列对应于组,因子水平。0

对比系数的意义在于,它们有助于理解每种效果(按我们的X回归估计的每个参数b,按原样编码)代表差异(组比较)。紧随系数,我们立即看到估计的常数将等于参考组中的Y均值;参数b1(即虚拟变量A1)将等于该差:组1中的Y平均值减去组3中的Y平均值;参数b2是差异:第2组的平均值减去第3组的平均值。

注意:在上方(及下方)说“均值” 是指一组的估计(由模型预测)平均值,而不是一组中的观测平均值。

有说服力的说明:当我们通过二进制预测变量进行回归时,此类变量的参数表示变量= 1和变量= 0组之间的Y差。但是,在二进制变量是表示-level因子的k-1 伪变量集合的情况k下,参数的含义会变窄:它显示出变量= 1和(不仅是变量= 0,甚至是)reference_variable之间的Y差= 1个群组。

就像(乘以)为我们带来b的值一样,类似带来b的含义。 y a g g r X +X+y(aggrX)+

好的,我们已经给出了对比度系数矩阵L的定义。由于,对称地,这意味着如果您已获得或已基于分类因子构造了对比度矩阵L(s)-要在分析中测试L,那么您有线索了解如何正确编码对比预测变量X,以便通过普通回归软件测试L(即,仅处理“连续”变量的标准OLS)方式,根本不承认分类因素)。在我们当前的示例中,编码是- 指示器(虚拟)类型变量。 C = L + = L 1L=C+=C1C=L+=L1

方差分析作为回归:其他对比类型

让我们简要观察一下分类因子A的其他对比类型(=编码方案,=参数化样式)。

偏差或效果对比CL矩阵和参数含义:

C
              Const  A1    A2
Gr1 (A=1)       1     1     0
Gr2 (A=2)       1     0     1
Gr3 (A=3,ref)   1    -1    -1

L
          Gr1   Gr2   Gr3
         (A=1) (A=2) (A=3)
Const     1/3   1/3   1/3      => Const = 1/3Mean_Gr3+1/3Mean_Gr2+1/3Mean_Gr3 = Mean_GU
A1        2/3  -1/3  -1/3      => Param1 = 2/3Mean_Gr1-1/3(Mean_Gr2+Mean_Gr3) = Mean_Gr1-Mean_GU
A2       -1/3   2/3  -1/3      => Param2 = 2/3Mean_Gr2-1/3(Mean_Gr1+Mean_Gr3) = Mean_Gr2-Mean_GU

                                  Parameter for the reference group3 = -(Param1+Param2) = Mean_Gr3-Mean_GU

                                  Mean_GU is grand unweighted mean = 1/3(Mean_Gr1+Mean_Gr2+Mean_Gr3)

通过偏差编码,将因子的每组与未加权的均值进行比较,而常量是该均值。这就是您在回归中得到的结果,对比预测器X编码为偏差或效果“方式”。

简单的对比。这种对比/编码方案是指示符和偏差类型的混合,它在偏差类型中给出了常量的含义,在指示符类型中给出了其他参数的含义:

C
              Const  A1    A2
Gr1 (A=1)       1   2/3  -1/3
Gr2 (A=2)       1  -1/3   2/3
Gr3 (A=3,ref)   1  -1/3  -1/3

L
          Gr1   Gr2   Gr3
         (A=1) (A=2) (A=3)
Const     1/3   1/3   1/3        => Const = as in Deviation
A1         1     0    -1         => Param1 = as in Indicator
A2         0     1    -1         => Param2 = as in Indicator

赫尔默特与此形成鲜明对比。将每个组(参考除外)与后续组的未加权平均值进行比较,并且Constant是未加权的均值。CL矩阵:

C
              Const  A1    A2
Gr1 (A=1)       1   2/3    0
Gr2 (A=2)       1  -1/3   1/2
Gr3 (A=3,ref)   1  -1/3  -1/2

L
          Gr1   Gr2   Gr3
         (A=1) (A=2) (A=3)
Const     1/3   1/3   1/3        => Const = Mean_GU
A1         1   -1/2  -1/2        => Param1 = Mean_Gr1-1/2(Mean_Gr2+Mean_Gr3)
A2         0     1    -1         => Param2 = Mean_Gr2-Mean_Gr3

赫尔默特差异或反向对比。将每个组(参考除外)与先前组的未加权平均值进行比较,并且Constant是未加权的均值。

C
              Const  A1    A2
Gr1 (A=1)       1  -1/2  -1/3
Gr2 (A=2)       1   1/2  -1/3
Gr3 (A=3,ref)   1    0    2/3

L
          Gr1   Gr2   Gr3
         (A=1) (A=2) (A=3)
Const     1/3   1/3   1/3        => Const = Mean_GU
A1        -1     1     0         => Param1 = Mean_Gr2-Mean_Gr1
A2       -1/2  -1/2    1         => Param2 = Mean_Gr3-1/2(Mean_Gr2+Mean_Gr1)

反复对比。将每个组(参考除外)与下一个组进行比较,常量是未加权的均值。

C
              Const  A1    A2
Gr1 (A=1)       1   2/3   1/3
Gr2 (A=2)       1  -1/3   1/3
Gr3 (A=3,ref)   1  -1/3  -2/3

L
          Gr1   Gr2   Gr3
         (A=1) (A=2) (A=3)
Const     1/3   1/3   1/3        => Const = Mean_GU
A1         1    -1     0         => Param1 = Mean_Gr1-Mean_Gr2
A2         0     1    -1         => Param2 = Mean_Gr2-Mean_Gr3

问题问:how exactly is contrast matrix specified?看到目前为止概述的对比类型,有可能掌握如何。每种类型都有其逻辑,即如何“填充” L中的值。逻辑反映了每个参数的含义-计划比较的组的两个组合是什么。

多项式对比。这些有点特殊,是非线性的。第一个效果是线性的,第二个效果是二次的,其次是三次的。我在这里不讨论如何构造它们的CL矩阵,以及它们是否彼此相反的问题。请使用这种类型的对比度深刻@Antoni Parellada的解释咨询12

在平衡设计中,Helmert,逆Helmert和多项式对比始终是正交对比。上面考虑的其他类型不是正交对比。正交(下平衡性)是其中在对照矩阵对比度大号每行(除const)在总和为零中的每一对行是零的相应元素乘积的和。

这是不同对比度类型下的角度相似性度量(余弦和皮尔逊相关性),但我没有测试多项式。让我们获得具有k水平的单个因子A,然后将其重新编码为k-1特定类型的对比变量集。这些对比变量之间的相关性或余弦矩阵中的值是多少?

                     Balanced (equal size) groups     Unbalanced groups
Contrast type             cos        corr              cos        corr

INDICATOR                  0       -1/(k-1)             0         varied
DEVIATION                 .5          .5              varied      varied
SIMPLE                 -1/(k-1)    -1/(k-1)           varied      varied
HELMERT, REVHELMERT        0           0              varied      varied
REPEATED                varied   =  varied            varied      varied

   "=" means the two matrices are same while elements in matrix vary

我正在提供信息表,不加注释。对于更深入地了解一般线性建模具有一定的重要性。

用户定义的对比。这就是我们用来测试自定义比较假设的内容。通常,除了L的第一行外,每个行中的总和应为0,这意味着正在比较该行中的两个组或两个组的组成(即,通过该参数)。

模型参数到底在哪里

它们是L的行还是列?在上面的全文中,我说的是参数对应于L的行,因为这些行表示对比度变量,即预测变量。虽然列是一个因素的水平,但各组。这似乎与@Gus_est答案的理论块相矛盾,其中显然各列对应于参数:

H0:[011000011000011][β0β1β2β3β4]=[000]

实际上,没有矛盾,“问题”的答案是:对比度系数矩阵的行和列都对应于参数!请回想一下,对比(对比变量),即行,最初创建时仅代表因子水平:除省略的参考水平外,它们是水平。为了简单对比,请比较L矩阵的以下两个等效拼写:

L
          Gr1   Gr2   Gr3
          A=1   A=2   A=3(reference)
Const     1/3   1/3   1/3 
A1         1     0    -1  
A2         0     1    -1   

L
            b0    b1    b2    b3(redundant)
           Const  A=1   A=2   A=3(reference)
b0  Const   1    1/3   1/3   1/3 
b1  A1      0     1     0    -1  
b2  A2      0     0     1    -1   

第一个是我之前显示的,第二个是更“理论的”(对于一般线性模型代数)布局。简单地,添加了对应于常数项的列。参数系数b标记行和列。作为冗余的参数b3将被设置为零。您可以对第二个布局进行伪逆运算以获得编码矩阵C,在其中,在右下部分的内部您仍会找到对比度变量A1和A2的正确代码。所描述的任何对比类型都是如此(指示器类型除外-矩形布局的伪逆不会给出正确的结果;这可能就是为什么为方便起见发明了简单的对比类型:对比系数与指示器类型相同,但对于行常量)。

对比类型和方差分析表结果

ANOVA表显示的是组合(汇总)的效果-例如,因子A的主要效果,而对比对应于对比变量-A1,A2和(省略,参考)A3的基本效果。基本术语的参数估计取决于所选对比度的类型,但是无论类型如何,组合结果(均方根和显着性水平)都是相同的。可以将A的所有三个均值都相等的OmniNOVA ANOVA(单向)零假设放在许多等效的陈述中,并且每个陈述将对应于特定的对比类型: =重复类型; = Helmert类型;(μ1=μ2,μ2=μ3)(μ1=μ23,μ2=μ3)(μ1=μ123,μ2=μ123)=偏差类型; =指标或简单类型。(μ1=μ3,μ2=μ3)

通过一般线性模型范例实施的ANOVA程序可以显示ANOVA表(组合效果:主要,相互作用)和参数估计表(基本效果b)。某些程序可能会根据用户的出价输出与对比度类型相对应的后一个表,但是大多数程序将始终输出与一种类型相对应的参数-通常是指标类型,因为基于通用线性模型的ANOVA程序会专门设置虚拟变量的参数(最方便),然后通过特殊的“链接”公式切换对比度以将固定的虚拟输入解释为(任意)对比度。

而在我的答案中-将ANOVA显示为回归-早在输入X的级别就实现了“链接” ,这需要引入数据的适当编码模式的概念。

通过常规回归检验ANOVA对比的一些例子

在SPSS中显示要求的ANOVA对比类型,并通过线性回归获得相同的结果。我们有一些数据集,其中包含Y和因子A(3个级别,参考=最后)和B(4个水平,参考=最后);稍后找到下面的数据。

完全因数模型(A,B,A * B)下的偏差对比示例。为A和B都请求了偏差类型(我们可能会选择为每个因素要求不同的类型,以供参考)。

A和B的对比度系数矩阵L

            A=1      A=2      A=3
Const     .3333    .3333    .3333 
dev_a1    .6667   -.3333   -.3333
dev_a2   -.3333    .6667   -.3333

            B=1      B=2      B=3      B=4
Const     .2500    .2500    .2500    .2500
dev_b1    .7500   -.2500   -.2500   -.2500 
dev_b2   -.2500    .7500   -.2500   -.2500 
dev_b3   -.2500   -.2500    .7500   -.2500

要求ANOVA程序(GLM在SPSS中)进行方差分析并为偏差对比输出明确的结果:

在此处输入图片说明

在此处输入图片说明

偏差对比类型将A = 1与Grand非加权平均值进行比较,将A = 2与相同的平均值进行比较。红色椭圆画出差异估算值及其p值。红色矩形在因子A上产生了组合效果。对于因子B,类似地将所有内容标记为蓝色。同时显示方差分析表。请注意,组合的对比度效果等于其中的主要效果。

在此处输入图片说明

现在让我们创建物理上的对比变量dev_a1,dev_a2,dev_b1,dev_b2,dev_b3并运行回归。反转L矩阵以获得编码C矩阵:

      dev_a1   dev_a2
A=1   1.0000    .0000 
A=2    .0000   1.0000 
A=3  -1.0000  -1.0000

      dev_b1   dev_b2   dev_b3
B=1   1.0000    .0000    .0000 
B=2    .0000   1.0000    .0000 
B=3    .0000    .0000   1.0000 
B=4  -1.0000  -1.0000  -1.0000

一栏(Constant)被省略:因为我们将使用常规回归程序(在内部将变量居中,并且也不容许奇异性),因此不需要Constant。现在创建数据X:实际上,不需要手动将因子重新编码为这些值,解决方案是,其中是指标(虚拟)变量,所有列(是层数一个因素)。X=DCDkk

创建对比变量后,将其乘以来自不同因素的变量,以得到表示相互作用的变量(我们的ANOVA模型为全因子):dev_a1b1,dev_a1b2,dev_a1b3,dev_a2b1,dev_a2b2,dev_a2b3。然后对所有预测变量运行多元线性回归。

在此处输入图片说明

正如预期的那样,dev_a1与效果相同,即对比度“级别1与平均值”;dev_a2与“ Level 2 vs Mean”等相同,等等,-将着墨部分与上述ANOVA对比分析进行比较。

请注意,如果我们不在回归中使用交互变量dev_a1b1,dev_a1b2 ...,则结果将与仅主要效果的ANOVA对比分析的结果一致。

在相同的完整阶乘模型(A,B,A * B)下的简单对比示例。

A和B的对比度系数矩阵L

            A=1      A=2      A=3
Const     .3333    .3333    .3333 
sim_a1   1.0000    .0000  -1.0000
sim_a2    .0000   1.0000  -1.0000

            B=1      B=2      B=3      B=4
Const     .2500    .2500    .2500    .2500
sim_b1   1.0000    .0000    .0000  -1.0000
sim_b2    .0000   1.0000    .0000  -1.0000
sim_b3    .0000    .0000   1.0000  -1.0000

方差分析结果用于简单对比:

在此处输入图片说明

在此处输入图片说明

总体结果(方差分析表)与偏差对比(现在不显示)相同。

创建物理对比度变量sim_a1,sim_a2,sim_b1,sim_b2,sim_b3。通过反转L矩阵的编码矩阵为(不带Const列):

      sim_a1   sim_a2
A=1    .6667   -.3333
A=2   -.3333    .6667
A=3   -.3333   -.3333

      sim_b1   sim_b2   sim_b3
B=1    .7500   -.2500   -.2500
B=2   -.2500    .7500   -.2500
B=3   -.2500   -.2500    .7500
B=4   -.2500   -.2500   -.2500

创建数据并在其中添加交互对比变量sim_a1b1,sim_a1b2等,作为主要效果对比变量的乘积。执行回归。X=DC

在此处输入图片说明

和以前一样,我们看到回归和方差分析的结果匹配。简单对比变量的回归参数是该因子水平与其参考水平(在我们的示例中为最后一个水平)之间的差异(以及显着性检验)。

示例中使用的两因素数据:

     Y      A      B
 .2260      1      1
 .6836      1      1
-1.772      1      1
-.5085      1      1
1.1836      1      2
 .5633      1      2
 .8709      1      2
 .2858      1      2
 .4057      1      2
-1.156      1      3
1.5199      1      3
-.1388      1      3
 .4865      1      3
-.7653      1      3
 .3418      1      4
-1.273      1      4
1.4042      1      4
-.1622      2      1
 .3347      2      1
-.4576      2      1
 .7585      2      1
 .4084      2      2
1.4165      2      2
-.5138      2      2
 .9725      2      2
 .2373      2      2
-1.562      2      2
1.3985      2      3
 .0397      2      3
-.4689      2      3
-1.499      2      3
-.7654      2      3
 .1442      2      3
-1.404      2      3
-.2201      2      4
-1.166      2      4
 .7282      2      4
 .9524      2      4
-1.462      2      4
-.3478      3      1
 .5679      3      1
 .5608      3      2
1.0338      3      2
-1.161      3      2
-.1037      3      3
2.0470      3      3
2.3613      3      3
 .1222      3      4

用户定义的对比示例。让我们有5个水平的单因子F。我将在ANOVA和回归中创建并测试一组自定义的正交对比。

在此处输入图片说明

图片显示了在5个组之间组合/分割以获得4个正交对比度的过程(可能的一种),该过程产生的对比度系数的L矩阵在右侧。所有对比度彼此正交:对角线。(这个示例架构是几年前从D. Howell的心理学统计学书中复制的。)LL

让我们将矩阵提交给SPSS的ANOVA程序以测试对比度。好吧,我们甚至可以提交矩阵中的任何一行(对比度),但是我们将提交整个矩阵,因为-与前面的示例一样-我们希望通过回归接收相同的结果,并且回归程序需要完整的一组对比变量(请注意它们属于一个因素!)。像以前一样,我们将常数行添加到L,尽管如果不需要测试截距,我们可以安全地忽略它。

UNIANOVA Y BY F
  /METHOD=SSTYPE(3)
  /INTERCEPT=INCLUDE
  /CONTRAST (F)= special
       (.2 .2 .2 .2 .2
         3  3 -2 -2 -2
         1 -1  0  0  0
         0  0  2 -1 -1
         0  0  0  1 -1)
  /DESIGN=F.

Equivalently, we might also use this syntax (with a more flexible /LMATRIX subcommand)
if we omit the Constant row from the matrix.
UNIANOVA Y BY F
  /METHOD=SSTYPE(3)
  /INTERCEPT=INCLUDE
  /LMATRIX= "User contrasts"
       F  3  3 -2 -2 -2;
       F  1 -1  0  0  0;
       F  0  0  2 -1 -1;
       F  0  0  0  1 -1
  /DESIGN=F.

在此处输入图片说明

总体对比度效果(在图片的底部)与预期的总体方差分析效果不同:

在此处输入图片说明

但这仅仅是我们将常数项插入L矩阵的伪像。为此,当指定用户定义的对比度时,SPSS已经隐含常量。从L删除常数行,我们将获得相同的对比度结果(上图中的矩阵K),只是不会显示L0对比度。总体对比度效果将与总体方差分析相匹配:

在此处输入图片说明

好的,现在物理创建对比度变量并将其提交回归。,。 X = D CC=L+X=DC

C
      use_f1   use_f2   use_f3   use_f4
F=1    .1000    .5000    .0000    .0000
F=2    .1000   -.5000    .0000    .0000
F=3   -.0667    .0000    .3333    .0000
F=4   -.0667    .0000   -.1667    .5000
F=5   -.0667    .0000   -.1667   -.5000

在此处输入图片说明

观察结果的身份。本示例中使用的数据:

     Y      F
 .2260      1
 .6836      1
-1.772      1
-.5085      1
1.1836      1
 .5633      1
 .8709      1
 .2858      1
 .4057      1
-1.156      1
1.5199      2
-.1388      2
 .4865      2
-.7653      2
 .3418      2
-1.273      2
1.4042      2
-.1622      3
 .3347      3
-.4576      3
 .7585      3
 .4084      3
1.4165      3
-.5138      3
 .9725      3
 .2373      3
-1.562      3
1.3985      3
 .0397      4
-.4689      4
-1.499      4
-.7654      4
 .1442      4
-1.404      4
-.2201      4
-1.166      4
 .7282      4
 .9524      5
-1.462      5
-.3478      5
 .5679      5
 .5608      5
1.0338      5
-1.161      5
-.1037      5
2.0470      5
2.3613      5
 .1222      5

(M)ANOVA分析以外的对比

无论名义预测变量出现在何处,都会出现对比度问题(为哪种预测变量选择哪种对比度类型)。当整体的综合结果不取决于所选的类型时,某些程序会在后台内部解决该问题。如果希望特定类型看到更多的“基本”结果,则必须选择。在测试自定义比较假设时,也可以选择(或构成)对比度。

(M)ANOVA和Loglinear分析,有时甚至是混合的线性建模包括通过不同类型的对比处理预测变量的选项。但是,正如我尝试显示的那样,可以显式地手动创建对比度作为对比度变量。然后,如果手头没有方差分析包,则可以通过多元回归来做到这一点-在很多方面都非常幸运。


1
如果可能的话,请不要将答案仅限于方差分析。[anova]标签是@amoeba在您回答我的问题时添加的,但是我不希望答案仅限于anova。
好奇的

感谢您撰写和更新此答案!我有几个问题,这是第一个。在您的答案中,您介绍了“对比度编码矩阵”()和“对比度系数矩阵”()。(顺便说一下,这些是标准术语吗?当我在Google的“对比编码矩阵”中搜索时,我只有5个匹配,其中有2个指向此页面)。但是,OP询问有关“对比度矩阵”的问题,并给出了R中使用的一些示例(另请参见本手册)。我是否正确理解这个“对比度矩阵”是您的(不是)?L C LCLCL
变形虫说莫妮卡(Reonica Monica)

@amoeba,我对“对比度矩阵”不熟悉,几乎可以肯定它代表“对比度系数矩阵”或L矩阵,这是(M)ANOVA / GLM中的正式术语或至少广泛使用的术语。很少提及“对比度编码矩阵”一词,因为它只是设计矩阵X的集合视图。我已经看到SPSS一位资深统计学家Dave Nichols的论文中使用了“基本矩阵”一词。绝对地,L(官方标签)和C(任意标签?)矩阵是如此紧密地相关,以至于一个矩阵几乎无法讨论另一个矩阵。我认为“对比矩阵”应被视为这一对。
ttnphns

1
是的我同意。到现在为止,我已经确信“对比度矩阵”是仅在R社区中使用的术语,指的是编码方案。我检查了Gus_est所指的教科书,他们从不使用术语“对比度矩阵”,他们只谈论“对比度”(请参阅​​我在他的回答下的最后一条评论)。OP显然是在问R意义上的“对比度矩阵”。
变形虫说恢复莫妮卡

1
That L will determine what are you going to test, you aren't free anymore to choose what to test:不,我不同意。据我了解,一个人可以“手动”执行与编码方案无关的测试。古斯的答案中提供了有关公式。我并不是说在实践中很方便,我只是说有可能。我认为您所说的是C矩阵确定每个beta系数的含义,并且对应的p值将用于。这很清楚。但是,仍然可以“手动”测试例如。β 1 - β 2 / 2 - β 3 / 2 = 0βi=0β1β2/2β3/2=0
变形虫说莫妮卡

17

我将对向量使用小写字母,对矩阵使用大写字母。

对于以下形式的线性模型:

y=Xβ+ε

其中是等级的矩阵,我们假设。 Ñ × ķ + 1 ķ + 1 Ñ ε Ñ0 σ 2Xn×(k+1)k+1nεN(0,σ2)

我们可以通过来估算,因为倒数存在。β^(XX)1XyXX

现在,对于方差分析,我们认为不再是完整排名。这意味着我们没有,我们必须满足广义逆。X(XX)1(XX)

使用这种广义逆的问题之一是它不是唯一的。另一个问题是,由于 ,我们找不到的无偏估计量β

β^=(XX)XyE(β^)=(XX)XXβ.

因此,我们无法估计。但是我们可以估计的线性组合吗?ββ

如果存在向量使得,则的线性组合,例如是可以估计的βgβaE(ay)=gβ


所述对比是估函数的特殊情况,其中的系数的总和等于零。g

并且,在线性模型中的分类预测变量的上下文中出现了对比。(如果您查看通过@amoeba链接的手册,则会发现它们的所有对比编码都与分类变量有关)。然后,在回答@Curious和@amoeba时,我们看到它们出现在ANOVA中,而不是在仅具有连续预测变量的“纯”回归模型中出现(我们也可以谈论ANCOVA中的对比,因为其中包含一些分类变量)。


现在,在模型,其中并非完全排名,而,线性函数是可估计的,前提是存在向量使得。也就是说,是的行的线性组合。同样,向量有很多选择,例如,如下面的示例所示。

y=Xβ+ε
XE(y)=XβgβaaX=ggXaaX=g

例子1

考虑单向模型:

yij=μ+αi+εij,i=1,2,j=1,2,3.

X=[110110110101101101],β=[μτ1τ2]

并假设,所以我们要估计。g=[0,1,1][0,1,1]β=τ1τ2

我们可以看到向量不同选择会产生:以 ; 或 ; 或。aaX=ga=[0,0,1,1,0,0]a=[1,0,0,0,0,1]a=[2,1,0,0,1,2]


例子2

采取双向模型: 。

yij=μ+αi+βj+εij,i=1,2,j=1,2

X=[11010110011011010101],β=[μα1α2β1β2]

我们可以通过对的行进行线性组合来定义可估计函数。X

从( 2、3和4行中减去第1行): X

[11010000110110001111]

并从第四行中提取第2行和第3行:

[11010000110110000000]

将其乘以产生: β

g1β=μ+α1+β1g2β=β2β1g3β=α2α1

因此,我们有三个线性独立的可估计函数。现在,仅和可以被认为是对比,因为其系数之和(或该行各个向量的总和)等于零。g2βg3βg


回到单向平衡模型

yij=μ+αi+εij,i=1,2,,k,j=1,2,,n.

并假设我们要检验假设。H0:α1==αk

在此设置下,矩阵并非完全排名,因此并非唯一且。为了使其可估计,只要,我们就可以将与相乘。换句话说,如果,则是可估计的。Xβ=(μ,α1,,αk)βgigi=0igiαiigi=0

为什么这是真的?

我们知道是可估计的是存在矢量这样。取不同的行和,则 gβ=(0,g1,,gk)β=igiαiag=aXXa=[a1,,ak]

[0,g1,,gk]=g=aX=(iai,a1,,ak)

结果如下。


如果我们想检验特定的对比,我们的假设是。例如:,可以写成,因此我们将与的平均值进行,。H0:giαi=0H0:2α1=α2+α3H0:α1=α2+α32α1α2α3

该假设可以表示为,其中。在这种情况下,,我们用以下统计数据检验该假设: H0:gβ=0g=(0,g1,g2,,gk)q=1

F=[gβ^][g(XX)g]1gβ^SSE/k(n1).

如果表示为,其中矩阵 是相互正交的对比(),那么我们可以使用统计量来测试,其中H0:α1=α2==αkGβ=0

G=[g1g2gk]
gigj=0H0:Gβ=0F=SSHrank(G)SSEk(n1)SSH=[Gβ^][G(XX)1G]1Gβ^

例子3

为了更好地理解这一点,让我们使用,并假设我们要测试可以将其表示为 k=4H0:α1=α2=α3=α4,

H0:[α1α2α1α3α1α4]=[000]

或者,作为: H0:Gβ=0

H0:[011000101001011]G,our contrast matrix[μα1α2α3α4]=[000]

因此,我们看到对比度矩阵的三行由关注对比度的系数定义。每个列都提供了我们在比较中使用的因子水平。


我写的几乎所有内容都(无耻地)摘自Rencher&Schaalje,“统计中的线性模型”,第8章和第13章(示例,定理的措词,一些解释),但还有其他内容,例如术语“对比矩阵” ”(实际上,这本书中没有出现),这里给出的定义是我自己的。


将OP的对比度矩阵与我的答案相关

OP的矩阵之一(也可以在本手册中找到)如下:

> contr.treatment(4)
  2 3 4
1 0 0 0
2 1 0 0
3 0 1 0
4 0 0 1

在这种情况下,我们的因子有4个级别,我们可以按如下方式编写模型:可以以矩阵形式编写为:

[y11y21y31y41]=[μμμμ]+[a1a2a3a4]+[ε11ε21ε31ε41]

[y11y21y31y41]=[11000101001001010001]X[μa1a2a3a4]β+[ε11ε21ε31ε41]

现在,对于同一手册上的虚拟编码示例,他们使用作为参考组。因此,我们从矩阵每隔一行中减去第1行,得到:a1XX~

[11000011000101001001]

如果观察contr.treatment(4)矩阵中行和列的计数,您会发现它们只考虑所有行,而只考虑与因子2、3和4有关的列。上面的矩阵产生:

[000100010001]

这样,contr。treatment(4)矩阵告诉我们它们正在将因子2、3和4与因子1进行比较,并将因子1与常数进行比较(这是对上述情况的理解)。

并且,定义(即仅取上述矩阵中总和为0的行): G

[011000101001001]

我们可以测试并找到对比度的估计值。H0:Gβ=0

hsb2 = read.table('http://www.ats.ucla.edu/stat/data/hsb2.csv', header=T, sep=",")

y<-hsb2$write

dummies <- model.matrix(~factor(hsb2$race)+0)
X<-cbind(1,dummies)

# Defining G, what I call contrast matrix
G<-matrix(0,3,5)
G[1,]<-c(0,-1,1,0,0)
G[2,]<-c(0,-1,0,1,0)
G[3,]<-c(0,-1,0,0,1)
G
     [,1] [,2] [,3] [,4] [,5]
[1,]    0   -1    1    0    0
[2,]    0   -1    0    1    0
[3,]    0   -1    0    0    1

# Estimating Beta

X.X<-t(X)%*%X
X.y<-t(X)%*%y

library(MASS)
Betas<-ginv(X.X)%*%X.y

# Final estimators:
G%*%Betas
          [,1]
[1,] 11.541667
[2,]  1.741667
[3,]  7.596839

和估计是相同的。


与@ttnphns的答案有关。

在他们的第一个示例中,设置的分类因子A具有三个级别。我们可以将其写为模型(为简单起见,假设): j=1

yij=μ+ai+εij,for i=1,2,3

并假设我们要测试或,其中是我们的参考组/因子。H0:a1=a2=a3H0:a1a3=a2a3=0a3

可以用矩阵形式写成:

[y11y21y31]=[μμμ]+[a1a2a3]+[ε11ε21ε31]

[y11y21y31]=[110010101001]X[μa1a2a3]β+[ε11ε21ε31]

现在,如果从第1行和第2行中减去第3行,则变为(我将其称为:XX~

X~=[010100111001]

将上述矩阵的最后3列与@ttnphns的矩阵。尽管有顺序,但它们非常相似。确实,如果将相乘,我们得到:LX~β

[010100111001][μa1a2a3]=[a1a3a2a3μ+a3]

因此,我们具有可估计的函数: ; ; 。c1β=a1a3c2β=a2a3c3β=μ+a3

由于,因此我们从上面看到我们正在将常数与参考组(a_3)的系数进行比较;group1的系数到group3的系数;第2组与第3组的系数。或者,就像@ttnphns所说的:“我们随即看到系数,估计的常数将等于参考组中的Y均值;参数b1(即虚拟变量A1)将等于该差:组1中的Y均值减去Y是第3组的平均值;而参数b2是差异:第2组的平均值减去第3组的平均值。”H0:ciβ=0

此外,观察到(遵循对比度的定义:可估计函数+行和= 0),向量和是对比度。而且,如果我们创建一个由constrasts组成的矩阵,我们将:c1c2G

G=[01010011]

我们用于测试对比矩阵H0:Gβ=0

我们将使用与@ttnphns的“用户定义的对比示例”相同的数据(我想提到的是,我在此处编写的理论需要进行一些修改才能考虑具有交互作用的模型,这就是我选择此示例的原因。 ,对比度的定义和-我称之为-对比度矩阵的定义保持不变)。

Y<-c(0.226,0.6836,-1.772,-0.5085,1.1836,0.5633,0.8709,0.2858,0.4057,-1.156,1.5199,
     -0.1388,0.4865,-0.7653,0.3418,-1.273,1.4042,-0.1622,0.3347,-0.4576,0.7585,0.4084,
     1.4165,-0.5138,0.9725,0.2373,-1.562,1.3985,0.0397,-0.4689,-1.499,-0.7654,0.1442,
     -1.404,-0.2201,-1.166,0.7282,0.9524,-1.462,-0.3478,0.5679,0.5608,1.0338,-1.161,
     -0.1037,2.047,2.3613,0.1222)

F_<-c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,
    5,5,5,5,5,5,5,5,5,5,5)

dummies.F<-model.matrix(~as.factor(F_)+0)

X_F<-cbind(1,dummies.F)

G_F<-matrix(0,4,6)
G_F[1,]<-c(0,3,3,-2,-2,-2)
G_F[2,]<-c(0,1,-1,0,0,0)
G_F[3,]<-c(0,0,0,2,-1,-1)
G_F[4,]<-c(0,0,0,0,1,-1)

 G 
 [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    0    3    3   -2   -2   -2
[2,]    0    1   -1    0    0    0
[3,]    0    0    0    2   -1   -1
[4,]    0    0    0    0    1   -1

# Estimating Beta 

X_F.X_F<-t(X_F)%*%X_F
X_F.Y<-t(X_F)%*%Y

Betas_F<-ginv(X_F.X_F)%*%X_F.Y

# Final estimators:
G_F%*%Betas_F
           [,1]
[1,]  0.5888183
[2,] -0.1468029
[3,]  0.6115212
[4,] -0.9279030

因此,我们有相同的结果。


结论

在我看来,对于对比度矩阵没有一个定义性的概念。

如果采用Scheffe给出的对比度定义(“方差分析”,第66页),您会发现它是一个可估计的函数,系数的总和为零。因此,如果我们希望测试分类变量系数的不同线性组合,则可以使用矩阵。这是一个矩阵,其中行的总和为零,我们用来乘以系数矩阵,以使这些系数可估计。它的行表示我们正在测试的对比度的不同线性组合,其列表示正在比较哪些因素(系数)。G

由于上述矩阵的构造方式是,每行均由一个对比度矢量(总和为0)组成,因此对我来说,将称为“对比度矩阵”( Monahan-“线性模型入门”也使用此术语。GG

但是,正如@ttnphns很好地解释的那样,软件将其他东西称为“对比度矩阵”,我找不到矩阵与SPSS内置命令/矩阵之间的直接关系(@ttnphns )或R(OP的问题),只有相似之处。但我相信,这里进行的精彩讨论/协商将有助于澄清此类概念和定义。G


如果可能的话,请不要将答案仅限于方差分析。[anova]标签是@amoeba在您回答我的问题时添加的,但是我不希望答案仅限于anova。
好奇的

非常感谢您进行如此大的更新。我删除了上面上面已经过时的一些注释(您可以删除一些注释,例如第一个)。但是,到目前为止,我很清楚,就您(和Monahan)的意义而言,“对比度矩阵”与本《 R手册》以及此处的原始问题中使用的“对比度矩阵” 完全不同(ttnphns称之为C矩阵)。我认为,如果您在答案中的某处记下有关这种差异的话,这是有道理的。
变形虫说莫妮卡

我无法从Example1开始理解。什么是的在你的符号?什么是什么做列OD代表什么?那是常数项(一列)和两个虚拟变量吗?ijyijaiX
ttnphns

@ttnphns:是索引组(示例1中有两个组),是每个组内的索引数据点。是一个常数,是每个组的常数,因此是组平均值(因此,可以是总平均值,而可以是组平均值与总平均值的偏差)。列是常数项,是两个虚拟变量。ijμαiμ+αiμαiX
变形虫说莫妮卡

谢谢您的回答,但我可能永远也没有时间去理解它。我学习了数学:-)我期望给出一个非常简单的定义作为答案:-)
好奇的

7

“对比度矩阵”不是统计文献中的标准术语。它可以具有(至少)两个具有不同含义的关联:

  1. 在ANOVA回归中指定特定零假设的矩阵(与编码方案无关),其中每一行都是一个对比 这不是该术语的标准用法。我在“ 复杂问题的克里斯滕森平面答案”中使用了全文搜索,卢瑟福介绍了方差分析和ANCOVA。统计的GLM方法和Rencher&Schaalje 线性模型。他们都谈论“对比度”很多,但从未提及“对比度矩阵”一词。然而,随着@Gus_est发现,这个词在莫纳汉的使用入门的线性模型

  2. 一个矩阵,用于指定ANOVA回归中设计矩阵的编码方案。这就是R社区中术语“对比度矩阵”的使用方式(例如,请参见本手册帮助页面)。

@Gus_est的答案探究了第一个含义。@ttnphns的答案探讨了第二个含义(他称其为“对比度编码矩阵”,还讨论了“对比度系数矩阵”,这是SPSS文献中的标准术语)。


我的理解是您在询问含义#2,因此定义如下:

R意义上的“对比矩阵”是 ×矩阵,其中是组数,指定如何在设计矩阵编码组成员资格。具体来说,如果第个观测属于组则。k×kCkXmiXmj=Cij

注意:的第一列通常是所有列的一列(对应于设计矩阵中的intercept列)。当您调用R命令(如)时,将获得矩阵而不包含第一列。Ccontr.treatment(4)C


我打算扩展此答案,以扩展评论@ttnphns和@Gus_est的答案如何结合在一起。


The answer by @Gus_est explores the first meaning. The answer by @ttnphns explores the second meaning.我抗议。(很高兴听到-我们俩在关于mty答案的评论中对定义进行了长时间的交谈之后。)我邀请了两个术语:对比度系数矩阵(其中行是对比度,均值的线性组合)又称为L矩阵,和对比编码方案矩阵,又称C矩阵。两者都相关,我讨论了两者。
ttnphns

(续)对比度系数L矩阵是ANOVA /通用线性模型中的标准术语,例如,在文本和SPSS文档中使用。编码方案请参见此处
ttnphns

You were asking about meaning #2实际上,我们不确定OP所暗示的含义是什么。OP显示了一些对比编码方案的示例-并不一定表示他/她对L矩阵不感兴趣。
ttnphns

1
我很高兴我们现在能说相同的语言。至少如此。如果您回答正确,说明Gus和ttnphns的报告如何转换为相同的结果,那么对每个人(尤其是访问者阅读者)来说都是很棒的。如果你想完成。
ttnphns

1
(续)当然,两个“方法”中的L矩阵是相同的(并且不需要神秘的G矩阵)。显示两个等效路径(L是任意路径,X是虚拟对象):L -> XC -> regression -> resultX -> [regression -> adjusting to test for L] -> result保留相同的结果。第二条路径是ANOVA程序的工作方式(方括号[]);第一条路是一个教学论证,演示如何仅通过回归程序即可解决对比度。
ttnphns

3

对比通过将两组之间的差异与零进行比较来比较两组。在对比度矩阵中,行是对比度,必须相加为零,列是组。例如:

假设您要比较4个A,B,C,D组,则对比度矩阵为:

组:ABCD
A vs B:1 -1 0 0
C vs D:0 0 -1 1
A,B vs D,C:1 1 -1 -1

从复述了解工业实验

如果存在一组要比较的k个对象,具有k个子组的平均值,则通过k个系数中的任何一组[c1,c2,c3,... cj,...,ck ]总和为零。

令C为对比,

C=c1μ1+c2μ2+...cjμj+...ckμk

C=j=1kcjμj

约束

j=1kcj=0

那些分配为零系数的子组将从比较中排除。(*)

实际定义比较的是系数的符号,而不是所选的值。系数的绝对值可以是任何值,只要系数的总和为零即可。

(*)每个统计软件都有不同的方式来指示哪些子组将被排除/包括在内。

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.