2013-06-26 1 views
2

RCBD 설계에서 얻은 데이터 세트가 있습니다. 상기 데이터는 상추의 환경 적 요인 (즉, 환경 적 요인에 기인 한 생리적 인 잎 질환)의 발병률이다.RCBD 실험을 분석하기 위해 R을 사용하여 friedman.test.with.post.hoc 함수를 사용하여 프리드먼의 비모수 테스트 문제를 해결하십시오.

나의 실험은 Recombinant Inbred Line (RIL) 집단으로부터 3 개의 블록과 92 개의 상추 품종으로 구성되었다.

저의 목표는 데이터를 분석하여 다른 품종과 비교하여 통계적으로 다른 팁트런 발생률을 가진 품종을 찾는 것입니다.

내 데이터가 변환 후에도 균등성에 대한 ANOVA 가정을 충족하지 않습니다. 그러므로, 다음으로는 비 파라 메트릭 테스트를 사용하는 방법이 있습니다. Friedman의 테스트를 사용하여 데이터를 분석 할 수 있음을 발견했습니다. 이 테스트를 수행하려면 다음과 같은 웹 사이트에서 내가 편리하게 기능을 발견 다른 사람에서 통계적 차이가있는 품종 테스트 : 나는 문제가 실행하는 데 안내에 따라 데이터를 포맷 한 후,

http://www.r-statistics.com/2010/02/post-hoc-analysis-for-friedmans-test-r-code/

단을 같은 함수는 아래와 :

포맷하기에게 DATA

> tip.data.2011 = read.csv("Salinas_2011_tipburn_analysis.csv", header = TRUE) 

    > head(tip.data.2011) 
     RIL Block Tipburn_percentage 
    1 110  1    0.0 
    2 110  2    0.0 
    3 110  3    0.0 
    4 111  1    37.5 
    5 111  2    12.5 
    6 111  3    37.5 

    > tip.data.2011.formated = data.frame( 
    + Tipburn = tip.data.2011$Tipburn_percentage, 
    +  RIL = factor(rep(subset(tip.data.2011, Block == 1)[,1], rep(3, 92))), 
    + Block = factor(rep(1:3, 92)) 
    +) 

    > head(tip.data.2011.formated) 
     Tipburn RIL Block 
    1  0.0 110  1 
    2  0.0 110  2 
    3  0.0 110  3 
    4 37.5 111  1 
    5 12.5 111  2 
    6 37.5 111  3 

을 FUNCTION

01,235,164을 실행
> friedman.test.with.post.hoc(Tipburn ~ RIL | Block, tip.data.2011.formated) 
    Error in mvt(lower = lower, upper = upper, df = 0, corr = corr, delta = mean, : 
     only dimensions 1 <= n <= 1000 allowed 

내가 오류 메시지 :

'MVT에서 오류 (저급 = 상하 = 상부, DF = 0 CORR = CORR = 평균 델타 만 사이즈 = 1000 1 < = N < 허용'

이 오류 메시지는 무엇을 의미합니까?

해결 방법에 대한 의견이 있으십니까?

@에 DWIN의 요청을 참조 : 작업이 (데이터 세트는 위에서 언급 한 웹 사이트에 나와있다) 수행하는 데이터 세트와 위의 그림과 같이

> with(tip.data.2011.formated, tapply(Tipburn, list(RIL, Block), length)) 
     1 2 3 
    110 1 1 1 
    111 1 1 1 
    112 1 1 1 
    113 1 1 1 
    114 1 1 1 
    115 1 1 1 
    116 1 1 1 
    117 1 1 1 
    118 1 1 1 
    119 1 1 1 
    120 1 1 1 ... etc. 
    198 1 1 1 
    199 1 1 1 
    200 1 1 1 
    SAL 1 1 1 

    > str(tip.data.2011.formated) 
    'data.frame': 276 obs. of 3 variables: 
    $ Tipburn: num 0 0 0 37.5 12.5 37.5 0 0 12.5 75 ... 
    $ RIL : Factor w/ 92 levels "110","111","112",..: 1 1 1 2 2 2 3 3 3 4 ... 
    $ Block : Factor w/ 3 levels "1","2","3": 1 2 3 1 2 3 1 2 3 1 ... 

나는 동일한 절차를했다.

> WineTasting <- data.frame(
    +  Taste = c(5.40, 5.50, 5.55, 
    +    5.85, 5.70, 5.75, 
    +    5.20, 5.60, 5.50, 
    +    5.55, 5.50, 5.40, 
    +    5.90, 5.85, 5.70, 
    +    5.45, 5.55, 5.60, 
    +    5.40, 5.40, 5.35, 
    +    5.45, 5.50, 5.35, 
    +    5.25, 5.15, 5.00, 
    +    5.85, 5.80, 5.70, 
    +    5.25, 5.20, 5.10, 
    +    5.65, 5.55, 5.45, 
    +    5.60, 5.35, 5.45, 
    +    5.05, 5.00, 4.95, 
    +    5.50, 5.50, 5.40, 
    +    5.45, 5.55, 5.50, 
    +    5.55, 5.55, 5.35, 
    +    5.45, 5.50, 5.55, 
    +    5.50, 5.45, 5.25, 
    +    5.65, 5.60, 5.40, 
    +    5.70, 5.65, 5.55, 
    +    6.30, 6.30, 6.25), 
    +  Wine = factor(rep(c("Wine A", "Wine B", "Wine C"), 22)), 
    +  Taster = factor(rep(1:22, rep(3, 22)))) 

    > with(WineTasting, tapply(Taste, list(Wine, Taster), length)) 
      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 
    Wine A 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
    Wine B 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
    Wine C 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 

    > str(WineTasting) 
    'data.frame': 66 obs. of 3 variables: 
    $ Taste : num 5.4 5.5 5.55 5.85 5.7 5.75 5.2 5.6 5.5 5.55 ... 
    $ Wine : Factor w/ 3 levels "Wine A","Wine B",..: 1 2 3 1 2 3 1 2 3 1 ... 
    $ Taster: Factor w/ 22 levels "1","2","3","4",..: 1 1 1 2 2 2 3 3 3 4 ... 

내 데이터는 실행되는 예제 데이터 집합과 동일한 방식으로 나타납니다. 나는 팁버트 (tipburn)에 대한 1 회의 많은 관찰을 갖는 것이 문제라고 생각하지 않는다.

는 (필자는 CrossValidated 교환의 의견 인상적이었다.) 당신이 탈 Galili 한의 코드와 함께 오류가 발생하는 이유를 질문은,

+4

OP는 http://stats.stackexchange.com/questions/62686/troubleshoot-a-friedmans-non-parametric-test-using-friedman-test-with-post-hoc에서 재 게시했습니다. – Aaron

+0

이것은 이제 폐쇄되었습니다. 그것이 "프로그래밍에 관한 것이 아니기 때문에 CrossValidated.com에서 오프 토픽으로"프로그래밍에 관한 것이 아니기 때문에 "SO에 대해"오프 프로그래밍 "에 관한 주제로 다루었 다. 미구엘이 배상을 요청할 수있는 일종의 stackexchange 항소 법원이 있습니까?) –

+0

다행스럽게도 여기를 다시 볼 수 있습니다. 이것은 그것을위한 적당한 장소처럼 보입니다. – Aaron

답변

2

미구엘을 주셔서 감사합니다. 해당 웹 페이지에서 코드를 다운로드하면 오류 메시지가 해당 함수 내에서 throw되지 않기 때문에 의존하는 패키지 중 하나에서 오류 메시지가 나옵니다. 오류를 던지는 함수는 mvt이지만 최소한 그 패키지의 최신 버전을 볼 때 코드에 언급 된 패키지에는 해당 함수가 없습니다. (그것이 multcomp에 의해 첨부되는 mvtnorm에 밝혀진다.) 오류를 던지고있다 mvt의 코드는

if (n > 1000) 
    stop("only dimensions 1 <= n <= 1000 allowed") 

그래서 내가 multcomp의 저자 및 확장 mvtnorm에 의해 예상보다 문제가 더 큰 것으로 생각합니다. 당신이 볼 수 있습니다 : 그 진단의 질문에 대한 결과를 감안할 때

with(tip.data.2011.formated, 
       tapply(Tipburn, list(RIL, Block), 
            length))) 

, 난 당신이 잘못된 RIL 또는 Block 변수가 같은데요. Tipburn에 대해 하나의 값을 가진 많은 수의 카테고리가 있습니다. 또한 이번에 게시하여 질문을 수정하십시오 ... 결과는 str(tip.data.2011.formated)입니다.

범주 수가 적은 요소를 성공시킨 코드에서 "와인"이 "주 효과"변수였습니다. 당신의 설정에서 92 레벨을 갖는 요인은 "주 효과"변수로 주어졌고, 작은 수의 범주를 가진 변수는 층화 변수로 주어졌습니다. 나는 당신이 테스트되고있는 특정 가설을 표현한 적이 없다고 생각합니다. 특히 어떤 의미가 "블록"값에 첨부되어 있는지, 그래서 나는 그 질문이 무엇인지 확신하지 못합니다. 이러한 변수의 순서를 반대로하는 것이 의미가있는 경우, 즉 블록 차이가 중요한지 여부가 질문 인 경우 수식을 사용해야합니다. Tipburn ~ Block | RIL

이 데이터 세트를 원시 데이터에서 처리 된 버전이며 원본 카운트 데이터에 glm을 사용한 분석이 더 적합 할 수 있습니다. 비율을 분석하면 이것이 "카운트 데이터"로 시작되었다는 것을 알 수 있습니다.

+0

'RIL'또는 '블록'변수의 형식이 잘못되었습니다. – MmG55

+0

나는 'mal-positioned'와 같이 너무 많이 변형되지 않는다고 생각하고있다. 문제가 일부 환경 요인의 영향 (블록 간 차이)에 차이가 있는지 여부는 블록이 "주 효과"변수가되어야합니다. –

관련 문제