ggplot2에서 boxplot에 다중 비교 결과를 기입합니다

8927 단어 Rggplotanovatech
조사해 보았지만 나오지 않아서 총결산을 하였다.

하고 싶은 거.


나는 이런 boxplot을 하고 싶다.

box에 적힌 자모는 다중 비교 검정의 결과를 나타낸다.

다중 비교 검정 결과...?

  • abc 응용의 예
    예를 들어 5개 그룹(Group 1~5)이 있을 때 ANOVA를 실행한 후 각 그룹 간의 의도적인 차이를 보면
    그룹1과 그룹2, 그룹2와 4는 각각 현저한 차이가 없다.
    그때는 다음과 같이 써야 한다.
    Group1 a
    Group2 ab
    Group3 c
    Group4 b
    Group5 d
  • 같은 자모가 차인 집단 사이에는 뚜렷한 차이가 없다는 것을 보여준다.
    자세한 내용은 아래 사이트를 참조하십시오.
    표에 다중 비교 결과만 기록하면 그 abc...의 분배 방법 |매일 독상-매일 헛수고.

    abc 동작이 힘들어요...


    규칙만 알면 abc를 움직여서 plot에 적당히 쓰면 되지 않을까요?
    확실히 위 사이트처럼 작업을 하면 수동으로 이동할 수 있지만 수량이 늘어나면 작업량도 늘어나 머리가 혼란스러워진다.
    아, 그게, A와 B는 의미가 있는 거니까 C와... E는 의미가 있는 거잖아...
    이 일은 다중 비교 심의의 결과를 보고 진행해야 한다.

    이루고 싶은 일.


    그래서 이번
  • abc 자동 진동
  • 가는 김에 리트윗도 보내주세요.
    코드를 쓰다

    R을 사용한 multipp 패키지


    이 포장으로 위의 대응을 간단하게 할 수 있습니다.
    검정은 TukeyHSD를 사용했고 이번에는 아이리스의 데이터 집합을 예로 들어 실천했다.
  • ANOVA 실행 결과의 resglht에 전달
  • 그리고 다시 cld()에 던진 결과를 mltv에 저장합니다.
    library(multcomp)
    res =aov(Sepal.Length ~ Species, data=iris)
    summary(res)
    tuk = glht(res,linfct=mcp(Species="Tukey"))
    mltv = cld(tuk,decreasing=F)
    
  • 결과
  • res =aov(Sepal.Length ~ Species, data=iris)
    > summary(res)
                 Df Sum Sq Mean Sq F value Pr(>F)    
    Species       2  63.21  31.606   119.3 <2e-16 ***
    Residuals   147  38.96   0.265                   
    ---
    Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
    > tuk = glht(res,linfct=mcp(Species="Tukey"))
    > mltv = cld(tuk,decreasing=F)
    > mltv
        setosa versicolor  virginica 
           "a"        "b"        "c" 
    
    이번엔 모두 현저한 차이가 있어서 영락없는 알파벳을 차였는데 심심하네

    일단 Tukey를 걸어서 확인을 해볼게요.


    더 재미있는 데이터로 할게요.

    stat_summary () 를 사용하여 boxplot에 반영


    여기에서 얻은 결과를 boxplot에 간단하게 놓으려면 gplot 구성원의 stat_summary 함수를 사용하는 것이 가장 좋다.stat_summary 오류란과 모조에 좋은 느낌을 줄 수 있다.

    테스트


    임의의 문자열을 매개변수stat_summary로 지정합니다.
    TukeyHSD(res)
    

    지정geom = 'text'을 통해 박스의 위쪽에 표시할 수 있습니다.
    stat_summary의 행동이 확인되었으니 비교 심의 결과를 당신에게 드리겠습니다.

    R스튜디오의 View()를 사용하여 간단하게 저장 위치 지정


    방금 fun.y = max는 데이터 집합으로 대상의 벡터를 잘 추출해야 한다.
    R스튜디오의 View를 사용하면 데이터 구조를 쉽게 파악할 수 있습니다.
    Tukey multiple comparisons of means
       95% family-wise confidence level
    
    Fit: aov(formula = Sepal.Length ~ Species, data = iris)
    
    $Species
                         diff       lwr       upr p adj
    versicolor-setosa    0.930 0.6862273 1.1737727     0
    virginica-setosa     1.582 1.3382273 1.8257727     0
    virginica-versicolor 0.652 0.4082273 0.8957727     0
    

    표시된 곳에서 원하는 데이터를 확인할 수 있습니다.
    커서를 정확하게 맞추고 팝업을 누르면 코드 안에 사용할 수 있는 형식으로 주소를 삽입합니다.

    오른쪽에 얇은 버튼이 하나 있다.
    이런 식으로 복제해.
    annos = c('A','B','C')
    plot1 = 
      ggplot(data = iris, aes(x = Species, y = Sepal.Length,color = Species))+
      geom_boxplot()+
      stat_summary(geom = 'text', label =annos, fun.y = max, vjust = -1)+
      theme_classic()
    print(plot1)
    
    내용은 라벨이 있는 벡터이기 때문에 직접statsummary에게 맡길 수 있습니다.

    완성


    View(mltv)
    

    그게 다야.

    좋은 웹페이지 즐겨찾기