¿Qué es una matriz de contraste?


46

¿Qué es exactamente la matriz de contraste (un término relacionado con un análisis con predictores categóricos) y cómo se especifica exactamente la matriz de contraste? Es decir, ¿qué son las columnas, qué son las filas, cuáles son las restricciones en esa matriz y qué significa número en columna jy fila i? Traté de buscar en los documentos y la web, pero parece que todos lo usan, pero no hay definición en ningún lado. Podría hacer ingeniería inversa de los contrastes predefinidos disponibles, pero creo que la definición debería estar disponible sin eso.

> 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

La "matriz de contraste" se utiliza para representar IV (factores) categóricos en el modelado. En particular, se utiliza para recodificar un factor en un conjunto de "variables de contraste" (las variables ficticias son solo un ejemplo). Cada tipo de variables de contraste tiene su propia matriz de contraste correspondiente. Vea, por ejemplo, mi propia pregunta relacionada , aún no respondida.
ttnphns

55
@ttnphns Lo siento, pero sigues haciendo lo que hacen todos los documentos y las webs: explicas para qué se usan las matrices de contraste, sin abordar la pregunta de qué es la matriz de contraste. Este es el propósito de una definición .
Curioso

3
Por supuesto, está relacionado, pero derivar "lo que es" de "para qué se necesita" es el trabajo de un detective, que no debería ser necesario. Eso es ingeniería inversa. Las cosas deben estar documentadas.
Curioso

2
ats.ucla.edu/stat/r/library/contrast_coding.htm es un Rrecurso bien orientado sobre métodos de codificación.
whuber

1
@Curious, solo para que lo sepas: otorgué 100 recompensas a ttnphns, pero comenzaré otra recompensa (o pediré a alguien más que lo haga) para otorgar Gus_est también. También he escrito mi propia respuesta, en caso de que prefieras tener una más corta :-)
ameba dice Reinstate Monica

Respuestas:


31

En su buena respuesta, @Gus_est, realizó una explicación matemática de la esencia de la matriz de coeficientes de contraste L (anotada allí como C ). es la fórmula fundamental para probar hipótesis en el modelado lineal general univariado (donde b son parámetros yk son funciones estimables que representan una hipótesis nula), y esa respuesta muestra algunas fórmulas necesarias utilizadas en los programas ANOVA modernos.Lsi=ksik

Mi respuesta tiene un estilo muy diferente. Es para un analista de datos que se ve a sí mismo más bien como un "ingeniero" que como un "matemático", por lo que la respuesta será una explicación (superficial) "práctica" o "didáctica" y se centrará para responder solo a los temas (1) coeficientes de contraste promedio y (2) cómo pueden ayudar a realizar ANOVA a través del programa de regresión lineal .

ANOVA como regresión con variables ficticias: introducción de contrastes .

Imaginemos ANOVA con variable dependiente Y y factor categórico A que tiene 3 niveles (grupos). Echemos un vistazo al ANOVA desde el punto de vista de la regresión lineal, es decir, a través de convertir el factor en el conjunto de variables binarias ficticias (también conocido como indicador o tratamiento también conocido como one-hot ). Este es nuestro conjunto independiente X . (Probablemente todos hayan escuchado que es posible hacer ANOVA de esta manera, como una regresión lineal con predictores ficticios).

Como uno de los tres grupos es redundante, solo dos variables ficticias ingresarán al modelo lineal. Designemos Group3 para ser redundante, o referencia. Los predictores ficticios que constituyen X son un ejemplo de variables de contraste , es decir, variables elementales que representan categorías de un factor. La propia X a menudo se llama matriz de diseño. Ahora podemos ingresar el conjunto de datos en un programa de regresión lineal múltiple que centrará los datos y encontrará los coeficientes de regresión (parámetros) , donde "+" designa pseudoinverso.si=(XX)-1Xy=X+y

El pase equivalente no será el centrado, sino que se agregará el término constante del modelo como la primera columna de 1 s en X , luego se estimarán los coeficientes de la misma manera que arriba . Hasta aquí todo bien.si=(XX)-1Xy=X+y

Definamos la matriz C a ser la agregación (de resumen) de las variables independientes matriz de diseño X . Simplemente muestra nosotros el esquema de codificación observado allí, - la matriz de codificación de contraste (= matriz de base de): .C=unasolsolrX

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

Las columnas son las variables (columnas) de X : las variables de contraste elementales A1 A2, ficticias en este caso, y las filas son todos los grupos / niveles del factor. Así fue nuestra matriz de codificación C para el esquema de codificación de contraste simulado o indicador .

Ahora, se llama matriz de coeficiente de contraste , o matriz L. Como C es cuadrado, L = C + = C - 1 . La matriz de contraste, correspondiente a nuestra C , es decir, para los contrastes indicadores de nuestro ejemplo, es por lo tanto:C+=LL=C+=C-1

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

La matriz L es la matriz que muestra los coeficientes de contraste . Tenga en cuenta que la suma de los coeficientes de contraste en cada fila (excepto la fila Constante) es . Cada fila se llama contraste . Las filas corresponden a las variables de contraste y las columnas corresponden a los grupos, niveles de factores.0 0

La importancia de los coeficientes de contraste es que ayudan a comprender qué representa cada efecto (cada parámetro b estimado en la regresión con nuestra X , codificado como está) en el sentido de la diferencia (la comparación grupal). Inmediatamente vemos, siguiendo los coeficientes, que la constante estimada será igual a la media de Y en el grupo de referencia; ese parámetro b1 (es decir, la variable ficticia A1) será igual a la diferencia: Y media en el grupo1 menos Y media en el grupo3; y el parámetro b2 es la diferencia: media en el grupo2 menos media en el grupo3.

Nota : Al decir "media" justo arriba (y más abajo) nos referimos a la media estimada (predicha por el modelo) para un grupo, no a la media observada en un grupo.

Una observación instructiva : cuando hacemos una regresión por variables predictoras binarias , el parámetro de dicha variable dice acerca de la diferencia en Y entre los grupos variable = 1 y variable = 0. Sin embargo, en la situación en que las variables binarias son el conjunto de k-1 variables ficticias que representan un kfactor de nivel, el significado del parámetro se vuelve más estrecho : muestra la diferencia en Y entre variable = 1 y (no solo variable = 0 sino incluso) variable de referencia = 1 grupos.

Al igual que (después de multiplicado por y ) nos trae valores de b , de manera similar ( a g g r X ) + trae significados de b .X+y(unasolsolrX)+

OK, hemos dado la definición del coeficiente de contraste matriz L . Como , simétricamente C = L + = L - 1 , lo que significa que si le dieron o construyó una matriz de contraste L basada en factores categóricos, para probar esa L en su análisis, entonces tiene idea de cómo codificar correctamente sus variables predictoras de contraste X para probar la L a través de una regresión ordinariaL=C+=C-1C=L+=L-1 software (es decir, el único que procesa variables "continuas" a la manera estándar de OLS, y no reconoce factores categóricos en absoluto). En nuestro ejemplo actual, la codificación era - variables de tipo indicador (ficticio).

ANOVA como regresión: otros tipos de contraste .

Observemos brevemente otros tipos de contraste (= esquemas de codificación, = estilos de parametrización) para un factor categórico A .

Desviaciones o contrastes de efectos . Matrices C y L y significado del parámetro:

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)

Por codificación de desviación, cada grupo del factor se compara con la gran media no ponderada, mientras que Constant es esa gran media. Esto es lo que obtienes en regresión con predictores de contraste X codificados en desviación o efecto "de manera".

Contrastes simples . Este esquema de contrastes / codificación es un híbrido de tipos de indicador y desviación, da el significado de Constante como en el tipo de desviación y el significado de los otros parámetros como en el tipo de indicador:

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

Helmert contrasta . Compara cada grupo (excepto la referencia) con la media no ponderada de los grupos posteriores, y Constant es la gran media no ponderada. Matrices C y L :

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

Diferencia o contrastes de Helmert inversos . Compara cada grupo (excepto la referencia) con la media no ponderada de los grupos anteriores, y Constant es la gran media no ponderada.

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)

Repetidos contrastes . Compara cada grupo (excepto la referencia) con el siguiente grupo, y Constant es la gran media no ponderada.

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

La pregunta es: al how exactly is contrast matrix specified?observar los tipos de contrastes descritos hasta ahora, es posible comprender cómo. Cada tipo tiene su lógica la forma de "rellenar" los valores de L . La lógica refleja lo que significa cada parámetro: cuáles son las dos combinaciones de grupos que se planea comparar.

Contrastes polinomiales . Estos son un poco especiales, no lineales. El primer efecto es lineal, el segundo es cuadrático, el siguiente es cúbico. Me voy de aquí sin explicar la pregunta de cómo se construirán sus matrices C y L y si son inversas entre sí. Consulte las profundas explicaciones de @Antoni Parellada sobre este tipo de contraste: 1 , 2 .

En diseños equilibrados, Helmert, Helmert inverso y contrastes polinómicos son siempre contrastes ortogonales . Otros tipos considerados anteriormente no son contrastes ortogonales. Ortogonal (bajo equilibrio) es el contraste donde, en contraste, la matriz L suma en cada fila (excepto Const) es cero y la suma de productos de los elementos correspondientes de cada par de filas es cero.

Aquí están las medidas de similitud angular (correlación de coseno y Pearson) bajo diferentes tipos de contraste, excepto el polinomio que no probé. Tengamos un solo factor A con kniveles, y luego se recodificó en el conjunto de k-1variables de contraste de un tipo específico. ¿Cuáles son los valores en la correlación o matriz de coseno entre estas variables de contraste?

                     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

Le doy a la mesa información y la dejo sin comentar. Es de cierta importancia una mirada más profunda al modelado lineal general.

Contrastes definidos por el usuario . Esto es lo que compusimos para probar una hipótesis de comparación personalizada. Normalmente, la suma en todas menos la primera fila de L debe ser 0, lo que significa que dos grupos o dos composiciones de grupos se comparan en esa fila (es decir, mediante ese parámetro).

¿Dónde están los parámetros del modelo después de todo ?

¿Son las filas o las columnas de L ? A lo largo del texto anterior, decía que los parámetros corresponden a las filas de L , ya que las filas representan variables de contraste, los predictores. Mientras que las columnas son niveles de un factor, los grupos. Puede parecer que está en contradicción con tal, por ejemplo, el bloque teórico de la respuesta @Gus_est, donde claramente las columnas corresponden a los parámetros:

H0 0:[0 01-1-0 0-0 00 00 0-1-1-0 00 00 0-0 0-1-1][β0 0β1β2β3β4 4]=[0 00 00 0]

En realidad, no hay contradicción y la respuesta al "problema" es: ¡tanto las filas como las columnas de la matriz de coeficientes de contraste corresponden a los parámetros! Solo recuerde que los contrastes (variables de contraste), las filas, se crearon inicialmente para representar nada más que los niveles de factores: son los niveles excepto el de referencia omitido. Compare por favor estas dos ortografías equivalentes de la matriz L para el contraste simple :

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   

El primero es lo que he mostrado antes, el segundo es un diseño más "teórico" (para álgebra de modelo lineal general). Simplemente, se agregó una columna correspondiente al término constante. Los coeficientes de los parámetros b etiquetan las filas y columnas. El parámetro b3, como redundante, se establecerá en cero. Puede pseudoinvertir el segundo diseño para obtener la matriz de codificación C , donde dentro de la parte inferior derecha encontrará los códigos correctos para las variables de contraste A1 y A2. Esto será así para cualquier tipo de contraste descrito (excepto para el tipo de indicador, donde el pseudoinverso de dicho diseño rectangular no dará el resultado correcto; esta es probablemente la razón por la cual se inventó el tipo de contraste simple por conveniencia: coeficientes de contraste idénticos al tipo de indicador, pero para fila constante).

Tipo de contraste y resultados de la tabla ANOVA .

La tabla ANOVA muestra los efectos combinados (agregados), por ejemplo, el efecto principal del factor A , mientras que los contrastes corresponden a los efectos elementales de las variables de contraste: A1, A2 y (omitido, referencia) A3. Las estimaciones de los parámetros para los términos elementales dependen del tipo de contraste seleccionado, pero el resultado combinado (su cuadrado medio y nivel de significancia) es el mismo, sea cual sea el tipo. La hipótesis nula omnibus ANOVA (por ejemplo, unidireccional) de que las tres medias de A son iguales se puede exponer en varias declaraciones equivalentes, y cada una corresponderá a un tipo de contraste específico: (μ1=μ2,μ2=μ3)= tipo repetido; = tipo Helmert; ( μ 1 = μ 123 , μ 2 = μ 123 ) = Tipo de desviación; ( μ 1 = μ 3 , μ 2 = μ 3 ) = indicador o tipos simples.(μ1=μ23,μ2=μ3)(μ1=μ123,μ2=μ123)(μ1=μ3,μ2=μ3)

Los programas ANOVA implementados a través del paradigma del modelo lineal general pueden mostrar tanto la tabla ANOVA (efectos combinados: principal, interacciones) como la tabla de estimaciones de parámetros (efectos elementales b ). Algunos programas pueden generar la última tabla correspondiente al tipo de contraste según la oferta del usuario, pero la mayoría siempre emitirá los parámetros correspondientes a un tipo, a menudo, tipo indicador, porque los programas ANOVA basados ​​en el modelo lineal general parametrizan variables ficticias específicas (lo más conveniente) hacer) y luego cambiar los contrastes por fórmulas especiales de "vinculación" que interpretan la entrada ficticia fija en un contraste (arbitrario).

Mientras que en mi respuesta, que muestra ANOVA como regresión, el "enlace" se realiza tan pronto como a nivel de la entrada X , que llama a introducir la noción del esquema de codificación apropiado para los datos.

Algunos ejemplos que muestran pruebas de contrastes ANOVA a través de la regresión habitual .

Mostrando en SPSS la solicitud de un tipo de contraste en ANOVA y obteniendo el mismo resultado mediante regresión lineal. Tenemos algunos conjuntos de datos con Y y factores A (3 niveles, referencia = último) y B (4 niveles, referencia = último); encuentre los datos a continuación más adelante.

Ejemplo de contraste de desviación bajo el modelo factorial completo (A, B, A * B). Tipo de desviación solicitada para A y B (podríamos elegir exigir un tipo diferente para cada factor, para su información).

Coeficiente de contraste matriz L para A y para B:

            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

Solicite el programa ANOVA ( GLMen SPSS) para hacer un análisis de varianza y generar resultados explícitos para contrastes de desviación:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

El tipo de contraste de desviación comparó A = 1 vs Gran media no ponderada y A = 2 con esa misma media. Las elipses rojas entintan las estimaciones de diferencia y sus valores p. El efecto combinado sobre el factor A está entintado por un rectángulo rojo. Para el factor B, todo está análogo entintado en azul. Mostrar también la tabla ANOVA. Tenga en cuenta que los efectos de contraste combinados son iguales a los efectos principales.

ingrese la descripción de la imagen aquí

Ahora creemos las variables de contraste físico dev_a1, dev_a2, dev_b1, dev_b2, dev_b3 y ejecutemos la regresión. Invierta las matrices L para obtener las matrices de codificación 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

La columna de unos (Constante) se omite: porque usaremos un programa de regresión regular (que centra las variables internamente y también es intolerante a la singularidad). No se necesitará la variable Constante. Ahora cree datos X : en realidad no se necesita una recodificación manual de los factores en estos valores, la solución de un solo golpe es , donde D son las variables indicadoras (ficticias), todas las columnas ( es el número de niveles en un factor )X=reCrekk

Una vez creadas las variables de contraste, multiplique entre las de diferentes factores para obtener variables que representen interacciones (nuestro modelo ANOVA fue factorial completo): dev_a1b1, dev_a1b2, dev_a1b3, dev_a2b1, dev_a2b2, dev_a2b3. Luego ejecute la regresión lineal múltiple con todos los predictores.

ingrese la descripción de la imagen aquí

Como se esperaba, dev_a1 es el mismo efecto que el contraste "Nivel 1 vs Media"; dev_a2 es el mismo que "Nivel 2 frente a la media", etc., etc., compare las partes entintadas con el análisis de contraste ANOVA anterior.

Tenga en cuenta que si no estuviéramos utilizando las variables de interacción dev_a1b1, dev_a1b2 ... en la regresión, los resultados coincidirán con los resultados del análisis de contraste ANOVA de solo efectos principales.

Ejemplo de contrastes simples bajo el mismo modelo factorial completo (A, B, A * B).

Coeficiente de contraste matriz L para A y para B:

            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

Resultados de ANOVA para contrastes simples:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Los resultados generales (tabla ANOVA) son los mismos que con los contrastes de desviación (que no se muestran ahora).

Cree variables de contraste físico sim_a1, sim_a2, sim_b1, sim_b2, sim_b3. Las matrices de codificación invirtiendo las matrices L son (sin columna 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

Cree los datos y agregue allí las variables de contraste de interacción sim_a1b1, sim_a1b2, ... etc., como los productos de las variables de contraste de efectos principales. Realiza la regresión.X=reC

ingrese la descripción de la imagen aquí

Como antes, vemos que los resultados de la regresión y ANOVA coinciden. Un parámetro de regresión de una variable de contraste simple es la diferencia (y la prueba de significación del mismo) entre ese nivel del factor y el nivel de referencia (el último, en nuestro ejemplo) del mismo.

Los datos de dos factores utilizados en los ejemplos:

     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

Ejemplo de contraste definido por el usuario . Tengamos un solo factor F con 5 niveles. Crearé y probaré un conjunto de contrastes ortogonales personalizados, en ANOVA y en regresión.

ingrese la descripción de la imagen aquí

LL

Presentemos la matriz al procedimiento ANOVA de SPSS para probar los contrastes. Bueno, podríamos enviar incluso cualquier fila (contraste) de la matriz, pero enviaremos toda la matriz porque, como en los ejemplos anteriores, queremos recibir los mismos resultados mediante regresión, y el programa de regresión necesitará la completa conjunto de variables de contraste (para tener en cuenta que pertenecen juntas a un factor). Agregaremos la fila constante a L, tal como lo hicimos antes, aunque si no necesitamos probar la intercepción, podemos omitirla de manera segura.

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.

ingrese la descripción de la imagen aquí

El efecto de contraste general (en la parte inferior de la imagen) no es el mismo que el efecto ANOVA general esperado:

ingrese la descripción de la imagen aquí

pero es simplemente el artefacto de nuestra inserción del término constante en la matriz L. Para, SPSS ya implica constante cuando se especifican los contrastes definidos por el usuario. Elimine la fila constante de L y obtendremos los mismos resultados de contraste (matriz K en la imagen de arriba) excepto que no se mostrará el contraste L0. Y el efecto de contraste general coincidirá con el ANOVA general:

ingrese la descripción de la imagen aquí

C=L+X=reC

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

ingrese la descripción de la imagen aquí

Observar la identidad de los resultados. Los datos utilizados en este ejemplo:

     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

Contrastes en otros análisis que no sean (M) ANOVA .

Dondequiera que aparezcan predictores nominales, surge la cuestión del contraste (qué tipo de contraste seleccionar para qué predictor). Algunos programas lo resuelven internamente detrás de escena cuando los resultados generales y generales no dependerán del tipo seleccionado. Si desea que un tipo específico vea más resultados "elementales", debe seleccionar. Usted selecciona (o, mejor dicho, compone) un contraste también cuando está probando una hipótesis de comparación personalizada.

(M) ANOVA y análisis logarítmico, el modelado lineal mixto y, a veces, generalizado incluye opciones para tratar los predictores a través de diferentes tipos de contrastes. Pero como he tratado de mostrar, es posible crear contrastes como variables de contraste explícitamente y a mano. Luego, si no tiene el paquete ANOVA a mano, puede hacerlo, en muchos aspectos con la misma suerte, con regresión múltiple.


1
por favor no restrinja esta respuesta solo a anova si es posible. @Amoeba agregó la etiqueta [anova] cuando respondiste mi pregunta, pero no quiero que la respuesta se limite solo a anova.
Curioso

CLCL

@amoeba, no estoy familiarizado con la "matriz de contraste" y estoy casi seguro de que significa "matriz de coeficiente de contraste" o matriz L, que es un término oficial o al menos amplio en (M) ANOVA / GLM. El término "matriz de codificación de contraste" se menciona mucho menos, ya que es simplemente la vista agregada de la matriz de diseño X; He visto la palabra "matriz base" utilizada en los documentos del estadístico senior de SPSS Dave Nichols. Absolutamente, las matrices L (etiqueta oficial) y C (etiqueta arbitraria?) Están tan estrechamente relacionadas que uno apenas puede discutir una sin la otra. Supongo que "matriz de contraste" debería considerarse como este par.
ttnphns

1
Sí estoy de acuerdo. Por ahora estoy convencido de que "matriz de contraste" es un término que solo se usa en la comunidad R y se refiere al esquema de codificación. Revisé el libro de texto al que se refiere Gus_est y nunca usan el término "matriz de contraste", solo hablan de "contrastes" (vea mi último comentario debajo de su respuesta). El OP claramente preguntaba por la "matriz de contraste" en el sentido R.
ameba dice Reinstate Monica

1
That L will determine what are you going to test, you aren't free anymore to choose what to test: No, no estoy de acuerdo con eso. Hasta donde yo entiendo, uno puede "manualmente" realizar una prueba que no está vinculada al esquema de codificación. Las fórmulas para eso se proporcionan en la respuesta de Gus. No digo que sea conveniente en la práctica, solo digo que es posible. Creo que lo que está diciendo es que la matriz C determina el significado de cada coeficiente beta y los valores p correspondientes serán para βyo=0 0β1-β2/ /2-β3/ /2=0 0

17

Usaré letras minúsculas para vectores y letras mayúsculas para matrices.

En caso de un modelo lineal de la forma:

y=Xβ+ε

donde es unXnorte×(k+1)k+1norteεnorte(0 0,σ2)

Podemos estimar ββ^(XX)-1XyXX

Ahora, para el caso de ANOVA, tenemos que X(XX)-1(XX)-

β

β^=(XX)-Xymi(β^)=(XX)-XXβ.

ββ

Tenemos que una combinación lineal de los 's, digamos gβsolβunami(unay)=solβ


sol

Y, los contrastes aparecen en el contexto de predictores categóricos en un modelo lineal. (si revisa el manual vinculado por @amoeba, verá que todos sus códigos de contraste están relacionados con variables categóricas). Luego, respondiendo a @Curious y @amoeba, vemos que surgen en ANOVA, pero no en un modelo de regresión "puro" con solo predictores continuos (también podemos hablar de contrastes en ANCOVA, ya que tenemos algunas variables categóricas en él).


y=Xβ+ε
Xmi(y)=XβsolβunaunaX=solsolXunaunaX=sol, como podemos ver en el siguiente ejemplo.

Ejemplo 1

yyoj=μ+αyo+εyoj,yo=1,2,j=1,2,3)

X=[110 0110 0110 010 0110 0110 01],β=[μτ1τ2]

sol=[0 0,1,-1][0 0,1,-1]β=τ1-τ2

unaunaX=soluna=[0 0,0 0,1,-1,0 0,0 0]una=[1,0 0,0 0,0 0,0 0,-1]a=[2,1,0,0,1,2]


Ejemplo 2

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

X=[110 010 0110 00 0110 0110 010 010 01],β=[μα1α2β1β2]

X

X

[1-10 0-10 00 00 00 0-110 0-11-0 00 00 0-11-11]

[1-10 0-10 00 00 00 0-110 0-11-0 00 00 0-0 00 0-0 00 0]

β

sol1β=μ+α1+β1sol2β=β2-β1sol3β=α2-α1

sol2βsol3βsol


yyoj=μ+αyo+εyoj,yo=1,2,...,k,j=1,2,...,norte.

H0 0:α1=...=αk

Xβ=(μ,α1,...,αk)βsolyosolyo=0 0yosolyoαyoyosolyo=0 0

¿Por qué esto es verdad?

solβ=(0 0,sol1,...,solk)β=yosolyoαyounasol=unaXXuna=[una1,...,unak]

[0 0,sol1,...,solk]=sol=unaX=(younayo,una1,...,unak)

Y el resultado sigue.


H0 0:solyoαyo=0 0H0 0:2α1=α2+α3H0 0:α1=α2+α32α1α2α3

H0 0:solβ=0 0sol=(0 0,sol1,sol2,...,solk)q=1

F=[solβ^][sol(XX)-sol]-1solβ^SSmi/ /k(norte-1).

H0 0:α1=α2=...=αksolβ=0 0

sol=[sol1sol2solk]
solyosolj=0 0H0 0:solβ=0 0F=SSHrango(sol)SSEk(norte-1)SSH=[solβ^][sol(XX)-1sol]-1solβ^

Ejemplo 3

k=4 4H0 0:α1=α2=α3=α4 4,

H0 0:[α1-α2α1-α3α1-α4 4]=[0 00 00 0]

H0 0:solβ=0 0

H0 0:[0 01-1-0 0-0 00 01-0 0-1-0 00 01-0 0-1-1]sol,nuestra matriz de contraste[μα1α2α3α4 4]=[0 00 00 0]

Entonces, vemos que las tres filas de nuestra matriz de contraste están definidas por los coeficientes de los contrastes de interés. Y cada columna da el nivel de factor que estamos usando en nuestra comparación.


Casi todo lo que he escrito fue tomado / copiado (descaradamente) de Rencher & Schaalje, "Modelos lineales en estadística", capítulos 8 y 13 (ejemplos, redacción de teoremas, algunas interpretaciones), pero otras cosas como el término "matriz de contraste "(que, de hecho, no aparece en este libro) y su definición dada aquí fue la mía.


Relacionar la matriz de contraste de OP con mi respuesta

Una de las matrices de OP (que también se puede encontrar en este manual ) es la siguiente:

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

[y11y21y31y41]=[μμμμ]+[una1una2una3una4 4]+[ε11ε21ε31ε41]

[y11y21y31y41]=[110 00 00 010 010 00 010 00 010 010 00 00 01]X[μuna1una2una3una4 4]β+[ε11ε21ε31ε41]

una1XX~

[1-10 00 00 00 0-110 00 00 0-10 010 00 0-10 00 01]

[0 00 00 010 00 00 010 00 00 01]

De esta manera, la matriz contr.treatment (4) nos dice que están comparando los factores 2, 3 y 4 con el factor 1, y comparando el factor 1 con la constante (esto es mi comprensión de lo anterior).

sol

[0 0-110 00 00 0-10 010 00 0-10 00 01]

H0 0:solβ=0 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

Y las estimaciones son las mismas.


Relacionando la respuesta de @ttnphns a la mía.

j=1

yyoj=μ+unayo+εyoj,para yo=1,2,3

H0 0:una1=una2=una3H0 0:una1-una3=una2-una3=0 0una3 como nuestro grupo / factor de referencia.

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

[y11y21y31]=[110 00 010 010 010 00 01]X[μuna1una2una3]β+[ε11ε21ε31]

XX~

X~=[0 010 0-10 00 01-110 00 0-1]

LX~β

[0 010 0-10 00 01-110 00 0-1][μuna1una2una3]=[una1-una3una2-una3μ+una3]

C1β=una1-una3C2β=una2-una3C3β=μ+una3 .

H0 0:Cyoβ=0 0 , vemos a partir de lo anterior que estamos comparando nuestra constante con el coeficiente para el grupo de referencia (a_3); el coeficiente del grupo1 al coeficiente del grupo3; y el coeficiente del grupo2 al grupo3. O, como dijo @ttnphns: "Vemos inmediatamente, siguiendo los coeficientes, que la constante estimada será igual a la media Y en el grupo de referencia; ese parámetro b1 (es decir, de la variable ficticia A1) será igual a la diferencia: media Y en el grupo1 menos Y media en el grupo 3; y el parámetro b2 es la diferencia: media en el grupo 2 menos media en el grupo 3

C1C2sol

sol=[0 010 0-10 00 01-1]

H0 0:solβ=0 0

Ejemplo

Utilizaremos los mismos datos que el "ejemplo de contraste definido por el usuario" de @ttnphns (me gustaría mencionar que la teoría que he escrito aquí requiere algunas modificaciones para considerar modelos con interacciones, por eso elegí este ejemplo. Sin embargo , las definiciones de contrastes y, lo que yo llamo, matriz de contraste siguen siendo las mismas).

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

Entonces, tenemos los mismos resultados.


Conclusión

Me parece que no hay un concepto que defina qué es una matriz de contraste.

sol

solsol

sol


por favor no restrinja esta respuesta solo a anova si es posible. @Amoeba agregó la etiqueta [anova] cuando respondiste mi pregunta, pero no quiero que la respuesta se limite solo a anova.
Curioso

Muchas gracias por una gran actualización. Eliminé algunos de mis comentarios anteriores que ya estaban obsoletos (puede eliminar algunos de los suyos, por ejemplo, el primero). Sin embargo, a estas alturas está claro para mí que la "matriz de contraste" en su sentido (y el de Monahan) es algo completamente diferente de la "matriz de contraste" en el sentido en que se usa en este manual de R y también en la pregunta original aquí (lo que ttnphns llama C-matriz). Creo que tendría sentido si haces una nota en alguna parte de tu respuesta sobre esta diferencia.
ameba dice Reinstate Monica

yojyyojunayoX

yojμαyoμ+αyoμαyoX

Gracias por esta respuesta, pero probablemente nunca podré ni tendré tiempo para entenderla. Y estudié matemáticas :-) Esperaba una definición muy simple como respuesta :-)
Curioso el

7

"Matriz de contraste" no es un término estándar en la literatura estadística. Puede tener [al menos] dos relacionados por significados distintos:

  1. Una matriz que especifica una hipótesis nula particular en una regresión ANOVA (no relacionada con el esquema de codificación), donde cada fila es un contraste . Este no es un uso estándar del término. Utilicé la búsqueda de texto completo en Christensen Plane Respuestas a preguntas complejas , Rutherford Introduciendo ANOVA y ANCOVA; Enfoque GLM y modelos lineales Rencher & Schaalje en estadística . Todos hablan mucho de "contrastes" pero nunca mencionan el término "matriz de contraste". Sin embargo, como encontró @Gus_est, este término se usa en A Primer on Monaar 's Linear Models .

  2. Una matriz que especifica el esquema de codificación para la matriz de diseño en una regresión ANOVA. Así es como se usa el término "matriz de contraste" en la comunidad R (consulte, por ejemplo, este manual o esta página de ayuda ).

La respuesta de @Gus_est explora el primer significado. La respuesta de @ttnphns explora el segundo significado (lo llama "matriz de codificación de contraste" y también analiza "matriz de coeficientes de contraste", que es un término estándar en la literatura de SPSS).


Entiendo que estaba preguntando sobre el significado # 2, así que aquí va la definición:

k×kCkXmetroyoXmetroj=Cyoj

Ccontr.treatment(4)C


Estoy planeando extender esta respuesta para hacer un comentario extendido sobre cómo las respuestas de @ttnphns y @Gus_est encajan.


The answer by @Gus_est explores the first meaning. The answer by @ttnphns explores the second meaning.Yo protesto (Y me sorprende escuchar, después de que ambos tuvimos una larga conversación sobre las definiciones en los comentarios para responder). Invité a dos términos: matriz de coeficientes de contraste (donde las filas son los contrastes, la combinación lineal de medias), también conocida como matriz L, y matriz de esquema de codificación de contraste , también conocida como matriz C. Ambos están relacionados, discutí ambos.
ttnphns

(cont.) La matriz de coeficiente de contraste L es un término estándar en ANOVA / Modelo lineal general, utilizado en textos y en documentos SPSS, por ejemplo . Los esquemas de codificación se ven aquí .
ttnphns

You were asking about meaning #2En realidad, no estamos seguros de qué significado del término implicaba el OP. El OP mostró algunos ejemplos de esquemas de codificación de contraste, no necesariamente significa que no estaba interesado en las matrices L.
ttnphns

1
Estoy feliz de que ahora hablemos el mismo idioma. Parece que sí, al menos. Sería genial para todos, especialmente para un lector visitante, si logras tu respuesta, mostrando cómo los informes de Gus y ttnphns se convierten en el mismo resultado. Si quieres lograrlo.
ttnphns

1
(cont.) Por supuesto, la matriz L en ambos "enfoques" es la misma (y no se necesita una matriz G misteriosa). Demuestre que dos caminos equivalentes (L es arbitrario, X son tontos): L -> XC -> regression -> resulty X -> [regression -> adjusting to test for L] -> resultdeje el mismo resultado. El segundo camino es cómo lo hará un programa ANOVA (la parte entre corchetes []); El primer camino es una demostración didáctica de cómo se pueden resolver los contrastes a través del programa de regresión.
ttnphns

3

Un contraste compara dos grupos al comparar su diferencia con cero. En una matriz de contraste, las filas son los contrastes y deben agregarse a cero, las columnas son los grupos. Por ejemplo:

Digamos que tiene 4 grupos A, B, C, D que desea comparar, entonces la matriz de contraste sería:

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

Parafraseando desde la comprensión de la experimentación industrial :

Si hay un grupo de k objetos para comparar, con k promedios de subgrupos, se define un contraste en este conjunto de k objetos por cualquier conjunto de k coeficientes, [c1, c2, c3, ... cj, ..., ck ] esa suma a cero.

Deje que C sea un contraste entonces,

C=C1μ1+C2μ2+...Cjμj+...Ckμk

C=j=1kCjμj

j=1kCj=0 0

Los subgrupos a los que se les asigna un coeficiente de cero se excluirán de la comparación. (*)

Son los signos de los coeficientes los que realmente definen la comparación, no los valores elegidos. Los valores absolutos de los coeficientes pueden ser cualquier cosa siempre que la suma de los coeficientes sea cero.

(*) Cada software estadístico tiene una forma diferente de indicar qué subgrupos se excluirán / incluirán.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.