10 votos

¿Cómo interpretar estos contrastes personalizados?

Yo estoy haciendo un one way ANOVA (por especie) con la costumbre de contrastes.

     [,1] [,2] [,3] [,4]
0.5    -1    0    0    0
5       1   -1    0    0
12.5    0    1   -1    0
25      0    0    1   -1
50      0    0    0    1

donde puedo comparar la intensidad de 0,5 contra 5, 5 en contra 12.5 y así sucesivamente. Estos son los datos que estoy trabajando

enter image description here

con los siguientes resultados

Generalized least squares fit by REML
  Model: dark ~ intensity 
  Data: skofijski.diurnal[skofijski.diurnal$species == "niphargus", ] 
       AIC      BIC    logLik
  63.41333 67.66163 -25.70667

Coefficients:
            Value Std.Error  t-value p-value
(Intercept) 16.95 0.2140872 79.17334  0.0000
intensity1   2.20 0.4281744  5.13809  0.0001
intensity2   1.40 0.5244044  2.66970  0.0175
intensity3   2.10 0.5244044  4.00454  0.0011
intensity4   1.80 0.4281744  4.20389  0.0008

 Correlation: 
           (Intr) intns1 intns2 intns3
intensity1 0.000                      
intensity2 0.000  0.612               
intensity3 0.000  0.408  0.667        
intensity4 0.000  0.250  0.408  0.612 

Standardized residuals:
       Min         Q1        Med         Q3        Max 
-2.3500484 -0.7833495  0.2611165  0.7833495  1.3055824 

Residual standard error: 0.9574271 
Degrees of freedom: 20 total; 15 residual

16.95 es la media global para "niphargus". En intensity1, estoy comparando medio de la intensidad de 0,5 contra 5.

Si he entendido este derecho, el coeficiente para la intensity1 de 2.2 debe ser la mitad de la diferencia entre las medias de los niveles de intensidad 0,5 y 5. Sin embargo, mi mano cálculos no coinciden con las del resumen. ¿Alguien puede chip en lo que estoy haciendo mal?

ce1 <- skofijski.diurnal$intensity
    levels(ce1) <- c("0.5", "5", "0", "0", "0")
    ce1 <- as.factor(as.character(ce1))
    tapply(skofijski.diurnal$dark, ce1, mean)
       0    0.5      5 
  14.500 11.875 13.000 
diff(tapply(skofijski.diurnal$dark, ce1, mean))/2
      0.5       5 
  -1.3125  0.5625 

10voto

Sven Hohenstein Puntos 3188

La matriz especificada por el contraste es correcto en principio. Para convertirlo en un adecuado contraste de la matriz, es necesario calcular la inversa generalizada de la matriz original.

Si M es su matriz:

M

#     [,1] [,2] [,3] [,4]
#0.5    -1    0    0    0
#5       1   -1    0    0
#12.5    0    1   -1    0
#25      0    0    1   -1
#50      0    0    0    1 

Ahora, para calcular la inversa generalizada uso de ginv y transponer el resultado de t:

library(MASS)
t(ginv(M))

#     [,1] [,2] [,3] [,4]
#[1,] -0.8 -0.6 -0.4 -0.2
#[2,]  0.2 -0.6 -0.4 -0.2
#[3,]  0.2  0.4 -0.4 -0.2
#[4,]  0.2  0.4  0.6 -0.2
#[5,]  0.2  0.4  0.6  0.8

El resultado es idéntica a la de @Greg Nieve. El uso de esta matriz, para su análisis.

Esta es una manera mucho más fácil que hacerlo manualmente.


Hay una manera más fácil de generar una matriz de deslizamiento diferencias (un.k.una. repite los contrastes). Esto se puede hacer con la función contr.sdif y el número de niveles del factor como un parámetro. Si usted tiene cinco niveles del factor, como en el ejemplo:

library(MASS)
contr.sdif(5)

#   2-1  3-2  4-3  5-4
#1 -0.8 -0.6 -0.4 -0.2
#2  0.2 -0.6 -0.4 -0.2
#3  0.2  0.4 -0.4 -0.2
#4  0.2  0.4  0.6 -0.2
#5  0.2  0.4  0.6  0.8

4voto

Eero Puntos 1612

Si la matriz en la parte superior es la forma de codificación de las variables ficticias (lo que se pasa a la C o contrast función en R), la primera es la comparación de la 1er nivel a los otros (en realidad 0.8 veces el 1er resta de 0,2 veces la suma de los otros).

El segundo término se compara el 1 de 2 niveles a los 3 últimos. La 3ª compara el 1 de 3 niveles para la last2 y el 4 se compara el 1 de 4 niveles a la última.

Si usted quiere hacer las comparaciones que usted describe (comparar cada par), entonces la variable ficticia de codificación que desea es:

      [,1] [,2] [,3] [,4]
[1,] -0.8 -0.6 -0.4 -0.2
[2,]  0.2 -0.6 -0.4 -0.2
[3,]  0.2  0.4 -0.4 -0.2
[4,]  0.2  0.4  0.6 -0.2
[5,]  0.2  0.4  0.6  0.8

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X