이러한 사용자 정의 대비를 해석하는 방법은 무엇입니까?


10

사용자 정의 대비로 (일종 당) 일원 분산 분석을 수행하고 있습니다.

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

여기서 강도 0.5를 5와 5, 5를 12.5와 비교합니다. 이것들은 내가 작업중 인 데이터입니다.

여기에 이미지 설명을 입력하십시오

다음과 같은 결과

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는 "niphargus"의 전체 평균입니다. intensity1에서 나는 강도 0.5에 대한 수단과 5를 비교하고 있습니다.

이 권리를 이해하면, 강도 1의 계수 2.2는 강도 레벨 0.5와 5의 평균 차이의 절반이어야합니다. 그러나 내 손 계산은 요약과 일치하지 않습니다. 내가 뭘 잘못하고 있나?

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 

추정하는 데 사용한 R의 lm () 함수를 제공 할 수 있습니까? 대비 기능을 정확히 어떻게 사용 했습니까?
Philippe

btw geom_points(position=position_dodge(width=0.75))는 플롯의 점이 상자와 일치하지 않는 방식을 수정합니다.
비행

내 질문 이후 @flies가 소개되었습니다 geom_jitter. 이는 지터가하는 모든 geom_point () 매개 변수의 바로 가기입니다.
Roman Luštrik

나는 거기에 불안 함을 느끼지 못했다. 않는 geom_jitter(position_dodge)일을? geom_points(position_jitterdodge)닷지와 함께 상자 그림에 점을 추가 하는 데 사용 했습니다.
파리

@flies geom_jitter 여기에 대한 문서를 참조 하십시오 . 위의 답변 이후 내 경험에 따르면 상자 그림을 사용할 필요가 없습니다. 이제까지. 점이 많으면 상자 그림보다 점의 밀도가 매우 미세한 바이올린 플롯을 사용합니다. 많은 점을 표시하거나 밀도가 편리하지 않을 때 상자 그림이 다시 만들어졌습니다. 아마도 우리는이 (장애인) 시각화를 떨어 뜨릴 생각을 시작할 때입니다.
Roman Luštrik

답변:


10

대비에 대해 지정한 행렬은 원칙적으로 정확합니다. 적절한 대비 행렬 로 변환하려면 원본 행렬의 일반화 된 역을 계산해야합니다.

M매트릭스 인 경우 :

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 

이제 다음을 사용하여 일반화 역을 계산하고 다음을 사용 ginv하여 결과를 바꿉니다 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

결과는 @Greg Snow와 동일합니다. 이 매트릭스를 분석에 사용하십시오.

수동으로 수행하는 것보다 훨씬 쉬운 방법입니다.


슬라이딩 차이 매트릭스 (일명 반복되는 대비 ) 를 생성하는 훨씬 쉬운 방법이 있습니다. 이는 기능 contr.sdif및 요인 수준의 수를 매개 변수로 사용하여 수행 할 수 있습니다 . 예와 같이 5 가지 요인 수준이있는 경우 :

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

4

상단의 행렬이 더미 변수를 인코딩하는 방법 ( R 의 C또는 contrast함수에 전달하는 것) 인 경우 첫 번째 수준을 다른 수준과 비교합니다 (실제로 1 번째 0.8 배의 0.2 배에서 다른 사람의 합).

두 번째 항은 첫 번째 2 수준을 마지막 3과 비교합니다. 세 번째 항은 첫 번째 3 수준을 마지막 2와 비교하고 4 번째는 첫 번째 4 수준을 마지막 것과 비교합니다.

설명하는 비교 (각 쌍을 비교)를 수행하려는 경우 원하는 더미 변수 인코딩은 다음과 같습니다.

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

aov()대신에 일반화 된이 inverese 행렬을 사용해야 lm()합니까? 여러 개의 자습서를 읽었으므로 대비 행렬 aov()이 로마자가 제공 한 것과 동일한 방식으로 구성 되어 있기 때문에 묻습니다 . 예 : cran.r-project.org/doc/contrib/Vikneswaran-ED_companion.pdf의
crsh

2
aov함수는 함수를 호출하여 lm주 계산을 수행하므로 대비 행렬과 같은 것이 두 가지 모두에 동일한 영향을 미칩니다.
Greg Snow
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.