Cochran Amitage trend test

2024. 1. 29. 18:15Statistics/R

trend 경향을 알아보려면 뭔가 순차적인 기준이 있어야한다.

시간의 흐름이라던가 .....

 

그룹이 어떤 순서(순위)가 있을 때, 다음 그룹으로 갈 때 해당되는 개체의 비율에 대해서도

trend 분석을 할 수 있다.

 

그 분석이 Cochran-Amitage trend test 이다.

 


해당 포스팅은 R코드들을 개인적으로 정리하고자 작성하였습니다.

※ 혹시 잘못된 곳이 있거나 의견있으시면 알려주세요!


예를 들어 그런 것이다.

 

조금먹고 적당히먹고 많이먹는 그룹간 비만인 사람의 비율 같은?

먹는 양이 늘어날 수록 비만과 연관성이 있을까? 같은 2xr 의 검정을 하는 것이다.

 

 

먼저 가설 체크!

$$H_0 : var.R이 1에서 5로 변함에 따라 var.C == 1의 비율이 증가 또는 감소하는 경향성? 연관성이 없다.$$

$$H_1 : var.R이 1에서 5로 변함에 따라 var.C == 1의 비율이 증가 또는 감소하는 경향성? 연관성이 있다..$$

 

$$H_0 : 밥을 많이 먹을 수록 비만인 사람의 비율이 증가하거나 줄어들지 않는다. (식사량과 비만의 연관성이 없다.)$$

$$H_1 : 밥을 많이 먹을 수록 비만인 사람의 비율이 증가하거나 줄어든다.$$

 

 

R 에서는 어떻게 하는 가?!?!?!

1. 두 변수에 대한 빈도표 확인

table(var.row, var.col)

1번에서 5번 그룹으로 가는 것이 var.R과 연관성이 있는지 확인 하는 것이다.

  1 2 3 4 5
0 9 38 33 17 6
1 1 31 23 20 5
total 10 69 56 37 11

 

 

2. prop.trend.test 함수를 사용한다.

prop.trend.test(var.R 1인 개체 수, var.C 속하는 전체 개체 수)

prop.trend.test(table(var.R, var.C)[2,], colSums(table(var.R, var.C)))

 

여기서 주의할 점!

 

가끔 그룹이 str로 되어 있는 경우가 있다.

예를 들어 small/ regular/ large 이 세 그룹에 대한 경향성을 보일 때,

그냥 이 변수를 factor로 주면 순서가 알파벳 순서가 된다.

지금은 역방향이라 그렇게 상관 없어보이지만 

뒤죽박죽이 될 수 도 있다. 

 

이럴 때 해결책!

**1. 숫자로 변경해준다.

var.R <- as.factor(ifelse(var.R == "small", 1,
						ifelse(var.R == "regular", 2, 3)))

 

**2. level을 준다.

factor(var.R, levels = c("small", "regular", "large"))

 이렇게 level 을 주면 순서가 지정이 된다.

 

prop.trend.test를 돌리면

p value 0.1339로 여기서 var.R과 var.C의 연관성이 통계적으로 유의하지 않음을 확인하였다.

 

 

 

728x90

'Statistics > R' 카테고리의 다른 글

Pearson correlation coefficient  (2) 2024.01.29
MatchIt :: matchit  (4) 2024.01.25
ggplot2:: option  (0) 2023.09.12
ggplot2 :: pie chart  (0) 2023.08.19
R :: openxlsx package  (0) 2023.02.16