DataScience
article thumbnail
728x90

많은 변수로 구성된 데이터에 대해 주성분이라는 새로운 변수를 만들어 기존 변수보다 차원을 축소하여 분석을 수행

주성분 P1은 데이터 분산을 가장 많이 설명할 수 있는 것을 선택하고 P2는 P1과 수직인 주성분을 만들어 다중 공선성 문제를 해결

다중 공선성(MultiCollinearity): 독립변수 사이에 강한 상관관계가 나타나서 종속변수에 영향을 미치는 경우

완전 공선성: 독립 변수들 사이에 정확한 선형 관계가 존재하는 경우

다중 공선성 문제는 분석과 예측의 정확성을 위해서 피하거나 해결해야 한다.

실습.

### PCA

data("iris")
head(iris)

# 변수간 상관관계 확인
cor(iris[1:4])

# 변수간 S.L와P.L, S.L와 P.W간의 상관관계 높음
# 다중공선성 문제 발생 예상
# 독립변수 새롭게 설계 필요
# 전처리 과정
iris2 <- iris[, 1:4]
ir.species <- iris[,5]

# 중앙을 0, 분산은 1로 설정
prcomp.result2 <- prcomp(iris2, center=T, scale=T)
prcomp.result2

# 결과
summary(prcomp.result2)

# 주성분 수 설정
plot(prcomp.result2, type="l")

# result2의 데이터 확인
prcomp.result2$rotation
iris2

# iris2 데이터와 prcomp.result2데이터를 행렬곱하여 변환
Result3 <- as.matrix(iris2) %*% prcomp.result2$rotation

# 변환결과 확인
head(Result3)

# 종 데이터와 Result3의 데이터프레임을 열병합
final2 <- cbind(ir.species, as.data.frame(Result3))
final2

# factor형으로 변환
final2[,1] <- as.factor(final2[,1])

# 컬럼명을 label1로 명명
colnames(final2)[1] <- "label1"

# final2 확인
final2

# 새로 구성된 데이터로 회귀 분석 실시
fit3 <- lm(label1 ~ PC1 + PC2, data=final2)
fit3_pred <-predict(fit3, newdata=final2)
b2 <- round(fit3_pred)
a2 <- ir.species
table(b2,a2)

'데이터분석 > 통계기반' 카테고리의 다른 글

시계열분석(Time Series Analysis)  (2) 2022.12.12
판별분석(Discriminant Analysis)  (1) 2022.12.12
요인분석 (Factor Analysis)  (0) 2022.12.12
상관관계 분석  (1) 2022.12.12
변수 선택  (0) 2022.12.12
profile

DataScience

@Ninestar

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!