Q.
[ R ] ch14 연습문제
yul_S2
2022. 11. 27. 08:52
반응형
drinking_water_example.sav
0.01MB
2. 다음은 drinking,water_example.sav 파일의 데이터셋이 구성된 테이블이다. 전체 2 개의 요인에 의해서 7 개의 변수로 구성되어 있다. 아래에서 제시된 각 단계에 맞게 요인 분석을 수행하시오
(1) 데이터파일 가져오기
library(memisc) setwd("C:/") data.spss <- as.data.set(spss.system.file('drinking_water_example.sav')) data.spss drinking_water_exam <- data.spss[1:7] drinking_water_exam_df <- as.data.frame(drinking_water_exam) str(drinking_water_exam_df) # 'data.frame': 380 obs. of 7 variables: # $ Q1: num 3 3 3 3 3 1 2 2 2 4 ... # ..- attr(*, "label")= chr "A&G0 D#9P551" # $ Q2: num 2 3 3 3 3 1 2 2 2 3 ... # ..- attr(*, "label")= chr "A&G0 D#9P552" # $ Q3: num 3 3 3 3 2 1 2 1 1 3 ... # ..- attr(*, "label")= chr "A&G0 D#9P553" # $ Q4: num 3 3 4 2 2 3 4 2 3 4 ... # ..- attr(*, "label")= chr "A&G0 88A7551" # $ Q5: num 4 3 4 2 2 3 4 2 2 2 ... # ..- attr(*, "label")= chr "A&G0 88A7552" # $ Q6: num 3 2 4 2 2 3 4 2 3 3 ... # ..- attr(*, "label")= chr "A&G0 88A7553" # $ Q7: num 4 3 4 2 2 3 4 2 1 4 ... # ..- attr(*, "label")= chr "A&G0 88A7554" |
(2) 베리맥스 회전법, 요인수 2, 요인점수 회귀분석 방법을 적용하여 요인 분석
result <- factanal(drinking_water_exam_df, factors = 2, rotation = "varimax",scores = "regression") result # Call: # factanal(x = drinking_water_exam_df, factors = 2, scores = "regression", rotation = "varimax") # # Uniquenesses: # Q1 Q2 Q3 Q4 Q5 Q6 Q7 # 0.333 0.222 0.298 0.388 0.200 0.231 0.410 # # Loadings: # Factor1 Factor2 # Q1 0.212 0.789 # Q2 0.182 0.863 # Q3 0.170 0.820 # Q4 0.724 0.296 # Q5 0.882 0.149 # Q6 0.860 0.172 # Q7 0.742 0.198 # # Factor1 Factor2 # SS loadings 2.700 2.219 # Proportion Var 0.386 0.317 # Cumulative Var 0.386 0.703 # # Test of the hypothesis that 2 factors are sufficient. # The chi square statistic is 12.93 on 8 degrees of freedom. # The p-value is 0.114 |
(3) 요인적재량 행렬의 컬럼명 변경
loadings <- result$loadings colnames(loadings) <- c("제품친밀도","제품만족도") loadings # Loadings: # 제품친밀도 제품만족도 # Q1 0.212 0.789 # Q2 0.182 0.863 # Q3 0.170 0.820 # Q4 0.724 0.296 # Q5 0.882 0.149 # Q6 0.860 0.172 # Q7 0.742 0.198 # # 제품친밀도 제품만족도 # SS loadings 2.700 2.219 # Proportion Var 0.386 0.317 # Cumulative Var 0.386 0.703 |
(4) 요인점수를 이용한 요인적재량 시각화
plot(result$scores[,c(1,2)], main="제품친밀도와 제품만족도 요인점수 행렬")![]() text(result$scores[,1], result$scores[,2], labels=name,cex=0.7,pos=3,col="blue") ![]() points(result$loadings[,c(1:2)],pch=19,col="red") ![]() text(result$loadings[,1], result$loadings[,2], labels=rownames(result$loadings),cex=0.7,pos=3,col="green3") ![]() |
(5)요인별 변수 묶기
a <- data.frame(drinking_water_exam_df$Q1, drinking_water_exam_df$Q2, drinking_water_exam_df$Q3) b <- data.frame(drinking_water_exam_df$Q4, drinking_water_exam_df$Q5, drinking_water_exam_df$Q6, drinking_water_exam_df$Q7) |
2. 1 번에서 생성된 두 개의 요인을 데이터프레임으로 생성한 후 이를 이용하여 두 요인 간의 상관관계 계수를 제시하시오.
x <- round((a$drinking_water_exam_df.Q1 + a$drinking_water_exam_df.Q2 + a$drinking_water_exam_df.Q3)/ncol(a),2) y <- round((b$drinking_water_exam_df.Q4 + b$drinking_water_exam_df.Q5 + b$drinking_water_exam_df.Q6 + b$drinking_water_exam_df.Q7)/ncol(b),2) a$drinking_water_exam_df.Q1 subject_facor_df <- data.frame(x,y) cor(subject_facor_df) # x y # x 1.0000000 0.4047543 # y 0.4047543 1.0000000 |
반응형