통계학

호텔링 T^2 통계량을 통한 검정, 호텔링의 활용

써머23 2025. 5. 21. 12:04
728x90

 

 

---------------------

두 집단간 평균 벡터 비교 검정

 

 

# 패키지 불러오기
library(readxl)

# 데이터 불러오기
data <- read_excel("D:/mydata/PCA용.xlsx", sheet = "Sheet1")

# 두 그룹으로 나누기
group1 <- subset(data, 홈런율 >= 2)
group2 <- subset(data, 홈런율 < 2)

# 분석에 사용할 변수들
vars <- c("컨택률", "스윙률", "타구속도")
X1 <- na.omit(group1[, vars])
X2 <- na.omit(group2[, vars])

# 샘플 수와 평균 벡터
n1 <- nrow(X1)
n2 <- nrow(X2)
x1_bar <- colMeans(X1)
x1_bar
x2_bar <- colMeans(X2)
x2_bar
# 공분산 행렬과 pooled 공분산
S1 <- cov(X1)
S2 <- cov(X2)
Sp <- ((n1 - 1) * S1 + (n2 - 1) * S2) / (n1 + n2 - 2)

# Hotelling T^2 계산
d <- x1_bar - x2_bar
T2 <- as.numeric((n1 * n2) / (n1 + n2) * t(d) %*% solve(Sp) %*% d)

# F 통계량으로 변환
p <- length(vars)
F_stat <- (n1 + n2 - p - 1) * T2 / ((n1 + n2 - 2) * p)
df1 <- p
df2 <- n1 + n2 - p - 1
p_value <- pf(F_stat, df1, df2, lower.tail = FALSE)

# 결과 출력
cat("Hotelling's T² 통계량:", T2, "\n")
cat("F 통계량:", F_stat, "\n")
cat("p-value:", p_value, "\n")

----------------------------------------

호텔링 통계량의 활용

 

728x90