2017-12-15 9 views
0

lsmeans를 사용하여 여러 비교를 수정할 수있는 방법이 있는지 궁금합니다. 비교? 나는 [R lsmeans adjust multiple comparison을 발견했다. 그러나 나는 이것이 내가 필요한 것에 도착한다고 생각하지 않는다.어떻게 여러개의 비교를위한 보정을 R의 lsmeans를 사용하여 필요 이상으로 수정하지 않고 프로그램 할 수 있습니까?

기본적으로 내 데이터를 설명하는 가장 좋은 모델은 완전한 모델이므로 세 가지 요인 (연도, 강 및 성) (4 개의 강과 4 개의 다른 연도가 있음) 간의 상호 작용을 살펴 봅니다. 나는 다만 수있는 다음 (TL은 총 길이이며, 응답 변수입니다)이 lsmeans 거북이 = lsmeans (주머니쥐, 사양 = 페어 다음 TL_interact = LM (TL ~ 년 섹스, 데이터 = Walleye_alldata_nu) ~ 기간 성별, 조정 = "FDR")

그러나 이것은 496 개의 비교를 위해 수정되었습니다. 나는에 관심이 비교의 실제 수는 TL_lsmeans1of2 $ 나는 dataframe TL_lsmeans1of2_df = 요약으로이 데이터를 조작 할 수 있도록 이러한

TL_lsmeans1of2 = lsmeans(TL_interact, specs = pairwise~Year|Sex*River, adjust = "FDR") 

후 약간 변경 코드를 사용하여 요약을 사용하여 달성 될 수있다 (56) (이다

이것의 출력 샘플 TL_lsmeans2of2 = lsmeans (TL_interact, 사양 = pairw 대한 출력의 특정 행을 선택하고

Sex = F, River = Chalifour: 
contrast   estimate  SE df t.ratio p.value 
Y2002/03 - Y2015 74.1746032 18.994645 1497 3.905 0.0006 
Y2002/03 - Y2016 33.4750958 16.963837 1497 1.973 0.0730 
Y2002/03 - Y2017 45.7222222 19.604254 1497 2.332 0.0396 
Y2015 - Y2016 -40.6995074 14.468508 1497 -2.813 0.0149 
Y2015 - Y2017 -28.4523810 17.489789 1497 -1.627 0.1248 
Y2016 - Y2017  12.2471264 15.260011 1497 0.803 0.4224 

Sex = M, River = Chalifour: 
contrast   estimate  SE df t.ratio p.value 
Y2002/03 - Y2015 49.4788034 6.054656 1497 8.172 <.0001 
Y2002/03 - Y2016 36.4539394 5.893992 1497 6.185 <.0001 
Y2002/03 - Y2017 55.7266667 6.352504 1497 8.772 <.0001 
Y2015 - Y2016 -13.0248640 5.645109 1497 -2.307 0.0254 
Y2015 - Y2017  6.2478632 6.122289 1497 1.021 0.3077 
Y2016 - Y2017  19.2727273 5.963447 1497 3.232 0.0019 

이고) 대조 ise ~ Year * Sex | River, adjust = "FDR")

이 두 번째 lsmeans 출력 b/c에 대해서는 내 질문과 동일한 해결책이 적용되지 않습니다. 그러나이 두 번째 lsmeans 문에서 선을 선택하고 첫 번째 lsmeans 문과 함께 56 개의 비교를합니다.

는 I는 t.ratio 및 TL_lsmeans1of2_df $ p.val.adjusted = PT (TL_lsmeans1of2_df $ t.ratio, TL_lsmeans1of2_df $ DF)을 사용하여 PT 명령을 사용하여 자유도를 사용하여 P 값을 조정하려고

그러나 결과는

Sex = F, River = Chalifour: 
contrast   estimate  SE df t.ratio p.value p.val.adjusted 
Y2002/03 - Y2015 74.1746032 18.994645 1497 3.905 0.0006 0.999950797 
Y2002/03 - Y2016 33.4750958 16.963837 1497 1.973 0.0730 0.975678658 
Y2002/03 - Y2017 45.7222222 19.604254 1497 2.332 0.0396 0.990090497 
Y2015 - Y2016 -40.6995074 14.468508 1497 -2.813 0.0149 0.002486354 
Y2015 - Y2017 -28.4523810 17.489789 1497 -1.627 0.1248 0.051995069 
Y2016 - Y2017  12.2471264 15.260011 1497 0.803 0.4224 0.788822739 

나는 56의 비교에 적절한 보정을 사용하여 새 p- 값을 얻을 할 수있는 방법에 대한 어떤 생각이 크게 감사하겠습니다 단지 엉뚱한 있습니다. 당신이 그것을 다르게 내 대조를 코딩하는 나를 위해 더 나은 생각한다면, (I는 0과 1 [https://rcompanion.org/rcompanion/h_01.html]를 사용하여이 게시물을보고, 나는 또한 기꺼이이 접근하는 방법에 대한 어떤 제안을 것입니다.

이 엘라 보울을 주셔서 감사합니다

답변

0

엄격한 프로그래밍 관점에서 보정없이 모든 명암비를 계산 한 다음 원하는 결과 만 선택하여 최종적으로 FDR을 사용하여 기저부 R에 p.adjust 함수를 사용하여 p 값을 수정할 수 있습니다.

어쨌든 통계적 관점에서 볼 때, ANOVA 프레임 워크에 있다면 레디 사후 테스트의 시간 단축은 당신의 중요한 상호 작용을 구성하는 대조의 단지 일부분입니다.

+0

p.adjust 함수는 구현하기가 쉽지만 특별히 이것을 사용하는 방법을 잘 모릅니다.내 출력 결과 (두 개의 개별 테이블)가 rbind와 제대로 결합되지 않으므로 문제가 될 수 있습니다. 따라서 총 56 개의 비교가 있거나 잘못된 비교 횟수를 기반으로 정정을 지정해야합니다. 비교 횟수를 어떻게 지정할 수 있는지 알고 있습니까? –

+0

개인적으로'lsmeans' 호출에서 가능한 paiwise 대비의 특정 부분을 어떻게 지정해야할지 모르겠습니다. 어쨌든 해결 방법을 찾지 못하면,'adjust = 'none '' 인자를 수정하지 않고'lsmeans' 출력의'$ contrasts' 테이블을 쉽게 얻어서 데이터 프레임에 넣을 수 있습니다 이 'contrast_df <- as.data.frame (summary (lsmeansoutput $ contrasts))'와 같이. 그런 다음 출력을 부분 집합하여 원하는 p.values ​​만 가져올 수 있습니다. – Antonio