15-2. 주성분 회귀분석
(Principle Component Regression)
1) 주성분회귀 (Principle Component Regression)
- 독립변수들의 차원을 줄이기 위해 사용가능, 주성분을 이용하여 타겟변수(Y)의 설명력(예측력)을 높일 수 있다.
- 독립변수들의 전체분산을 가장 잘 설명해주는 component를 사용하여 독립변수들간 다중공선성 문제를 해결할 수 있다.
- 주요 component score들이 Y의 예측력을 보장하는 것이 아니다. 주요 component score는 X의 분산을 가장 잘 설명하는 방향의 축을 기준으로 변환된 것이기 때문에 Y와의 관계에 있어서는 상관성이 없을 수도 있다.
- wine데이터 (9개의 독립변수, 타겟변수는 Aroma rating)
9개의 독립변수
타겟변수(y) : Aroma
- wine 데이터 불러들이기, 독립변수들간 상관계수
wine<-read.csv(file="wine_aroma.csv")
attach(wine)
head(wine)
cor(wine[1:9])
독립변수간 상관관계 확인
0.95, 0.82등 일부 높은 상관계수
- 주성분분석을 위한 함수 : prcomp(독립변수들, center=, sclae= )
wi.pca<-prcomp(wine[1:9],center=T,scale.=F)
- 옵션을 주지않으면 center=T, scale=F
- center=T, scale=F는 mean-centering만 한다음 component를 뽑음
wi.pca
PC1 = 0.0000439*Mo -0.00026*Ba -0.000046*Cr +...
- 전체분산 중 각 주성분을 설명하는 비율
summary(wi.pca)
- PC1은 전체분산의 97.38%를 설명, 1개의 변수만으로도 독립변수 전체분산을 거의 설명
- PC2은 전체분산의 1.98%를 설명
- 누적설명비율을 보면 PC1와 PC2, 두개의 성분으로 전체분산의 99.36%를 설명
- 최적 주성분 수는? - scree plot을 그려보고 급격히 떨어지기 전까지의 PC를 선택
plot(wi.pca,type="l")
- 2rd PC에서 설명력이 급격하게 떨어짐을 볼 수 있음
=> 이 경우 PC1 한개만 사용해도 된다는 의미
- PC계산 = X_data(n*p) %*% PCA_weight(p*p)
PRC<-as.matrix(wine[,1:9])%*%wi.pca$rotation
PRC는 n*p행렬, 여기서는 37*9
head(PRC)
2) 주성분을 이용한 회귀모형
- wine data => wine.pc data구성
wine.pc<-cbind(as.data.frame(PRC),Aroma)
head(wine.pc)
- 다중회귀모형과 주성분회귀분석
- 주성분을 이용한 회귀분석모형 1 (wine data : PC1-PC4포함)
fit1<-lm(Aroma~PC1+PC2+PC3+PC4, data=wine.pc)
fit1
summary(fit1)
PC1-PC4 다중회귀모형 수행 (R^2=.494)
별 개수 -> 중요도
- 주성분을 이용한 회귀분석모형 2 (wine data : PC1-PC9 포함)
fit2<-lm(Aroma~., data=wine.pc)
fit2
summary(fit2)
PC1-PC9 다중회귀모형 수행 (R^2=.741)
- 일반 회귀분석모형 (wine data : raw data)
fit3<-lm(Aroma ~., data=wine)
summary(fit3)
9개 독립변수 다중회귀모형 수행 (R^2=.741)
- 잔차에 대한 가정 확인
layout(matrix(c(1,2,3,4),2,2)) # optional 4 graphs/page
plot(fit3)
'공부 > R & Python' 카테고리의 다른 글
16-1. 딥러닝과 텍스트 마이닝-Neural Network (0) | 2020.03.06 |
---|---|
15-3. Partial Least Square (0) | 2020.03.06 |
15-1. 주성분 분석과 부분 최소자승법-주성분분석(Principle Component Analysis) (0) | 2020.03.06 |
14-3. 로지스틱 회귀분석(Logistic Regression) (0) | 2020.03.05 |
14-2. 연관규칙 분석 2 (0) | 2020.03.05 |