그룹화 된 쌍을 보여주는 표에서 Tukey HSD 사후 테스트 결과를 얻는 방법은 무엇입니까?


13

R과 함께 양방향 Anova 후 TukeyHSD 사후 테스트를 수행하여 중요한 차이로 그룹화 된 정렬 쌍을 포함하는 테이블을 얻고 싶습니다. (언어에 대해 미안하지만, 나는 여전히 통계에 익숙하지 않다.)

나는 이와 같은 것을 갖고 싶다 :

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

따라서 별이나 문자로 그룹화됩니다.

어떤 생각? 패키지 에서 함수 HSD.test()를 테스트 agricolae했지만 양방향 테이블을 처리하지 않는 것 같습니다.

답변:


22

agricolae::HSD.test함수는 정확히 그렇게하지만 상호 작용 항에 관심이 있음을 알려야 합니다. Stata 데이터 셋을 사용한 예는 다음과 같습니다.

library(foreign)
yield <- read.dta("http://www.stata-press.com/data/r12/yield.dta")
tx <- with(yield, interaction(fertilizer, irrigation))
amod <- aov(yield ~ tx, data=yield)
library(agricolae)
HSD.test(amod, "tx", group=TRUE)

결과는 다음과 같습니다.

Groups, Treatments and means
a        2.1     51.17547 
ab       4.1     50.7529 
abc      3.1     47.36229 
 bcd     1.1     45.81229 
  cd     5.1     44.55313 
   de    4.0     41.81757 
    ef   2.0     38.79482 
    ef   1.0     36.91257 
     f   3.0     36.34383 
     f   5.0     35.69507 

그것들은 다음 명령으로 얻을 수있는 것과 일치합니다 :

. webuse yield
. regress yield fertilizer##irrigation
. pwcompare fertilizer#irrigation, group mcompare(tukey)

-------------------------------------------------------
                      |                           Tukey
                      |     Margin   Std. Err.   Groups
----------------------+--------------------------------
fertilizer#irrigation |
                 1 0  |   36.91257   1.116571    AB    
                 1 1  |   45.81229   1.116571      CDE 
                 2 0  |   38.79482   1.116571    AB    
                 2 1  |   51.17547   1.116571         F
                 3 0  |   36.34383   1.116571    A     
                 3 1  |   47.36229   1.116571       DEF
                 4 0  |   41.81757   1.116571     BC   
                 4 1  |    50.7529   1.116571        EF
                 5 0  |   35.69507   1.116571    A     
                 5 1  |   44.55313   1.116571      CD  
-------------------------------------------------------
Note: Margins sharing a letter in the group label are
      not significantly different at the 5% level.

multcomp의 패키지는 ( '소형 편지 표시'를 참조 상징적 인 시각화를 제공합니다 : 비교 및 평가를 컴팩트 문자 표시에 대한 알고리즘을 의미 페어의 비교,이 표 형식으로 표시하지 않는 있지만 자세한 내용). 그러나 상자 그림을 사용하여 결과를 편리하게 표시 할 수있는 플로팅 방법이 있습니다. 프리젠 테이션 순서도 변경할 수 있으며 (옵션 decreasing=) 여러 비교를위한 더 많은 옵션이 있습니다. 이러한 기능을 확장하는 multcompView 패키지 도 있습니다.

다음은 동일한 예를 분석 한 것입니다 glht.

library(multcomp)
tuk <- glht(amod, linfct = mcp(tx = "Tukey"))
summary(tuk)          # standard display
tuk.cld <- cld(tuk)   # letter-based display
opar <- par(mai=c(1,1,1.5,1))
plot(tuk.cld)
par(opar)

동일한 문자를 공유하는 치료는 선택한 수준에서 크게 다르지 않습니다 (기본값, 5 %).

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

덧붙여서, 현재 R-Forge에서 호스팅되는 새로운 프로젝트가 있는데, 유망한 것으로 보입니다 : factorplot . 여기에는 라인 및 문자 기반 디스플레이와 모든 쌍별 비교에 대한 매트릭스 개요 (레벨 플롯을 통한)가 포함됩니다. 작업 논문은 여기에서 찾을 수 있습니다 : factorplot : GLM에서 단순 대비 표현 개선


이 철저한 답변에 감사드립니다! 몇 분이 되 자마자 다른 방법을 시도 할 것입니다. 건배!
stragu

mclcomp 패키지 함수를 시도했는데 'cld ()'함수를 사용할 때 '오류 : sapply (split_names, length) == 2 is not TRUE'오류가 발생합니다.
stragu

1
@chtfn 변수 레이블에 문제가있는 것 같습니다. 소스 코드를 간략히 살펴보면이 오류 메시지가 발생 insert_absorb()하여 치료 쌍을 추출하려고합니다. 인터랙션 용어의 코딩 레벨에 사용한 구분 기호를 변경하려고 할 수 있습니까? 실제 사례가 없으면 무슨 일이 있었는지 말하기가 어렵습니다.
chl

나는 그것을 알아 냈습니다 : 나는 내 유전자형과 치료 이름에 점이 있었고 qlht ()는 쌍 이름을 나누기 위해 점을 사용하기 때문에 놀랐습니다. 모든 도움을 주셔서 대단히 감사합니다. :)
stragu

3
나는 지금 추가 할 필요가 오늘 발견 console=TRUEHSD.test()경우 누군가가이 연결을 시도하고 어떤 결과를 볼 수 없습니다에, 표를 얻기 위해. 의 업데이트 일 수 agricolae있습니다.
stragu

2

이라는 함수입니다 TukeyHSD즉, 도움말 파일에 따라, 범위의 지정된 가족 현명한 확률 요인의 수준 수단의 차이점에 대한 신뢰 구간의 집합을 계산합니다. 간격은 Tukey의 "정직한 유의미한 차이"방법 인 스튜던트 화 된 범위 통계를 기반으로합니다. 이것이 당신이 원하는 것을합니까?

http://stat.ethz.ch/R-manual/R-patched/library/stats/html/TukeyHSD.html


당신의 응답을 주셔서 감사합니다. 예,이 기능을 시도했지만 원시 비교 목록을 제공합니다. 내가 원하는 것은 내 질문의 이미지에서 그룹화 된 것을보고 어떤 그룹이 어떤 그룹과 다른지 명확하게 볼 수 있도록하고 결국 그래프에 그룹 이름을 추가하는 것입니다 (예 : a, ab, abc, bc , c)
stragu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.