# 📦 1. 필요한 패키지 설치 및 로드
if (!require("psych")) install.packages("psych")
if (!require("corrplot")) install.packages("corrplot")
library(psych)
library(corrplot)
# 📁 2. 데이터 불러오기
data1 <- read.csv("D:/data/R/your_data_file.csv", stringsAsFactors = FALSE)
# 🧮 3. 변수 설정
cognitive_vars <- c("verbalfluencytest", "bostonnamingtest", "mmse",
"wordlistlearningtest", "wordlistrecalltest",
"wordlistrecognitiontest", "constructionpraxistest",
"constructionrecalltest", "tmta", "tmtb",
"stroopword", "stroopcolor", "stroopcolorword",
"total_1", "total_2")
gait_vars <- c("loadingresponsetime", "loadingresponsegc", "midstancetime", "midstancegc",
"terminalstancetime", "terminalstancegc", "preswingtime", "preswinggc",
"swingphasetime", "swingphasesi", "firstdsp", "firstdspsi", "seconddsp",
"seconddspsi", "cadence", "cadencero", "cadencesi", "stancetimesi",
"swingtimesi", "stridetimesi", "cofsi")
# 📊 4. 상관관계 분석
cog_data <- data1[, cognitive_vars]
gait_data <- data1[, gait_vars]
correlation_matrix <- corr.test(cog_data, gait_data, method = "spearman", adjust = "none")
# 📊 5. 유의수준(p < 0.05) 필터링
cor_matrix <- correlation_matrix$r
p_matrix <- correlation_matrix$p
significant_cor <- cor_matrix
significant_cor[p_matrix > 0.05] <- NA # 유의하지 않은 상관관계 제거
# 📋 6. 유의한 상관관계 중 최대값 추출
max_corr_significant <- apply(significant_cor, 1, function(x) max(abs(x), na.rm = TRUE))
best_cognitive_significant <- names(which.max(max_corr_significant))
# 결과 출력
cat("유의미한 상관관계 기준으로 가장 관련성 높은 인지검사 항목:", best_cognitive_significant, "\n")
cat("상관계수:", max(max_corr_significant), "\n")
# 💾 7. 결과를 CSV 파일로 저장
# 전체 상관관계 결과 (유의수준과 상관계수 모두 포함)
full_result_df <- data.frame(
Cognitive_Test = rep(rownames(cor_matrix), times = ncol(cor_matrix)),
Gait_Variable = rep(colnames(cor_matrix), each = nrow(cor_matrix)),
Correlation = as.vector(cor_matrix),
P_Value = as.vector(p_matrix)
)
# 전체 결과 저장
write.csv(full_result_df, "D:/data/R/full_correlation_results_complete.csv", row.names = FALSE)
# 📊 8. 유의한 변수만 추출하여 별도 저장
significant_result_df <- subset(full_result_df, P_Value < 0.05)
# 유의한 결과 저장
write.csv(significant_result_df, "D:/data/R/significant_correlation_results.csv", row.names = FALSE)
# 📊 9. 높은 상관관계만 필터링 (|r| > 0.4로 수정)
high_correlation_df <- subset(significant_result_df, abs(Correlation) > 0.4)
# 높은 상관관계 결과 저장
write.csv(high_correlation_df, "D:/data/R/high_correlation_results.csv", row.names = FALSE)
cat("모든 인지검사와 보행변수 간의 전체 상관관계 결과가 'D:/data/R/full_correlation_results_complete.csv'에 저장되었습니다.\n")
cat("유의한 상관관계만 포함된 결과가 'D:/data/R/significant_correlation_results.csv'에 저장되었습니다.\n")
cat("상관계수 0.4 이상인 높은 상관관계만 포함된 결과가 'D:/data/R/high_correlation_results.csv'에 저장되었습니다.\n")