Based on the correlation matrix, it is observed that 48 out of 50 items correlated at least 0.40 with at least one other item suggesting a reasonable factorability. Two items with relatively low correlation between other items are item 10 and item 24.
cor.plot(osh.train)
Bartlett’s test of sphericity was significant (\(\chi^2(1225) = 60102.49\); \(p < 0.001\)).
cortest(osh.train)
## Tests of correlation matrices
## Call:cortest(R1 = osh.train)
## Chi Square value 60102.49 with df = 1225 with probability < 0
KMO measure of sampling adequacy was 0.93 which is considered marvelous.
KMO(osh.train)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = osh.train)
## Overall MSA = 0.93
## MSA for each item =
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16
## 0.94 0.93 0.97 0.97 0.95 0.94 0.95 0.96 0.93 0.86 0.95 0.96 0.95 0.95 0.94 0.95
## Q17 Q18 Q19 Q20 Q21 Q22 Q23 Q24 Q25 Q26 Q27 Q28 Q29 Q30 Q31 Q32
## 0.94 0.92 0.93 0.92 0.92 0.90 0.95 0.81 0.95 0.94 0.86 0.93 0.91 0.90 0.94 0.94
## Q33 Q34 Q35 Q36 Q37 Q38 Q39 Q40 Q41 Q42 Q43 Q44 Q45 Q46 Q47 Q48
## 0.97 0.92 0.90 0.95 0.86 0.92 0.89 0.90 0.85 0.89 0.93 0.94 0.88 0.93 0.88 0.91
## Q49 Q50
## 0.89 0.91
Items 6, 10, 12, 22, 24, 30, 31, 32, 33, 43, and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML7 ML2 ML5 ML3 ML4 ML6
## Q1 0.77
## Q2 0.74
## Q3 0.73
## Q4 0.78
## Q5 0.74
## Q6
## Q7 0.64
## Q8 0.51
## Q9 0.46
## Q10
## Q11 0.76
## Q12
## Q13 0.58
## Q14 0.51
## Q15 0.57
## Q16 0.66
## Q17 0.86
## Q18 0.81
## Q19 0.70
## Q20 0.81
## Q21 0.94
## Q22
## Q23 0.56
## Q24
## Q25 0.45
## Q26 0.48
## Q27 0.84
## Q28 0.71
## Q29 0.80
## Q30
## Q31
## Q32
## Q33
## Q34 0.51
## Q35 0.79
## Q36 0.57
## Q37 0.60
## Q38 0.77
## Q39 0.62
## Q40 0.52
## Q41 0.42
## Q42 0.56
## Q43
## Q44 0.46
## Q45 0.56
## Q46
## Q47 0.53
## Q48 0.79
## Q49 0.86
## Q50 0.79
##
## ML1 ML7 ML2 ML5 ML3 ML4 ML6
## SS loadings 5.37 3.35 2.97 2.74 2.68 2.25 2.12
## Proportion Var 0.11 0.07 0.06 0.05 0.05 0.05 0.04
## Cumulative Var 0.11 0.17 0.23 0.29 0.34 0.39 0.43
Item number 24 has the lowest communality, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13
## 0.434 0.422 0.438 0.492 0.391 0.423 0.355 0.382 0.313 0.099 0.469 0.225 0.434
## Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21 Q22 Q23 Q24 Q25 Q26
## 0.469 0.557 0.599 0.619 0.524 0.540 0.569 0.677 0.284 0.395 0.057 0.421 0.345
## Q27 Q28 Q29 Q30 Q31 Q32 Q33 Q34 Q35 Q36 Q37 Q38 Q39
## 0.622 0.642 0.665 0.244 0.347 0.333 0.409 0.370 0.633 0.520 0.488 0.655 0.540
## Q40 Q41 Q42 Q43 Q44 Q45 Q46 Q47 Q48 Q49 Q50
## 0.354 0.342 0.298 0.260 0.333 0.283 0.346 0.296 0.479 0.602 0.529
Items 6, 10, 12, 22, 30, 31, 32, 33, 43, and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train[,-c(24)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML7 ML2 ML5 ML3 ML4 ML6
## Q1 0.77
## Q2 0.74
## Q3 0.73
## Q4 0.78
## Q5 0.74
## Q6
## Q7 0.64
## Q8 0.51
## Q9 0.46
## Q10
## Q11 0.76
## Q12
## Q13 0.57
## Q14 0.52
## Q15 0.58
## Q16 0.66
## Q17 0.87
## Q18 0.81
## Q19 0.71
## Q20 0.81
## Q21 0.94
## Q22
## Q23 0.55
## Q25 0.45
## Q26 0.48
## Q27 0.84
## Q28 0.71
## Q29 0.80
## Q30
## Q31
## Q32
## Q33
## Q34 0.51
## Q35 0.81
## Q36 0.57
## Q37 0.60
## Q38 0.77
## Q39 0.62
## Q40 0.53
## Q41 0.42
## Q42 0.54
## Q43
## Q44 0.45
## Q45 0.56
## Q46
## Q47 0.52
## Q48 0.78
## Q49 0.86
## Q50 0.79
##
## ML1 ML7 ML2 ML5 ML3 ML4 ML6
## SS loadings 5.34 3.40 2.95 2.73 2.70 2.25 2.05
## Proportion Var 0.11 0.07 0.06 0.06 0.06 0.05 0.04
## Cumulative Var 0.11 0.18 0.24 0.29 0.35 0.40 0.44
Item number 10 has the lowest communality, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13
## 0.435 0.423 0.439 0.492 0.391 0.422 0.355 0.382 0.313 0.098 0.469 0.224 0.433
## Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21 Q22 Q23 Q25 Q26 Q27
## 0.470 0.557 0.599 0.615 0.523 0.540 0.568 0.679 0.284 0.394 0.419 0.344 0.622
## Q28 Q29 Q30 Q31 Q32 Q33 Q34 Q35 Q36 Q37 Q38 Q39 Q40
## 0.643 0.665 0.243 0.344 0.333 0.408 0.371 0.638 0.520 0.488 0.654 0.540 0.361
## Q41 Q42 Q43 Q44 Q45 Q46 Q47 Q48 Q49 Q50
## 0.342 0.293 0.261 0.334 0.289 0.346 0.292 0.479 0.602 0.530
min(round(model.efa$communalities, 3))
## [1] 0.098
Items 6, 12, 22, 30, 31, 32, 33, 46, and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train[,-c(24,10)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML7 ML2 ML3 ML5 ML4 ML6
## Q1 0.77
## Q2 0.74
## Q3 0.73
## Q4 0.78
## Q5 0.74
## Q6
## Q7 0.64
## Q8 0.52
## Q9 0.45
## Q11 0.75
## Q12
## Q13 0.58
## Q14 0.50
## Q15 0.57
## Q16 0.66
## Q17 0.86
## Q18 0.81
## Q19 0.71
## Q20 0.80
## Q21 0.93
## Q22
## Q23 0.55
## Q25 0.45
## Q26 0.47
## Q27 0.84
## Q28 0.71
## Q29 0.80
## Q30
## Q31
## Q32
## Q33
## Q34 0.52
## Q35 0.81
## Q36 0.57
## Q37 0.60
## Q38 0.77
## Q39 0.62
## Q40 0.52
## Q41 0.40 0.41
## Q42 0.54
## Q43
## Q44 0.45
## Q45 0.57
## Q46
## Q47 0.52
## Q48 0.78
## Q49 0.86
## Q50 0.79
##
## ML1 ML7 ML2 ML3 ML5 ML4 ML6
## SS loadings 5.33 3.35 2.94 2.71 2.61 2.25 2.05
## Proportion Var 0.11 0.07 0.06 0.06 0.05 0.05 0.04
## Cumulative Var 0.11 0.18 0.24 0.30 0.35 0.40 0.44
Item number 12 has the lowest communality among the candidate, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q11 Q12 Q13 Q14 Q15 Q16 Q17
## 0.44 0.42 0.44 0.49 0.39 0.42 0.36 0.38 0.31 0.46 0.22 0.43 0.47 0.56 0.60 0.61
## Q18 Q19 Q20 Q21 Q22 Q23 Q25 Q26 Q27 Q28 Q29 Q30 Q31 Q32 Q33 Q34
## 0.53 0.54 0.57 0.68 0.28 0.40 0.42 0.34 0.62 0.64 0.66 0.24 0.35 0.33 0.41 0.37
## Q35 Q36 Q37 Q38 Q39 Q40 Q41 Q42 Q43 Q44 Q45 Q46 Q47 Q48 Q49 Q50
## 0.64 0.52 0.49 0.65 0.54 0.36 0.34 0.29 0.26 0.33 0.29 0.34 0.29 0.48 0.60 0.53
min(round(model.efa$communalities, 2))
## [1] 0.22
Items 6, 22, 30, 31, 32, 33, 33, 43, and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train[,-c(24,10,12)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML7 ML2 ML3 ML5 ML4 ML6
## Q1 0.78
## Q2 0.76
## Q3 0.73
## Q4 0.77
## Q5 0.73
## Q6
## Q7 0.63
## Q8 0.50
## Q9 0.43
## Q11 0.74
## Q13 0.55
## Q14 0.51
## Q15 0.58
## Q16 0.67
## Q17 0.87
## Q18 0.82
## Q19 0.72
## Q20 0.81
## Q21 0.93
## Q22
## Q23 0.55
## Q25 0.45
## Q26 0.47
## Q27 0.84
## Q28 0.72
## Q29 0.80
## Q30
## Q31
## Q32
## Q33
## Q34 0.52
## Q35 0.81
## Q36 0.57
## Q37 0.60
## Q38 0.78
## Q39 0.62
## Q40 0.52
## Q41 0.41 0.41
## Q42 0.54
## Q43
## Q44 0.45
## Q45 0.56
## Q46
## Q47 0.51
## Q48 0.78
## Q49 0.86
## Q50 0.79
##
## ML1 ML7 ML2 ML3 ML5 ML4 ML6
## SS loadings 5.09 3.41 2.96 2.72 2.64 2.26 2.02
## Proportion Var 0.11 0.07 0.06 0.06 0.06 0.05 0.04
## Cumulative Var 0.11 0.18 0.24 0.30 0.36 0.41 0.45
Item number 30 has the lowest communality among the candidate, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q11 Q13 Q14 Q15 Q16 Q17 Q18
## 0.44 0.43 0.44 0.49 0.39 0.42 0.36 0.38 0.31 0.46 0.43 0.47 0.56 0.60 0.61 0.53
## Q19 Q20 Q21 Q22 Q23 Q25 Q26 Q27 Q28 Q29 Q30 Q31 Q32 Q33 Q34 Q35
## 0.54 0.57 0.68 0.28 0.40 0.42 0.34 0.62 0.64 0.66 0.24 0.35 0.33 0.41 0.37 0.64
## Q36 Q37 Q38 Q39 Q40 Q41 Q42 Q43 Q44 Q45 Q46 Q47 Q48 Q49 Q50
## 0.52 0.49 0.65 0.54 0.36 0.34 0.29 0.26 0.34 0.29 0.34 0.29 0.48 0.60 0.53
min(round(model.efa$communalities, 2))
## [1] 0.24
Items 6, 22, 31, 32, 33, 43, and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train[,-c(24,10,12,30)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML7 ML2 ML3 ML5 ML4 ML6
## Q1 0.78
## Q2 0.76
## Q3 0.73
## Q4 0.77
## Q5 0.72
## Q6
## Q7 0.62
## Q8 0.49
## Q9 0.42
## Q11 0.73
## Q13 0.55
## Q14 0.53
## Q15 0.59
## Q16 0.68
## Q17 0.88
## Q18 0.82
## Q19 0.72
## Q20 0.80
## Q21 0.92
## Q22
## Q23 0.54
## Q25 0.44
## Q26 0.46
## Q27 0.83
## Q28 0.70
## Q29 0.78
## Q31
## Q32
## Q33
## Q34 0.52
## Q35 0.81
## Q36 0.57
## Q37 0.60
## Q38 0.78
## Q39 0.62
## Q40 0.51
## Q41 0.41 0.40
## Q42 0.54
## Q43
## Q44 0.45
## Q45 0.56
## Q46
## Q47 0.51
## Q48 0.79
## Q49 0.86
## Q50 0.79
##
## ML1 ML7 ML2 ML3 ML5 ML4 ML6
## SS loadings 4.97 3.50 3.01 2.73 2.54 2.08 1.96
## Proportion Var 0.11 0.08 0.07 0.06 0.06 0.05 0.04
## Cumulative Var 0.11 0.18 0.25 0.31 0.36 0.41 0.45
Item number 43 has the lowest communality among the candidate, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q11 Q13 Q14 Q15 Q16 Q17 Q18
## 0.44 0.43 0.44 0.49 0.39 0.42 0.36 0.38 0.31 0.46 0.43 0.47 0.56 0.60 0.61 0.52
## Q19 Q20 Q21 Q22 Q23 Q25 Q26 Q27 Q28 Q29 Q31 Q32 Q33 Q34 Q35 Q36
## 0.54 0.58 0.68 0.28 0.39 0.42 0.34 0.63 0.65 0.67 0.34 0.33 0.41 0.37 0.64 0.52
## Q37 Q38 Q39 Q40 Q41 Q42 Q43 Q44 Q45 Q46 Q47 Q48 Q49 Q50
## 0.49 0.65 0.54 0.36 0.34 0.30 0.26 0.34 0.30 0.34 0.29 0.48 0.60 0.53
min(round(model.efa$communalities, 2))
## [1] 0.26
Items 6, 22, 31, 32, 33, 41, and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train[,-c(24,10,12,30,43)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML6 ML2 ML3 ML5 ML4 ML7
## Q1 0.77
## Q2 0.75
## Q3 0.73
## Q4 0.77
## Q5 0.72
## Q6
## Q7 0.62
## Q8 0.49
## Q9 0.43
## Q11 0.73
## Q13 0.55
## Q14 0.53
## Q15 0.59
## Q16 0.68
## Q17 0.87
## Q18 0.82
## Q19 0.71
## Q20 0.80
## Q21 0.93
## Q22
## Q23 0.54
## Q25 0.44
## Q26 0.46
## Q27 0.82
## Q28 0.71
## Q29 0.78
## Q31
## Q32
## Q33
## Q34 0.52
## Q35 0.82
## Q36 0.58
## Q37 0.59
## Q38 0.77
## Q39 0.61
## Q40 0.47
## Q41
## Q42 0.53
## Q44 0.41
## Q45 0.56
## Q46
## Q47 0.54
## Q48 0.79
## Q49 0.87
## Q50 0.81
##
## ML1 ML6 ML2 ML3 ML5 ML4 ML7
## SS loadings 4.97 3.45 2.86 2.72 2.56 2.05 1.88
## Proportion Var 0.11 0.08 0.06 0.06 0.06 0.05 0.04
## Cumulative Var 0.11 0.19 0.25 0.31 0.37 0.41 0.46
Item number 22 has the lowest communality among the candidate, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q11 Q13 Q14 Q15 Q16 Q17 Q18
## 0.44 0.43 0.44 0.49 0.39 0.42 0.36 0.38 0.31 0.46 0.43 0.47 0.56 0.60 0.61 0.52
## Q19 Q20 Q21 Q22 Q23 Q25 Q26 Q27 Q28 Q29 Q31 Q32 Q33 Q34 Q35 Q36
## 0.54 0.57 0.68 0.28 0.40 0.42 0.35 0.63 0.65 0.67 0.34 0.33 0.41 0.37 0.64 0.52
## Q37 Q38 Q39 Q40 Q41 Q42 Q44 Q45 Q46 Q47 Q48 Q49 Q50
## 0.49 0.65 0.54 0.34 0.29 0.29 0.31 0.30 0.34 0.31 0.49 0.62 0.55
min(round(model.efa$communalities, 2))
## [1] 0.28
Items 6, 31, 32, 33, 41, and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train[,-c(24,10,12,30,43,22)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML6 ML2 ML4 ML5 ML3 ML7
## Q1 0.77
## Q2 0.74
## Q3 0.72
## Q4 0.76
## Q5 0.72
## Q6
## Q7 0.62
## Q8 0.50
## Q9 0.43
## Q11 0.73
## Q13 0.55
## Q14 0.53
## Q15 0.60
## Q16 0.68
## Q17 0.87
## Q18 0.82
## Q19 0.72
## Q20 0.79
## Q21 0.91
## Q23 0.53
## Q25 0.43
## Q26 0.45
## Q27 0.83
## Q28 0.71
## Q29 0.78
## Q31
## Q32
## Q33
## Q34 0.51
## Q35 0.82
## Q36 0.58
## Q37 0.59
## Q38 0.77
## Q39 0.60
## Q40 0.49
## Q41
## Q42 0.54
## Q44 0.41
## Q45 0.57
## Q46
## Q47 0.54
## Q48 0.77
## Q49 0.86
## Q50 0.79
##
## ML1 ML6 ML2 ML4 ML5 ML3 ML7
## SS loadings 4.91 3.47 2.69 2.68 2.37 2.06 1.93
## Proportion Var 0.11 0.08 0.06 0.06 0.05 0.05 0.04
## Cumulative Var 0.11 0.19 0.25 0.31 0.37 0.41 0.46
Item number 41 has the lowest communality among the candidate, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q11 Q13 Q14 Q15 Q16 Q17 Q18
## 0.44 0.43 0.44 0.49 0.39 0.41 0.36 0.38 0.30 0.46 0.43 0.47 0.56 0.60 0.61 0.52
## Q19 Q20 Q21 Q23 Q25 Q26 Q27 Q28 Q29 Q31 Q32 Q33 Q34 Q35 Q36 Q37
## 0.54 0.58 0.68 0.40 0.41 0.34 0.63 0.66 0.66 0.34 0.33 0.41 0.37 0.64 0.52 0.49
## Q38 Q39 Q40 Q41 Q42 Q44 Q45 Q46 Q47 Q48 Q49 Q50
## 0.66 0.54 0.34 0.29 0.29 0.32 0.30 0.34 0.30 0.48 0.62 0.55
min(round(model.efa$communalities, 2))
## [1] 0.29
Items 6, 31, 32, 33, 44, and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train[,-c(24,10,12,30,43,22,41)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML6 ML2 ML3 ML5 ML4 ML7
## Q1 0.77
## Q2 0.74
## Q3 0.72
## Q4 0.76
## Q5 0.72
## Q6
## Q7 0.62
## Q8 0.49
## Q9 0.43
## Q11 0.73
## Q13 0.55
## Q14 0.53
## Q15 0.60
## Q16 0.69
## Q17 0.88
## Q18 0.84
## Q19 0.71
## Q20 0.82
## Q21 0.94
## Q23 0.54
## Q25 0.44
## Q26 0.46
## Q27 0.83
## Q28 0.72
## Q29 0.77
## Q31
## Q32
## Q33
## Q34 0.51
## Q35 0.83
## Q36 0.58
## Q37 0.58
## Q38 0.77
## Q39 0.59
## Q40 0.40
## Q42 0.53
## Q44
## Q45 0.54
## Q46
## Q47 0.61
## Q48 0.77
## Q49 0.89
## Q50 0.82
##
## ML1 ML6 ML2 ML3 ML5 ML4 ML7
## SS loadings 4.91 3.51 2.70 2.57 2.51 1.98 1.80
## Proportion Var 0.11 0.08 0.06 0.06 0.06 0.05 0.04
## Cumulative Var 0.11 0.20 0.26 0.32 0.38 0.42 0.46
Item number 44 has the lowest communality among the candidate, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q11 Q13 Q14 Q15 Q16 Q17 Q18
## 0.45 0.43 0.44 0.49 0.38 0.41 0.36 0.38 0.31 0.46 0.43 0.47 0.56 0.60 0.61 0.53
## Q19 Q20 Q21 Q23 Q25 Q26 Q27 Q28 Q29 Q31 Q32 Q33 Q34 Q35 Q36 Q37
## 0.54 0.57 0.68 0.40 0.41 0.34 0.63 0.66 0.66 0.34 0.33 0.41 0.37 0.65 0.52 0.49
## Q38 Q39 Q40 Q42 Q44 Q45 Q46 Q47 Q48 Q49 Q50
## 0.65 0.55 0.28 0.28 0.28 0.29 0.34 0.34 0.47 0.65 0.57
min(round(model.efa$communalities, 2))
## [1] 0.28
Items 6, 31, 32, 33, 40, and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train[,-c(24,10,12,30,43,22,41,44)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML6 ML2 ML3 ML5 ML4 ML7
## Q1 0.78
## Q2 0.74
## Q3 0.72
## Q4 0.76
## Q5 0.72
## Q6
## Q7 0.62
## Q8 0.50
## Q9 0.43
## Q11 0.73
## Q13 0.55
## Q14 0.53
## Q15 0.60
## Q16 0.69
## Q17 0.90
## Q18 0.85
## Q19 0.72
## Q20 0.81
## Q21 0.95
## Q23 0.54
## Q25 0.44
## Q26 0.46
## Q27 0.83
## Q28 0.72
## Q29 0.77
## Q31
## Q32
## Q33
## Q34 0.51
## Q35 0.82
## Q36 0.58
## Q37 0.59
## Q38 0.77
## Q39 0.60
## Q40
## Q42 0.51
## Q45 0.51
## Q46
## Q47 0.63
## Q48 0.77
## Q49 0.88
## Q50 0.82
##
## ML1 ML6 ML2 ML3 ML5 ML4 ML7
## SS loadings 4.92 3.58 2.66 2.52 2.50 1.98 1.61
## Proportion Var 0.12 0.09 0.06 0.06 0.06 0.05 0.04
## Cumulative Var 0.12 0.20 0.27 0.33 0.39 0.43 0.47
Item number 40 has the lowest communality among the candidate, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q11 Q13 Q14 Q15 Q16 Q17 Q18
## 0.45 0.44 0.44 0.50 0.38 0.41 0.36 0.39 0.31 0.46 0.43 0.47 0.56 0.60 0.61 0.53
## Q19 Q20 Q21 Q23 Q25 Q26 Q27 Q28 Q29 Q31 Q32 Q33 Q34 Q35 Q36 Q37
## 0.54 0.57 0.69 0.39 0.41 0.35 0.63 0.66 0.66 0.34 0.33 0.41 0.37 0.65 0.52 0.48
## Q38 Q39 Q40 Q42 Q45 Q46 Q47 Q48 Q49 Q50
## 0.65 0.55 0.27 0.28 0.27 0.34 0.36 0.48 0.65 0.57
min(round(model.efa$communalities, 2))
## [1] 0.27
Items 6, 31, 32, 33, and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train[,-c(24,10,12,30,43,22,41,44,40)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML6 ML2 ML5 ML3 ML4 ML7
## Q1 0.77
## Q2 0.74
## Q3 0.72
## Q4 0.76
## Q5 0.72
## Q6
## Q7 0.62
## Q8 0.49
## Q9 0.42
## Q11 0.72
## Q13 0.54
## Q14 0.54
## Q15 0.60
## Q16 0.70
## Q17 0.90
## Q18 0.85
## Q19 0.73
## Q20 0.81
## Q21 0.95
## Q23 0.54
## Q25 0.44
## Q26 0.47
## Q27 0.84
## Q28 0.73
## Q29 0.77
## Q31
## Q32
## Q33
## Q34 0.51
## Q35 0.82
## Q36 0.58
## Q37 0.60
## Q38 0.77
## Q39 0.61
## Q42 0.47
## Q45 0.47
## Q46
## Q47 0.65
## Q48 0.76
## Q49 0.88
## Q50 0.82
##
## ML1 ML6 ML2 ML5 ML3 ML4 ML7
## SS loadings 4.86 3.62 2.67 2.51 2.46 1.99 1.43
## Proportion Var 0.12 0.09 0.07 0.06 0.06 0.05 0.03
## Cumulative Var 0.12 0.21 0.27 0.33 0.39 0.44 0.48
Item number 33 has the lowest communality among the candidate, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q11 Q13 Q14 Q15 Q16 Q17 Q18
## 0.45 0.44 0.44 0.50 0.38 0.42 0.35 0.39 0.31 0.46 0.43 0.47 0.56 0.60 0.61 0.53
## Q19 Q20 Q21 Q23 Q25 Q26 Q27 Q28 Q29 Q31 Q32 Q33 Q34 Q35 Q36 Q37
## 0.54 0.57 0.68 0.40 0.42 0.35 0.64 0.66 0.66 0.34 0.33 0.41 0.37 0.65 0.52 0.48
## Q38 Q39 Q42 Q45 Q46 Q47 Q48 Q49 Q50
## 0.65 0.54 0.26 0.26 0.34 0.38 0.47 0.66 0.57
min(round(model.efa$communalities, 2))
## [1] 0.26
Items 6, 31, 32, and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train[,-c(24,10,12,30,43,22,41,44,40,33)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML6 ML2 ML5 ML3 ML4 ML7
## Q1 0.76
## Q2 0.73
## Q3 0.71
## Q4 0.75
## Q5 0.71
## Q6
## Q7 0.61
## Q8 0.49
## Q9 0.42
## Q11 0.72
## Q13 0.54
## Q14 0.53
## Q15 0.59
## Q16 0.69
## Q17 0.88
## Q18 0.84
## Q19 0.72
## Q20 0.80
## Q21 0.95
## Q23 0.54
## Q25 0.44
## Q26 0.47
## Q27 0.83
## Q28 0.72
## Q29 0.77
## Q31
## Q32
## Q34 0.51
## Q35 0.83
## Q36 0.59
## Q37 0.59
## Q38 0.77
## Q39 0.60
## Q42 0.46
## Q45 0.47
## Q46
## Q47 0.65
## Q48 0.75
## Q49 0.87
## Q50 0.81
##
## ML1 ML6 ML2 ML5 ML3 ML4 ML7
## SS loadings 4.71 3.44 2.68 2.49 2.34 1.94 1.40
## Proportion Var 0.12 0.09 0.07 0.06 0.06 0.05 0.04
## Cumulative Var 0.12 0.20 0.27 0.33 0.39 0.44 0.48
Item number 32 has the lowest communality among the candidate, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q11 Q13 Q14 Q15 Q16 Q17 Q18
## 0.45 0.44 0.44 0.50 0.38 0.42 0.35 0.39 0.31 0.46 0.43 0.46 0.56 0.60 0.61 0.53
## Q19 Q20 Q21 Q23 Q25 Q26 Q27 Q28 Q29 Q31 Q32 Q34 Q35 Q36 Q37 Q38
## 0.54 0.57 0.68 0.40 0.42 0.35 0.64 0.67 0.66 0.33 0.31 0.37 0.65 0.52 0.48 0.65
## Q39 Q42 Q45 Q46 Q47 Q48 Q49 Q50
## 0.55 0.26 0.26 0.34 0.38 0.47 0.66 0.57
min(round(model.efa$communalities, 2))
## [1] 0.26
Items 6, 31, and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train[,-c(24,10,12,30,43,22,41,44,40,33,32)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML6 ML2 ML5 ML3 ML4 ML7
## Q1 0.74
## Q2 0.72
## Q3 0.70
## Q4 0.74
## Q5 0.70
## Q6
## Q7 0.61
## Q8 0.49
## Q9 0.43
## Q11 0.71
## Q13 0.54
## Q14 0.52
## Q15 0.58
## Q16 0.68
## Q17 0.88
## Q18 0.84
## Q19 0.71
## Q20 0.80
## Q21 0.96
## Q23 0.55
## Q25 0.45
## Q26 0.48
## Q27 0.82
## Q28 0.72
## Q29 0.75
## Q31
## Q34 0.51
## Q35 0.82
## Q36 0.58
## Q37 0.59
## Q38 0.77
## Q39 0.60
## Q42 0.47
## Q45 0.48
## Q46
## Q47 0.67
## Q48 0.73
## Q49 0.87
## Q50 0.78
##
## ML1 ML6 ML2 ML5 ML3 ML4 ML7
## SS loadings 4.55 3.36 2.65 2.54 2.17 1.89 1.46
## Proportion Var 0.12 0.09 0.07 0.07 0.06 0.05 0.04
## Cumulative Var 0.12 0.20 0.27 0.34 0.39 0.44 0.48
Item number 31 has the lowest communality among the candidate, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q11 Q13 Q14 Q15 Q16 Q17 Q18
## 0.44 0.44 0.44 0.50 0.38 0.42 0.36 0.39 0.31 0.46 0.43 0.46 0.56 0.60 0.62 0.53
## Q19 Q20 Q21 Q23 Q25 Q26 Q27 Q28 Q29 Q31 Q34 Q35 Q36 Q37 Q38 Q39
## 0.54 0.57 0.68 0.40 0.42 0.35 0.64 0.67 0.65 0.33 0.37 0.65 0.52 0.48 0.65 0.54
## Q42 Q45 Q46 Q47 Q48 Q49 Q50
## 0.26 0.26 0.34 0.38 0.47 0.68 0.56
min(round(model.efa$communalities, 2))
## [1] 0.26
Items 6 and 46 has factor loadings less than 0.40. This are candidates for deletion.
sample <- osh.train[,-c(24,10,12,30,43,22,41,44,40,33,32,31)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML6 ML2 ML5 ML3 ML4 ML7
## Q1 0.74
## Q2 0.71
## Q3 0.69
## Q4 0.73
## Q5 0.69
## Q6
## Q7 0.60
## Q8 0.48
## Q9 0.42
## Q11 0.70
## Q13 0.53
## Q14 0.52
## Q15 0.58
## Q16 0.67
## Q17 0.87
## Q18 0.83
## Q19 0.70
## Q20 0.79
## Q21 0.94
## Q23 0.54
## Q25 0.44
## Q26 0.47
## Q27 0.82
## Q28 0.72
## Q29 0.75
## Q34 0.52
## Q35 0.85
## Q36 0.59
## Q37 0.60
## Q38 0.78
## Q39 0.60
## Q42 0.46
## Q45 0.48
## Q46
## Q47 0.64
## Q48 0.73
## Q49 0.87
## Q50 0.78
##
## ML1 ML6 ML2 ML5 ML3 ML4 ML7
## SS loadings 4.44 3.28 2.73 2.43 2.15 1.84 1.35
## Proportion Var 0.12 0.09 0.07 0.06 0.06 0.05 0.04
## Cumulative Var 0.12 0.20 0.27 0.34 0.40 0.44 0.48
Item number 46 has the lowest communality among the candidate, therefore should be removed.
print(model.efa$communalities, digits = 2)
## Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q11 Q13 Q14 Q15 Q16 Q17 Q18
## 0.45 0.44 0.44 0.50 0.38 0.42 0.35 0.39 0.31 0.46 0.43 0.46 0.56 0.60 0.62 0.53
## Q19 Q20 Q21 Q23 Q25 Q26 Q27 Q28 Q29 Q34 Q35 Q36 Q37 Q38 Q39 Q42
## 0.54 0.57 0.69 0.39 0.41 0.35 0.64 0.67 0.65 0.37 0.66 0.52 0.48 0.65 0.54 0.26
## Q45 Q46 Q47 Q48 Q49 Q50
## 0.27 0.34 0.38 0.47 0.68 0.56
min(round(model.efa$communalities, 2))
## [1] 0.26
Items 6 has factor loadings less than 0.40 and should be removed.
sample <- osh.train[,-c(24,10,12,30,43,22,41,44,40,33,32,31,46)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML6 ML2 ML5 ML4 ML3 ML7
## Q1 0.73
## Q2 0.71
## Q3 0.69
## Q4 0.72
## Q5 0.69
## Q6
## Q7 0.60
## Q8 0.48
## Q9 0.41
## Q11 0.69
## Q13 0.53
## Q14 0.52
## Q15 0.58
## Q16 0.67
## Q17 0.87
## Q18 0.83
## Q19 0.71
## Q20 0.77
## Q21 0.93
## Q23 0.53
## Q25 0.43
## Q26 0.47
## Q27 0.82
## Q28 0.71
## Q29 0.75
## Q34 0.52
## Q35 0.85
## Q36 0.59
## Q37 0.60
## Q38 0.78
## Q39 0.59
## Q42 0.46
## Q45 0.48
## Q47 0.65
## Q48 0.71
## Q49 0.82
## Q50 0.77
##
## ML1 ML6 ML2 ML5 ML4 ML3 ML7
## SS loadings 4.35 3.29 2.73 2.30 1.91 1.83 1.36
## Proportion Var 0.12 0.09 0.07 0.06 0.05 0.05 0.04
## Cumulative Var 0.12 0.21 0.28 0.34 0.39 0.44 0.48
Final model is achieved.
sample <- osh.train[,-c(24,10,12,30,43,22,41,44,40,33,32,31,46,6)]
model.efa <- fa(sample, nfactors = 7, rotate = "Promax", scores = "regression", fm = "ml")
print(model.efa$loadings, digits = 2, cutoff = 0.4, sort = FALSE)
##
## Loadings:
## ML1 ML6 ML2 ML5 ML4 ML3 ML7
## Q1 0.71
## Q2 0.68
## Q3 0.68
## Q4 0.72
## Q5 0.69
## Q7 0.58
## Q8 0.47
## Q9 0.42
## Q11 0.71
## Q13 0.54
## Q14 0.52
## Q15 0.58
## Q16 0.67
## Q17 0.85
## Q18 0.81
## Q19 0.70
## Q20 0.76
## Q21 0.93
## Q23 0.53
## Q25 0.43
## Q26 0.46
## Q27 0.81
## Q28 0.71
## Q29 0.74
## Q34 0.52
## Q35 0.86
## Q36 0.60
## Q37 0.59
## Q38 0.77
## Q39 0.58
## Q42 0.43
## Q45 0.47
## Q47 0.63
## Q48 0.71
## Q49 0.85
## Q50 0.78
##
## ML1 ML6 ML2 ML5 ML4 ML3 ML7
## SS loadings 4.19 3.13 2.72 2.27 1.94 1.79 1.26
## Proportion Var 0.12 0.09 0.08 0.06 0.05 0.05 0.03
## Cumulative Var 0.12 0.20 0.28 0.34 0.40 0.45 0.48
Reliability looks good since the Chronbach’s \(\alpha\) is about 0.93. Removing items does not produce a better result. Hence, the model is reliable.
alpha(sample)
##
## Reliability analysis
## Call: alpha(x = sample)
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.92 0.93 0.95 0.26 13 0.0043 3.7 0.57 0.25
##
## lower alpha upper 95% confidence boundaries
## 0.91 0.92 0.93
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## Q1 0.92 0.92 0.95 0.26 12 0.0044 0.013 0.24
## Q2 0.92 0.92 0.94 0.26 12 0.0045 0.013 0.24
## Q3 0.92 0.92 0.95 0.26 12 0.0045 0.013 0.24
## Q4 0.92 0.92 0.94 0.26 12 0.0045 0.013 0.24
## Q5 0.92 0.92 0.95 0.26 12 0.0044 0.013 0.24
## Q7 0.92 0.93 0.95 0.26 12 0.0044 0.013 0.24
## Q8 0.92 0.92 0.95 0.26 12 0.0044 0.013 0.24
## Q9 0.92 0.93 0.95 0.26 12 0.0044 0.013 0.25
## Q11 0.92 0.92 0.94 0.26 12 0.0045 0.013 0.24
## Q13 0.92 0.92 0.94 0.26 12 0.0045 0.013 0.24
## Q14 0.92 0.92 0.94 0.26 12 0.0045 0.013 0.24
## Q15 0.92 0.92 0.94 0.26 12 0.0045 0.013 0.24
## Q16 0.92 0.92 0.94 0.26 12 0.0045 0.013 0.24
## Q17 0.92 0.92 0.94 0.26 12 0.0045 0.013 0.24
## Q18 0.92 0.92 0.94 0.26 12 0.0045 0.013 0.24
## Q19 0.92 0.92 0.94 0.26 12 0.0045 0.013 0.24
## Q20 0.92 0.92 0.94 0.26 12 0.0044 0.013 0.24
## Q21 0.92 0.92 0.94 0.26 12 0.0044 0.013 0.24
## Q23 0.92 0.92 0.95 0.26 12 0.0044 0.014 0.24
## Q25 0.92 0.92 0.95 0.26 12 0.0044 0.013 0.24
## Q26 0.92 0.93 0.95 0.26 12 0.0044 0.013 0.24
## Q27 0.92 0.93 0.95 0.26 13 0.0043 0.013 0.25
## Q28 0.92 0.92 0.94 0.26 12 0.0045 0.013 0.24
## Q29 0.92 0.93 0.95 0.26 12 0.0044 0.013 0.25
## Q34 0.92 0.93 0.95 0.26 12 0.0044 0.013 0.25
## Q35 0.92 0.93 0.95 0.26 12 0.0044 0.013 0.25
## Q36 0.92 0.92 0.94 0.26 12 0.0045 0.013 0.24
## Q37 0.92 0.93 0.95 0.27 13 0.0043 0.013 0.25
## Q38 0.92 0.92 0.94 0.26 12 0.0044 0.013 0.25
## Q39 0.92 0.93 0.95 0.26 12 0.0044 0.013 0.25
## Q42 0.92 0.93 0.95 0.27 13 0.0043 0.013 0.25
## Q45 0.92 0.93 0.95 0.27 13 0.0043 0.013 0.25
## Q47 0.92 0.93 0.95 0.27 13 0.0043 0.013 0.25
## Q48 0.92 0.93 0.95 0.27 13 0.0043 0.013 0.25
## Q49 0.92 0.93 0.95 0.26 12 0.0044 0.013 0.25
## Q50 0.92 0.93 0.95 0.26 12 0.0044 0.013 0.25
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## Q1 654 0.56 0.58 0.56 0.53 3.8 0.91
## Q2 654 0.58 0.59 0.58 0.55 3.7 0.97
## Q3 654 0.59 0.60 0.59 0.56 3.9 0.92
## Q4 654 0.60 0.62 0.61 0.57 4.1 0.89
## Q5 654 0.53 0.54 0.52 0.49 4.0 0.94
## Q7 654 0.51 0.53 0.51 0.48 3.8 0.97
## Q8 654 0.57 0.59 0.57 0.54 4.1 0.90
## Q9 654 0.47 0.49 0.47 0.43 4.1 0.86
## Q11 654 0.60 0.61 0.60 0.57 3.8 0.92
## Q13 654 0.60 0.61 0.60 0.57 3.7 1.02
## Q14 654 0.62 0.62 0.61 0.59 3.7 1.10
## Q15 654 0.65 0.65 0.65 0.62 3.5 1.09
## Q16 654 0.67 0.67 0.66 0.64 3.7 1.07
## Q17 654 0.62 0.61 0.61 0.58 3.8 1.15
## Q18 654 0.57 0.56 0.56 0.53 3.7 1.22
## Q19 654 0.62 0.61 0.60 0.58 3.4 1.28
## Q20 654 0.55 0.56 0.55 0.52 4.2 1.09
## Q21 654 0.56 0.57 0.56 0.53 4.2 1.05
## Q23 654 0.54 0.54 0.53 0.50 3.9 1.14
## Q25 654 0.55 0.57 0.55 0.52 4.1 1.00
## Q26 654 0.51 0.51 0.49 0.47 3.9 1.12
## Q27 654 0.44 0.42 0.41 0.39 3.2 1.29
## Q28 654 0.58 0.57 0.56 0.54 3.6 1.10
## Q29 654 0.53 0.51 0.50 0.48 3.4 1.21
## Q34 654 0.47 0.47 0.45 0.43 3.7 1.11
## Q35 654 0.51 0.50 0.49 0.47 4.1 1.08
## Q36 654 0.59 0.59 0.58 0.55 4.1 1.06
## Q37 654 0.41 0.39 0.37 0.36 3.3 1.32
## Q38 654 0.56 0.56 0.55 0.52 3.9 1.10
## Q39 654 0.52 0.50 0.49 0.48 3.5 1.27
## Q42 654 0.38 0.36 0.33 0.32 2.8 1.31
## Q45 654 0.36 0.34 0.31 0.30 3.0 1.42
## Q47 654 0.35 0.32 0.29 0.29 2.3 1.31
## Q48 654 0.36 0.38 0.36 0.32 4.2 0.96
## Q49 654 0.46 0.48 0.46 0.42 4.3 0.91
## Q50 654 0.46 0.48 0.46 0.42 4.1 0.94
##
## Non missing response frequency for each item
## 1 2 3 4 5 miss
## Q1 0.01 0.05 0.29 0.39 0.26 0
## Q2 0.02 0.07 0.28 0.40 0.23 0
## Q3 0.02 0.04 0.27 0.39 0.28 0
## Q4 0.01 0.03 0.20 0.38 0.38 0
## Q5 0.01 0.06 0.22 0.38 0.33 0
## Q7 0.02 0.06 0.30 0.35 0.28 0
## Q8 0.01 0.03 0.19 0.40 0.37 0
## Q9 0.01 0.02 0.18 0.43 0.36 0
## Q11 0.02 0.06 0.28 0.42 0.23 0
## Q13 0.03 0.08 0.32 0.33 0.25 0
## Q14 0.04 0.10 0.26 0.32 0.28 0
## Q15 0.05 0.12 0.28 0.35 0.20 0
## Q16 0.04 0.08 0.28 0.34 0.27 0
## Q17 0.05 0.10 0.22 0.30 0.33 0
## Q18 0.06 0.12 0.20 0.26 0.35 0
## Q19 0.09 0.17 0.24 0.23 0.27 0
## Q20 0.04 0.05 0.14 0.20 0.57 0
## Q21 0.03 0.05 0.12 0.25 0.55 0
## Q23 0.04 0.08 0.20 0.28 0.40 0
## Q25 0.02 0.04 0.19 0.28 0.47 0
## Q26 0.05 0.06 0.23 0.29 0.37 0
## Q27 0.13 0.14 0.28 0.24 0.21 0
## Q28 0.05 0.10 0.30 0.31 0.24 0
## Q29 0.08 0.16 0.27 0.28 0.22 0
## Q34 0.05 0.07 0.29 0.30 0.29 0
## Q35 0.03 0.06 0.16 0.26 0.49 0
## Q36 0.03 0.06 0.19 0.27 0.45 0
## Q37 0.12 0.17 0.25 0.22 0.25 0
## Q38 0.03 0.09 0.19 0.30 0.39 0
## Q39 0.09 0.13 0.25 0.24 0.29 0
## Q42 0.20 0.21 0.28 0.18 0.14 0
## Q45 0.22 0.15 0.26 0.16 0.20 0
## Q47 0.39 0.20 0.20 0.13 0.08 0
## Q48 0.02 0.03 0.18 0.26 0.51 0
## Q49 0.02 0.02 0.15 0.31 0.50 0
## Q50 0.01 0.04 0.22 0.31 0.42 0