59doit

[ R ] 요인분석 #2 요인점수를 이용한 요인적재량 시각화 본문

통계기반 데이터분석

[ R ] 요인분석 #2 요인점수를 이용한 요인적재량 시각화

yul_S2 2022. 11. 26. 20:34
반응형

ex) 요인점수를 이용한 요인적재량 시각화

요인점수(요인 분석에서 요인의 추정된 값)를 얻기 위해서는 scores속성(scores=”regression”: 회귀분석으로 요인점수 계산) 설정

 

#1 Factor1과 Factor2 요인적재량 시각화

plot(result$scores[ , c(1:2)], main = "Factor1과 Factor2 요인점수 행렬") 



text(result$scores[ , 1], result$scores[ , 2], labels = name, cex = 0.7, pos = 3, col = "blue") 



 

 

 

#2 요인적재량 추가

points(result$loadings[ , c(1:2)], pch = 19, col = "red")



text(result$loadings[ , 1], result$loadings[ , 2], labels = rownames(result$loadings), cex = 0.8, pos = 3, col = "red")


 

 

 

#3 Factor1과 Factor3 요인 적재량 시각화

points(result$loadings[ , c(1, 3)], pch = 19, col = "red") 



text(result$loadings[ , 1], result$loadings[ , 3],labels = rownames(result$loadings), cex = 0.8, pos= 3, col = "red")




 

#4 요인적재량 추가

points(result$loadings[ , c(1, 3)], pch = 19, col = "red") 




text(result$loadings[ , 1], result$loadings[ , 3],labels = rownames(result$loadings), cex = 0.8, pos= 3, col = "red")




 

 

 

ex) 3차원 산점도로 요인적재량 시각화

#1 3차원 산점도 패키지 로딩

install.packages("scatterplot3d")
library(scatterplot3d)

 

 

 

#2 요인점수별 분류 및 3차원 프레임 생성

Factor1 <- result$scores[ , 1]
Factor2 <- result$scores[ , 2]
Factor3 <- result$scores[ , 3]

d3 <- scatterplot3d(Factor1, Factor2, Factor3, type = 'p') 



scatterplot3d(x축, y축, z축, type=”p”)

 

 

#3 요인적재량 표시

loadings1 <- result$loadings[ , 1]
loadings2 <- result$loadings[ , 2]
loadings3 <- result$loadings[ , 3]

d3$points3d(loadings1, loadings2, loadings3, bg = 'red', pch = 21, cex = 2, type = 'h')




d3$points3d(): scatterplot3d()함수 내에서 점 찍기

 

 

 

ex) 요인별 변수 묶기

#1 요인별 과목 변수 이용 데이터프레임 생성

app <- data.frame(subject$s5, subject$s6)
soc <- data.frame(subject$s3, subject$s4) 
nat <- data.frame(subject$s1, subject$s2)

 

 

#2 요인별 산술평균 계산

app_science <- round((app$subject.s5 + app$subject.s6) / ncol(app), 2) 
soc_science <- round((soc$subject.s3 + soc$subject.s4) / ncol(soc), 2) 
nat_science <- round((nat$subject.s1 + nat$subject.s2) / ncol(nat), 2)

산술평균을 계산하여 요인별로 3개의 파생변수 생성

 

 

#3 상관관계분석

subject_factor_df <- data.frame(app_science, soc_science, nat_science)
cor(subject_factor_df)
#                    app_science   soc_science   nat_science
# app_science   1.0000000  0.43572654 -0.68903024
# soc_science   0.4357265  1.00000000 -0.02570212
# nat_science  -0.6890302 -0.02570212  1.00000000

요인분석을 통해서 만들어진 파생변수는 상관분석이나 회귀분석에서 독립변수로 사용할 수 있다.

 

 

반응형
Comments