User Tools

Site Tools


Factor analysis assignment

The assignment should be uploaded or wriitten in the ajou bb technology.

data file efa.csv: The data set contains what customers consider while purchasing car. The survey questions were framed using 5-point likert scale with 1 being very low and 5 being very high. The variables were the following:

Exterior looks
Space and comfort
After sales service
Resale value
Fuel type
Fuel efficiency
Test drive
Product reviews

In order to perform the factor analysis in r, you would need to install the following packages: psych and GPArotation. Do the following codes.


Do the following tasks with your group members

  • Read the data file as “efa” into r
 efa <- read.csv("")
  • examine the data set:
    • how many variables are there?
    • how many subjects (participants) are there?
# use str(), head() function 
  • Use the following code
    • ?fa.parallel
    • explain what it is and it does (based on the explanation of help)
    • do fa.parallel with following options (수업에서 다루지 않았읍니다. help 문서를 보고 완성하세요)
      • fm = minres
      • fa = fa
    • print out the output and
    • determine the number of factors
      • how many eigenvalues are greater than 1?
# 아래를 먼저 수행해서 패키지를 탑재한 후에 fa 분석을 해야 합니다

# 그 후에 something like the below
fa.parallel(cor(efa), fm="minres", fa="fa", n.obs = nrow(efa))
  • Use the following code
    • efa.fa.ini <- fa(efa)
    • Print out the result, efa.fa.ini
    • Use the following code, names(efa.fa.ini) and answer the below questions
      • e.values를 출력하시오.
      • e.values는 무엇을 의미하는가?
      • communality를 출력하시오
      • communality는 이 output에서 무엇을 의미하는가?
# 수업시간에 아래 명령어를 출력해서 보면 efa.fa.ini 가 분석한 결과값이 컬럼별로 어떻게
# 저장되어 있는지 볼 수 있다고 했습니다. 
# 각 컬럼을 보기 위해서는 efa.fa.ini$n.obs와 같이 확인한다 했습니다
  • Analyze the data with fa function.
    • efa.fa.3 <- fa(options~)
    • Use the option
      • 3 factors
      • rotate = varimax
      • fm = minres
# 다음을 이용하여 명령어를 완성하여 분석 
# efa.fa.3 <- fa(efa, nfactor = 3, . . . . )
efa.fa.3 <- fa(efa, nfactors = 3, rotate = "varimax", fm="minres")
  • print out the result
# print 
  • examine the communality by comparing efa.fa.ini$communality
temp <- data.frame(efa.fa.ini$communality, efa.fa.3$communality) 
  • Are there any changes from the efa.fa.ini?
  • 이 값이 커졌다면 무엇을 의미하는가?
  • print(fa.sort(efa.fa.3$loadings), cutoff = 0.3)
print(fa.sort(efa.fa.3$loadings), cutoff = 0.3)
  • 3개의 factor에 대한 정의 (무엇에 관한 것인지)를 내리시오


  • 이번에는 같은 옵션으로 4개의 factor를 추출하고 그 결과를 출력하시오
    • 각 factor에 대한 loading의 제곱의합값은?
    • 이 값의 모든 합은 전체 Y 분산 중 몇 %를 차지하는가?
    • 4개의 factor들을 설명하는데 기여분이 가장 많은 3개의 변인을 말하시오.
    • 4개의 factor들은 어떻게 설명되는지 factor에 기여하는 변인들을 중심으로 설명하시오.


  • 이번에는 같은 옵션으로 5개의 factor를 추출하고 그 결과를 출력하시오
    • 위의 4개추출과 같은 내용을 실시하시오.


  • 어떤 것이 설문결과를 가장 잘 요약한다고 생각하는가?
c/ma/factor_analysis_assignment.txt · Last modified: 2022/12/06 12:23 by hkimscil