5.12 Rotated factor solution
In this illustration, we assume there exist correlation between the factors. So, we will use the oblique rotation with rotate = "oblimin"
, and common factor analysis as maximum likelihood, i.e., fm = "ml"
.
We use the codes below to examine the rotated factor solutions.
# three factor solution
rotated_three_factors <- fa(data.us.only, nfactors = 3, rotate = "oblimin", fm = "ml")
print(rotated_three_factors, sort = T, cut = .30)
## Factor Analysis using method = ml
## Call: fa(r = data.us.only, nfactors = 3, rotate = "oblimin", fm = "ml")
## Standardized loadings (pattern matrix) based upon correlation matrix
## item ML1 ML3 ML2 h2 u2 com
## AUICT4 15 0.85 0.68 0.32 1.0
## AUICT1 12 0.72 0.51 0.49 1.1
## AUICT2 13 0.65 0.53 0.47 1.3
## AUICT5 16 0.62 0.48 0.52 1.2
## AUICT3 14 0.62 0.49 0.51 1.2
## COMPICT5 11 0.51 0.47 0.53 1.5
## COMPICT4 10 0.49 0.46 0.54 1.6
## COMPICT2 8 0.38 0.35 0.46 0.54 2.2
## INTICT3 3 0.73 0.49 0.51 1.0
## INTICT6 6 0.73 0.56 0.44 1.0
## INTICT2 2 0.62 0.37 0.63 1.0
## COMPICT3 9 0.59 0.48 0.52 1.3
## INTICT4 4 0.56 0.48 0.52 1.4
## INTICT1 1 0.51 0.24 0.76 1.1
## INTICT5 5 0.44 0.23 0.77 1.4
## COMPICT1 7 0.40 0.30 0.70 1.5
## SOIAICT4 20 0.85 0.73 0.27 1.0
## SOIAICT5 21 0.77 0.60 0.40 1.0
## SOIAICT2 18 0.74 0.58 0.42 1.0
## SOIAICT1 17 0.64 0.43 0.57 1.0
## SOIAICT3 19 0.61 0.43 0.57 1.0
##
## ML1 ML3 ML2
## SS loadings 3.55 3.42 3.05
## Proportion Var 0.17 0.16 0.15
## Cumulative Var 0.17 0.33 0.48
## Proportion Explained 0.35 0.34 0.30
## Cumulative Proportion 0.35 0.70 1.00
##
## With factor correlations of
## ML1 ML3 ML2
## ML1 1.00 0.44 0.47
## ML3 0.44 1.00 0.28
## ML2 0.47 0.28 1.00
##
## Mean item complexity = 1.2
## Test of the hypothesis that 3 factors are sufficient.
##
## df null model = 210 with the objective function = 9.5 with Chi Square = 51537.58
## df of the model are 150 and the objective function was 1.03
##
## The root mean square of the residuals (RMSR) is 0.04
## The df corrected root mean square of the residuals is 0.05
##
## The harmonic n.obs is 5433 with the empirical chi square 3918.91 with prob < 0
## The total n.obs was 5433 with Likelihood Chi Square = 5603.36 with prob < 0
##
## Tucker Lewis Index of factoring reliability = 0.851
## RMSEA index = 0.082 and the 90 % confidence intervals are 0.08 0.084
## BIC = 4313.32
## Fit based upon off diagonal values = 0.98
## Measures of factor score adequacy
## ML1 ML3 ML2
## Correlation of (regression) scores with factors 0.94 0.92 0.94
## Multiple R square of scores with factors 0.88 0.86 0.88
## Minimum correlation of possible factor scores 0.77 0.71 0.76
The three factor solution produces fine solution. We noticed that AUICT1-5
and COMPICT2, COMPICT4, COMPICT5
load on the first factor; INTICT1-6
, COMPICT3, COMPICT1
load on the second factor; and SOIAICT1-5
load on the third factor. The model fit result shows that the three factor solution has poor model data fit.
# Extract model fit indices
RMSEA_three_fac <- rotated_three_factors$RMSEA[1]
TLI_three_fac <- rotated_three_factors$TLI
RMSR_three_fac <- rotated_three_factors$rms
# Combined the fit indices
fit.indices_three_fac <- round(rbind(RMSEA_three_fac, TLI_three_fac, RMSR_three_fac),
digits = 3)
colnames(fit.indices_three_fac) <- "Model fit indices"
fit.indices_three_fac
## Model fit indices
## RMSEA_three_fac 0.082
## TLI_three_fac 0.851
## RMSR_three_fac 0.041
Let’s explore the rotated six factor solution.
# six factor solution
rotated_six_factors <- fa(data.us.only, nfactors = 6, rotate = "oblimin", fm = "ml")
print(rotated_six_factors, sort = T, cut = .30)
## Factor Analysis using method = ml
## Call: fa(r = data.us.only, nfactors = 6, rotate = "oblimin", fm = "ml")
## Standardized loadings (pattern matrix) based upon correlation matrix
## item ML2 ML1 ML4 ML3 ML5 ML6 h2 u2 com
## SOIAICT4 20 0.85 0.73 0.27 1.0
## SOIAICT5 21 0.79 0.61 0.39 1.0
## SOIAICT2 18 0.72 0.58 0.42 1.0
## SOIAICT1 17 0.69 0.46 0.54 1.1
## SOIAICT3 19 0.58 0.44 0.56 1.1
## COMPICT5 11 0.84 0.70 0.30 1.0
## COMPICT4 10 0.80 0.65 0.35 1.0
## COMPICT2 8 0.64 0.57 0.43 1.1
## COMPICT3 9 0.44 0.52 0.48 2.9
## COMPICT1 7 0.41 0.34 0.66 1.7
## AUICT3 14 0.81 0.68 0.32 1.0
## AUICT5 16 0.73 0.61 0.39 1.0
## AUICT4 15 0.44 0.36 0.65 0.35 2.5
## INTICT2 2 0.81 0.61 0.39 1.0
## INTICT3 3 0.60 0.56 0.44 1.3
## AUICT1 12 0.73 0.64 0.36 1.0
## AUICT2 13 0.68 0.64 0.36 1.1
## INTICT5 5 0.64 0.41 0.59 1.0
## INTICT6 6 0.32 0.42 0.58 0.42 2.3
## INTICT1 1 0.35 0.27 0.73 1.7
## INTICT4 4 0.34 0.35 0.52 0.48 3.1
##
## ML2 ML1 ML4 ML3 ML5 ML6
## SS loadings 2.92 2.56 1.86 1.62 1.47 1.32
## Proportion Var 0.14 0.12 0.09 0.08 0.07 0.06
## Cumulative Var 0.14 0.26 0.35 0.43 0.50 0.56
## Proportion Explained 0.25 0.22 0.16 0.14 0.13 0.11
## Cumulative Proportion 0.25 0.47 0.62 0.76 0.89 1.00
##
## With factor correlations of
## ML2 ML1 ML4 ML3 ML5 ML6
## ML2 1.00 0.42 0.34 0.17 0.47 0.31
## ML1 0.42 1.00 0.58 0.41 0.46 0.36
## ML4 0.34 0.58 1.00 0.43 0.53 0.28
## ML3 0.17 0.41 0.43 1.00 0.07 0.47
## ML5 0.47 0.46 0.53 0.07 1.00 0.07
## ML6 0.31 0.36 0.28 0.47 0.07 1.00
##
## Mean item complexity = 1.4
## Test of the hypothesis that 6 factors are sufficient.
##
## df null model = 210 with the objective function = 9.5 with Chi Square = 51537.58
## df of the model are 99 and the objective function was 0.2
##
## The root mean square of the residuals (RMSR) is 0.01
## The df corrected root mean square of the residuals is 0.02
##
## The harmonic n.obs is 5433 with the empirical chi square 504.69 with prob < 1.1e-55
## The total n.obs was 5433 with Likelihood Chi Square = 1087.12 with prob < 5e-166
##
## Tucker Lewis Index of factoring reliability = 0.959
## RMSEA index = 0.043 and the 90 % confidence intervals are 0.041 0.045
## BIC = 235.69
## Fit based upon off diagonal values = 1
## Measures of factor score adequacy
## ML2 ML1 ML4 ML3 ML5 ML6
## Correlation of (regression) scores with factors 0.94 0.93 0.91 0.89 0.90 0.83
## Multiple R square of scores with factors 0.88 0.87 0.84 0.79 0.80 0.69
## Minimum correlation of possible factor scores 0.76 0.74 0.67 0.57 0.61 0.39
The six factor solution is quite messy but produces good model data fit.
# Extract model fit indices
RMSEA_six_fac <- rotated_six_factors$RMSEA[1]
TLI_six_fac <- rotated_six_factors$TLI
RMSR_six_fac <- rotated_six_factors$rms
# Combined the fit indices
fit.indices_six_fac <- round(rbind(RMSEA_six_fac, TLI_six_fac, RMSR_six_fac),
digits = 3)
colnames(fit.indices_six_fac) <- "Model fit indices"
fit.indices_six_fac
## Model fit indices
## RMSEA_six_fac 0.043
## TLI_six_fac 0.959
## RMSR_six_fac 0.015
Let’s explore the rotated four factor solution.
# four factor solution
rotated_four_factors <- fa(data.us.only, nfactors = 4, rotate = "oblimin", fm = "pa")
print(rotated_four_factors, sort = T, cut = .30)
## Factor Analysis using method = pa
## Call: fa(r = data.us.only, nfactors = 4, rotate = "oblimin", fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
## item PA2 PA4 PA3 PA1 h2 u2 com
## SOIAICT4 20 0.85 0.72 0.28 1.0
## SOIAICT5 21 0.76 0.59 0.41 1.0
## SOIAICT2 18 0.75 0.59 0.41 1.0
## SOIAICT1 17 0.63 0.43 0.57 1.0
## SOIAICT3 19 0.60 0.43 0.57 1.0
## AUICT4 15 0.77 0.68 0.32 1.1
## AUICT3 14 0.70 0.56 0.44 1.2
## AUICT5 16 0.67 0.54 0.46 1.2
## AUICT1 12 0.66 0.51 0.49 1.1
## AUICT2 13 0.61 0.54 0.46 1.4
## INTICT3 3 0.73 0.54 0.46 1.0
## INTICT6 6 0.66 0.57 0.43 1.1
## INTICT2 2 0.60 0.40 0.60 1.1
## INTICT4 4 0.53 0.49 0.51 1.5
## INTICT1 1 0.49 0.26 0.74 1.1
## INTICT5 5 0.41 0.23 0.77 1.5
## COMPICT5 11 0.81 0.67 0.33 1.0
## COMPICT4 10 0.77 0.62 0.38 1.0
## COMPICT2 8 0.69 0.59 0.41 1.1
## COMPICT1 7 0.46 0.34 0.66 1.5
## COMPICT3 9 0.40 0.45 0.50 0.50 2.1
##
## PA2 PA4 PA3 PA1
## SS loadings 3.02 2.63 2.63 2.53
## Proportion Var 0.14 0.13 0.13 0.12
## Cumulative Var 0.14 0.27 0.39 0.51
## Proportion Explained 0.28 0.24 0.24 0.23
## Cumulative Proportion 0.28 0.52 0.77 1.00
##
## With factor correlations of
## PA2 PA4 PA3 PA1
## PA2 1.00 0.44 0.20 0.43
## PA4 0.44 1.00 0.32 0.62
## PA3 0.20 0.32 1.00 0.45
## PA1 0.43 0.62 0.45 1.00
##
## Mean item complexity = 1.2
## Test of the hypothesis that 4 factors are sufficient.
##
## df null model = 210 with the objective function = 9.5 with Chi Square = 51537.58
## df of the model are 132 and the objective function was 0.52
##
## The root mean square of the residuals (RMSR) is 0.03
## The df corrected root mean square of the residuals is 0.03
##
## The harmonic n.obs is 5433 with the empirical chi square 1598.07 with prob < 5.9e-250
## The total n.obs was 5433 with Likelihood Chi Square = 2830.5 with prob < 0
##
## Tucker Lewis Index of factoring reliability = 0.916
## RMSEA index = 0.061 and the 90 % confidence intervals are 0.059 0.063
## BIC = 1695.27
## Fit based upon off diagonal values = 0.99
## Measures of factor score adequacy
## PA2 PA4 PA3 PA1
## Correlation of (regression) scores with factors 0.94 0.93 0.91 0.93
## Multiple R square of scores with factors 0.88 0.87 0.83 0.86
## Minimum correlation of possible factor scores 0.76 0.73 0.65 0.73
# Extract model fit indices
RMSEA_four_fac <- rotated_four_factors$RMSEA[1]
TLI_four_fac <- rotated_four_factors$TLI
RMSR_four_fac <- rotated_four_factors$rms
# Combined the fit indices
fit.indices_four_fac <- round(rbind(RMSEA_four_fac, TLI_four_fac, RMSR_four_fac),
digits = 3)
colnames(fit.indices_four_fac) <- "Model fit indices"
fit.indices_four_fac
## Model fit indices
## RMSEA_four_fac 0.061
## TLI_four_fac 0.916
## RMSR_four_fac 0.026
The four factor solution produces finer solution with good model data fit. One observation worth considering is COMPICT3
loading on the same factor with INTICT1-6
. Let’s compare the question COMPICT3
which is IC014Q06NA
with those of INTICT1-6
. This results shows that students of Chile perceived COMPICT3
as an item measuring ICT Interest. Also, COMPICT3
has cross loading, i.e., load strongly on both the second and third factor. By changing fm = "ml"
to fm = "pa"
, the problem is solved and all the items load on their respective factors. COMPICT3
still has cross loading, but it is evident that this item loads well on the third factor. Additionally, the least communality for the rotated four factor solution are acceptable.
From these results, it is evident that the four factor solution produces the best factor structure with a good model data fit. This answers the research question. Thus, the ICT engagement questionnaire has four factor structure, which confirms prior study findings.
We can export the factor loading and model data fit as follows.