ICC(intraclass correlation) 구하기
ICC 구하는 것 조차도 이론적으로는 간단하나, 실제로 하려고 하니 쉽지 않았다.
구해보는 과정을 정리해두고 나중에 필요할 때 찾아볼 수 있도록 하자.
현재 진행하고 있는 연구의 data는
2명의 연구자가 3개의 그룹의 41명의 환자에 대해
환자 1명 당 각각 10개의 변수를 측정한 상태이다.
일정 시점이 지난 이후 다시 측정하여 Intraobservaer reliability를 구할 예정이며, 먼저 Interobserver를 구해보자.
Chat GPT에 해당 내용을 물어보았더니
대략적으로 tidyr로 data를 long formatting하고,
psych library의 ICC함수를 이용하여 ICC를 구하면 될 것 같다.
내 데이터
현재 나의 데이터 포맷은 이렇다.
ICC 함수
ICC 함수에 내 데이터를 넣으려면 함수가 읽을 수 있는 format으로 적절히 바꾸어 줘야 한다.
이런 형태가 되어야 한다.
수작업으로도 할 수 있지만, R로 잘 만져보자
결측치를 제거하고, 통계처리에 필요한 column만 취하자.
data <- na.omit(data)
View(data[c(2, 6, 12:31)])
이렇게 하면 환자 1명에 대한 wide format data가 생성되지만, 두 관측자가 측정한 변수들이 각각 column으로 존재하기 때문에 한번에 long format으로 펴기가 어렵다.
따라서 각각 관찰자가 측정한 column만 따로 뽑아서,
각각 long format으로 바꿔준 후,
이 두 long data를 합쳐주자.
data1 <- data[c(2, 6, 12:21)]
data2 <- data[c(2, 6, 22:31)]
names(data1) <- c("name", "group", "ASU", "ASR", "AAEpU", "AAEpR", "AABU", "AABR", "AAJ", "PAC", "PAM", "PAL")
names(data2) <- c("name", "group", "ASU", "ASR", "AAEpU", "AAEpR", "AABU", "AABR", "AAJ", "PAC", "PAM", "PAL")
dataLong1 <- data1 %>%
gather(key="key", value="value", ASU, ASR, AAEpU, AAEpR, AABU, AABR, AAJ, PAC, PAM, PAL)
dataLong1 <- dataLong1[order(dataLong1$name),]
dataLong2 <- data2 %>%
gather(key="key", value="value", ASU, ASR, AAEpU, AAEpR, AABU, AABR, AAJ, PAC, PAM, PAL)
dataLong2 <- dataLong2[order(dataLong2$name),]
names(dataLong1)[4] <- c("rater1")
names(dataLong2)[4] <- c("rater2")
dataLong <- dataLong1
dataLong["rater2"] <- dataLong2["rater2"]
dataLong <- dataLong[-2]
data1, 2에 관찰자 1, 2의 관측값들을 넣어준 후, 변수명을 통일하였고
gather함수를 이용하여 ASU ~ PAL 변수들을 long formatting 한 후 name 순서로 정렬하였다.
이후 dataLong 변수에 두 값들을 합쳐주었고, dataLong은 다음과 같아진다.
이를 ICC 함수에 넣어 보자.
irr 패키지의 icc함수를 이용하였다.
icc(dataLong[3:4], model=c("twoway"), type=c("agreement"))
dataLong_ <- dataLong[dataLong$key=="ASU",]
icc(dataLong_[3:4], model=c("twoway"), type=c("agreement"))
dataLong_ <- dataLong[dataLong$key=="ASR",]
icc(dataLong_[3:4], model=c("twoway"), type=c("agreement"))
예시 데이터로 시행했을 때에는 위와 같은 결과를 얻을 수 있었다.
각 변수별로도 ICC를 구할 수 있겠다.
'Career > R' 카테고리의 다른 글
R - 각종 함수, 패키지 모음 (그때 그때 업데이트) (0) | 2023.05.22 |
---|---|
Network meta-analysis (0) | 2023.01.06 |
ggplot2 #4. practice - moonBook::acs (0) | 2023.01.03 |
ggplot2 #3. Useful libraries - GGally, ggpubr, gganimate, esquisse, color packages (0) | 2023.01.02 |
ggplot2 #2. 추가 요소들 (0) | 2023.01.01 |