안녕하세요,
factor에 대한 상관 관계 분석에 대한 포스팅이에요.
상관 관계 분석은 다양한 분야에 이용되곤 하는데요,
저는 주로 마이크로바이옴의 박테리아와 다른 환경인자 사이에서 분석을 하곤 합니다.
RStudio의 이용 패키지는 "Hmisc"을 이용해요.
아래 Step에 따라 상관 관계 분석을 해봐요.
1. 패키지 설치
install.packages("Hmisc")
install.packages("xlsx")
2. 패키지 실행
library(Hmisc)
library(xlsx)
3. 계산 Matrix 설정
flattenCorrMatrix <- function(cormat, pmat) {
ut <- upper.tri(cormat)
data.frame(
row = rownames(cormat)[row(cormat)[ut]],
column = rownames(cormat)[col(cormat)[ut]],
cor =(cormat)[ut],
p = pmat[ut]
)
}
4. 데이터 불러오기
test <- read.delim("clipboard", row.names=1) #엑셀에서 input format Ctrl+C
test <- t(test)
5. Correlation 계산
rcorr1<-rcorr(as.matrix(test), type=c("spearman"))
datacorS1 <- flattenCorrMatrix(rcorr1$r, rcorr1$P)
datacorS1$p_BH = p.adjust(datacorS1$p, method = "BH")
datacorS1$ABS = abs(datacorS1$cor)
datacorS2 <- subset(datacorS1, p_BH<0.0001)
datacorS3 <- subset(datacorS2, ABS>0.8)
여기서 method는 "spearman" 또는 "pearson"으로 분석할 수 있어요.
두 개의 correlation 분석 equation은 서로 다른 방법으로 계산하는 거에요.
간단히 원리는 spearman이 rank-based로 된 것이며,
가장 높은 value를 1등으로 잡고 그 다음을 2등 이런 식으로 계산하는 방식이에요.
반대로, pearson의 경우, raw data의 value 그 자체로 계산을 해요.
예를들어, A종의 value가 10이면, 10 그대로 이용해요.
즉, normalize를 유무로 쉽게 이해하시면 될 것 같아요.
6. Output file 생성
write.xlsx2(datacorS3, "E:/test.xlsx", sheetName = "Sheet1", col.name = T, row.names = F, append = F)
![](https://blog.kakaocdn.net/dn/Bx7xI/btrRb7It1a1/AReLPq9rUQcDGXXW613pD1/img.png)
번외)
![](https://blog.kakaocdn.net/dn/ddF4kg/btrRb7n5Hyc/k7IQcpDjKp6Fn6ekKav401/img.png)
![](https://blog.kakaocdn.net/dn/4DyRr/btrRa3lWxaN/X05IJx4QKynza07CzdWO01/img.png)
'R > R_Usage [KOR.]' 카테고리의 다른 글
[R.라딘] 미생물 군집 분석 [Alpha-diversity] in Rstudio (2) | 2022.11.30 |
---|---|
R을 이용한 미생물군집 기능분석 [Tax4Fun2] (2) | 2022.11.22 |
R을 이용한 Correlation Plot "Corrplot" 시각화 (0) | 2022.11.14 |
R을 이용한 Heatmap 시각화 (0) | 2022.11.08 |
Rstudio의 working directory 디폴트 설정 (0) | 2022.11.07 |