|
# 📦 필요한 패키지 설치 및 로드
if (!require("car")) install.packages("car", dependencies = TRUE)
library(car)
# 📁 데이터 불러오기
data_인지제외_ <- read.csv("D:/data/R/20250223r.csv", stringsAsFactors = TRUE)
# ✅ 📊 변수 정의: group과 condition을 범주형으로 변환
data_인지제외_$group <- factor(data_인지제외_$group, levels = c(1, 2), labels = c("정상군", "인지손상군"))
data_인지제외_$condition <- factor(data_인지제외_$condition, levels = c(1, 2, 3), labels = c("평지보행", "물컵들고 보행", "숫자세기 보행"))
# ✅ 변수 변환 확인 (레벨 확인)
cat("Group 변수 수준:\n")
print(levels(data_인지제외_$group))
cat("\nCondition 변수 수준:\n")
print(levels(data_인지제외_$condition))
# 🧮 보행 변수 목록 정의
gait_vars <- c("loadingresponsetime", "loadingresponsegc", "midstancetime", "midstancegc",
"terminalstancetime", "terminalstancegc", "preswingtime", "preswinggc",
"swingphasetime", "swingphasesi", "firstdsp", "firstdspsi", "seconddsp",
"seconddspsi", "cadence", "cadencero", "cadencesi", "stancetimesi",
"swingtimesi", "stridetimesi", "cofsi")
# ✅ MANOVA 수행 (Pillai's Trace 사용)
manova_result <- manova(as.matrix(data_인지제외_[, gait_vars]) ~ group * condition, data = data_인지제외_)
# ✅ Pillai’s Trace 결과 추출
pillai_summary <- summary(manova_result, test = "Pillai")
# 📋 결과 출력
print(pillai_summary)
# ✅ 결과를 데이터프레임으로 변환하여 저장
pillai_table <- as.data.frame(pillai_summary$stats)
colnames(pillai_table)[2] <- "Statistic"
pillai_table$Test <- "Pillai's Trace"
pillai_table$Effect <- rownames(pillai_table)
rownames(pillai_table) <- NULL
# 📁 CSV 파일로 결과 저장
write.csv(pillai_table, "D:/data/R/pillai_trace_results.csv", row.names = FALSE)
# ✅ 저장 완료 메시지
cat("📁 ✅ Pillai's Trace 결과가 'D:/data/R/pillai_trace_results.csv'에 저장되었습니다.\n")
결과값
세부 해석🟢 (1) group (정상군 vs 인지손상군)
💡 해석:
🟡 (2) condition (보행 조건)
💡 해석:
🔴 (3) group:condition (상호작용)
💡 해석:
✅ 3. 최종 결론
효과유의성해석
group | ✅ 유의미함 | 정상군과 인지손상군 간 보행 변수에서 차이가 있음 |
condition | ✅ 유의미함 | 보행 조건에 따른 보행 변수의 차이가 있음 |
group:condition | ❌ 유의미하지 않음 | 집단과 보행 조건 간 상호작용 효과는 없음 → 보행 조건 변화가 집단 간 유사하게 작용 |