## Necessary Libraries loaded.
library(ggplot2)
ggplot(DFvar, aes(x = Org, y = IWB, fill = Sector)) + ylim(1, 7) +
geom_violin(trim = FALSE) + ggtitle("Individual Innovative Work Behaviour (IWB) by Organisation") +
scale_fill_manual(values = c("lightblue", "pink")) +
xlab("") + ylab("") +
geom_boxplot(width = 0.2, fill = "lightgrey") +
geom_jitter(shape = 16, position = position_jitter(0.2)) +
stat_summary(fun.y = mean, geom = "point", shape = 15, size = 5, color = "red") +
theme(
plot.title = element_text(color = "black", size = 35, face = "bold", hjust = 0.5, margin = margin(30,0,30,0)),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.x = element_text(color = "darkblue", size = 30, margin = margin(30,0,0,0)),
axis.text.y = element_text(color = "darkblue", size = 30, margin = margin(0,30,0,0)),
panel.background = element_rect(fill = "white", colour = "grey", size = 0.5, linetype = "solid"),
panel.grid.major = element_line(size = 0.5, linetype = 'solid', colour = "lightblue"),
plot.margin = margin(2, 2, 2, 2, "cm"),
legend.position = "top",
legend.title =element_blank(),
legend.text = element_text(size = 25))
library(RcmdrMisc)
## Loading required package: sandwich
##
## Attaching package: 'RcmdrMisc'
## The following object is masked from 'package:psych':
##
## reliability
numSummary(DFvar$IWB,
groups = DFvar$Org,
statistics = c("mean", "sd", "skewness", "kurtosis", "quantiles"),
quantiles = c(0.0, 0.25, 0.5, 0.75, 1.00))
## mean sd skewness kurtosis 0% 25% 50% 75% 100% data:n
## Private1 5.091 1.1254 -0.5235 -0.2731 2.111 4.472 5.111 6.000 7.000 90
## Private2 5.006 0.9753 -0.5676 -0.2870 1.778 4.222 5.167 5.889 6.444 128
## Private3 4.771 1.0767 -0.1944 0.5547 2.333 4.167 4.667 5.500 7.000 29
## Public1 4.731 1.1847 -0.6806 -0.4105 1.889 4.028 5.000 5.750 6.222 26
## Public2 4.453 1.0426 -0.2478 0.1286 1.778 3.889 4.556 5.111 7.000 155
## Public3 4.632 1.1316 -0.7535 1.0568 1.000 3.889 4.833 5.333 6.889 54
# Conduct a single-factor EFA
# install.packages("lavaan")
EFA_Pax <- fa(DFs, )
# View the results
# print(EFA_Pax)
# View the factor loadings
# EFA_Pax$loadings
# Plot factor scores
plot(density(EFA_Pax$scores, na.rm = TRUE), main = "Factor Scores", size = 2, col = "blue")
grid(nx = NULL, ny = NULL, col = "lightgray", lty = "dotted")
The plot of factor scores indicates the distribution of all survey ratings assuming they all belong to a common factor.
Evaluating Model Structure with Indices: RMSR < 0.08, SRMR < 0.08, TLI > 0.90, CFI > 0.90, i.e. model fit is acceptable with seven factors. Scree Plot hints to eight factors instead of seven proposed by our variables. Therefore, we may need to split one less consistently structured factor into two.
# Calculate the correlation matrix first
DFS_EFA_corr <- cor(DFs, use = "pairwise.complete.obs")
# Then use that correlation matrix to calculate eigenvalues
eigenvals <- eigen(DFS_EFA_corr)
# Look at the eigenvalues returned
eigenvals$values
## [1] 28.4010 7.9071 3.9078 2.7397 1.4387 1.3085 1.1872 1.0916 1.0194
## [10] 1.0049 0.9391 0.9017 0.8229 0.7906 0.7537 0.7240 0.7033 0.6908
## [19] 0.6654 0.6556 0.6103 0.5983 0.5674 0.5527 0.5388 0.5356 0.5236
## [28] 0.5214 0.5022 0.4846 0.4771 0.4585 0.4528 0.4485 0.4445 0.4196
## [37] 0.4082 0.4014 0.3893 0.3809 0.3692 0.3630 0.3566 0.3505 0.3305
## [46] 0.3293 0.3212 0.3121 0.3103 0.2980 0.2890 0.2825 0.2779 0.2687
## [55] 0.2636 0.2573 0.2459 0.2381 0.2308 0.2226 0.2171 0.2110 0.2066
## [64] 0.1938 0.1889 0.1836 0.1830 0.1738 0.1686 0.1618 0.1549 0.1511
## [73] 0.1445 0.1378 0.1217 0.1158
# Prepare PDF
# pdf("ScreePlot.pdf", width = 25, height = 16)
# par(mai=c(2, 2, 2, 2))
# par(oma=c(2, 2, 2, 2))
# Plot Scree Plot
plot(eigenvals$values, log = "y",
main = "Scree Plot for Eigenvalues",
xlab = "Factor", xlim = c(0, 20),
ylab = "Eigenvalue of Factor", ylim = c(0.5, 25),
type = "o" # connect dots with line.
)
abline(h = 1, col = "red", lty = 5)
text(x = 12,
y = 1,
labels = "Eigenvalue of 1", cex = 1.0,
pos = 3,
col = "red")
grid(nx = NULL, ny = NULL, col = "lightgray", lty = "dotted")
# dev.off()
# Use the correlation matrix to create the scree plot
# scree(DFS_EFA_corr, factors = TRUE)
# Run the EFA with 7 factors (as indicated by scree plot)
library(psych)
EFA_model <- fa(DFs, nfactors = 7)
## Loading required namespace: GPArotation
print(EFA_model)
## Factor Analysis using method = minres
## Call: fa(r = DFs, nfactors = 7)
## Standardized loadings (pattern matrix) based upon correlation matrix
## MR1 MR2 MR3 MR4 MR5 MR6 MR7 h2 u2 com
## Q001 0.64 0.24 0.10 0.08 -0.19 -0.17 0.07 0.55 0.45 1.7
## Q002 0.66 0.25 0.07 0.00 -0.15 -0.12 0.00 0.54 0.46 1.5
## Q003 0.56 0.31 0.13 0.13 -0.17 -0.11 0.12 0.50 0.50 2.3
## Q004 0.62 0.19 0.14 0.04 0.01 -0.08 -0.08 0.46 0.54 1.4
## Q005 0.59 0.28 0.11 0.03 0.12 -0.19 -0.08 0.49 0.51 1.9
## Q006 0.67 0.29 0.07 0.05 0.02 -0.08 -0.15 0.57 0.43 1.6
## Q007 0.55 0.34 0.19 0.08 0.28 -0.14 0.05 0.56 0.44 2.8
## Q008 0.44 0.23 0.17 0.19 -0.04 0.02 0.20 0.35 0.65 2.8
## Q009 0.51 0.21 0.15 0.09 -0.02 -0.14 -0.01 0.36 0.64 1.8
## Q010 0.46 0.34 0.25 0.26 0.03 -0.13 0.00 0.47 0.53 3.4
## Q011 0.66 0.17 0.24 0.06 -0.03 -0.06 -0.14 0.55 0.45 1.5
## Q012 0.61 0.12 0.22 0.06 -0.06 -0.09 0.00 0.45 0.55 1.4
## Q013 0.64 -0.47 -0.07 0.10 0.08 -0.12 0.01 0.66 0.34 2.1
## Q014 0.58 -0.47 0.03 0.18 -0.08 0.05 -0.01 0.60 0.40 2.2
## Q015 0.62 -0.53 0.02 0.17 0.07 -0.07 -0.07 0.70 0.30 2.2
## Q016 0.61 -0.45 0.02 0.15 0.09 0.06 -0.03 0.61 0.39 2.1
## Q017 0.65 -0.45 -0.11 -0.01 0.03 -0.17 -0.03 0.67 0.33 2.0
## Q018 0.67 -0.50 -0.04 0.08 -0.03 0.04 0.01 0.71 0.29 1.9
## Q019 0.63 -0.43 0.02 0.22 -0.09 0.03 -0.06 0.64 0.36 2.1
## Q020 0.68 -0.42 0.00 0.19 -0.06 -0.02 -0.03 0.68 0.32 1.9
## Q021 0.66 -0.48 -0.03 0.09 -0.03 -0.06 -0.10 0.69 0.31 1.9
## Q022 0.65 -0.49 0.01 0.12 -0.06 0.01 -0.06 0.68 0.32 2.0
## Q023 0.66 -0.52 -0.02 0.06 0.03 -0.08 -0.07 0.71 0.29 2.0
## Q024 0.70 -0.48 -0.02 0.13 -0.04 -0.04 0.01 0.75 0.25 1.9
## Q025 0.56 -0.51 -0.05 0.09 -0.02 0.04 0.03 0.59 0.41 2.1
## Q026 0.59 -0.55 -0.02 0.07 -0.01 0.12 -0.04 0.68 0.32 2.1
## Q027 0.64 -0.49 -0.03 0.08 -0.02 0.00 -0.06 0.66 0.34 1.9
## Q028 0.64 -0.52 -0.10 0.05 0.06 0.00 -0.01 0.69 0.31 2.0
## Q029 0.51 -0.58 -0.10 -0.03 0.07 -0.10 0.03 0.62 0.38 2.2
## Q030 0.38 -0.18 -0.08 0.14 -0.02 0.06 0.11 0.22 0.78 2.1
## Q031 0.63 -0.21 -0.20 0.10 -0.01 -0.03 0.05 0.50 0.50 1.5
## Q032 0.66 -0.54 -0.03 0.01 0.11 -0.11 -0.03 0.76 0.24 2.1
## Q033 0.65 -0.06 0.33 -0.21 -0.03 0.25 0.04 0.64 0.36 2.1
## Q034 0.62 -0.11 0.35 -0.24 -0.07 0.18 0.05 0.62 0.38 2.3
## Q035 0.61 -0.20 0.34 -0.26 -0.03 0.23 0.04 0.65 0.35 2.6
## Q037 0.39 -0.17 0.23 -0.39 0.04 -0.10 0.02 0.40 0.60 3.2
## Q038 0.57 -0.14 0.33 -0.31 -0.01 0.01 0.07 0.56 0.44 2.4
## Q044 0.55 -0.15 0.32 -0.29 -0.08 0.07 0.15 0.55 0.45 2.7
## Q045 0.57 -0.07 0.37 -0.17 0.04 0.20 -0.09 0.55 0.45 2.3
## Q049 0.59 -0.12 0.23 -0.41 0.04 0.03 0.04 0.59 0.41 2.3
## Q050 0.43 -0.09 0.18 -0.48 0.15 0.00 0.02 0.48 0.52 2.6
## Q051 0.54 -0.04 0.18 -0.43 0.10 -0.12 -0.11 0.55 0.45 2.5
## Q054 0.53 -0.03 0.22 -0.31 0.02 -0.18 -0.03 0.46 0.54 2.3
## Q055 0.62 0.30 -0.03 0.00 -0.20 0.07 -0.12 0.54 0.46 1.8
## Q057 0.60 0.30 0.00 -0.04 -0.22 0.03 -0.15 0.52 0.48 2.0
## Q058 0.60 0.26 -0.03 -0.08 -0.06 0.02 -0.21 0.48 0.52 1.7
## Q059 0.65 0.39 0.05 0.07 -0.15 0.09 -0.15 0.63 0.37 2.0
## Q060 0.62 0.39 -0.09 -0.22 -0.04 -0.04 -0.14 0.61 0.39 2.1
## Q061 0.59 0.42 -0.09 -0.09 -0.06 -0.12 -0.07 0.56 0.44 2.1
## Q062 0.69 0.28 -0.18 0.08 0.08 0.18 -0.14 0.66 0.34 1.8
## Q063 0.51 0.17 -0.37 -0.12 0.12 0.07 -0.14 0.48 0.52 2.6
## Q064 0.65 0.25 -0.35 0.06 0.19 0.15 -0.12 0.69 0.31 2.4
## Q066 0.61 0.28 -0.26 0.03 0.15 0.19 -0.10 0.58 0.42 2.3
## Q067 0.68 0.27 -0.32 -0.08 0.11 0.16 -0.03 0.69 0.31 2.0
## Q068 0.67 0.29 -0.43 -0.02 0.08 0.06 -0.08 0.73 0.27 2.2
## Q069 0.45 0.11 -0.27 -0.02 0.05 0.13 -0.09 0.31 0.69 2.2
## Q070 0.58 0.17 0.18 0.11 -0.13 0.11 0.08 0.45 0.55 1.7
## Q071 0.67 0.08 0.18 0.04 -0.16 0.09 -0.02 0.52 0.48 1.4
## Q072 0.50 0.29 0.20 0.25 -0.18 0.07 0.09 0.48 0.52 3.1
## Q075 0.65 0.37 0.07 0.00 -0.12 -0.17 -0.07 0.61 0.39 1.9
## Q076 0.66 0.37 -0.02 -0.06 0.03 -0.09 -0.10 0.60 0.40 1.7
## Q077 0.55 0.22 0.15 0.23 -0.06 -0.07 0.03 0.44 0.56 2.0
## Q081 0.44 0.21 0.16 0.24 -0.18 0.17 0.07 0.39 0.61 3.2
## Q083 0.50 0.28 0.31 0.26 0.35 0.05 0.06 0.62 0.38 3.9
## Q084 0.53 0.34 0.23 0.22 0.32 0.01 0.12 0.62 0.38 3.5
## Q085 0.57 0.30 0.32 0.20 0.31 0.01 0.08 0.66 0.34 3.2
## Q086 0.47 0.23 0.31 0.29 0.14 0.10 0.09 0.50 0.50 3.6
## Q087 0.74 0.18 -0.34 -0.05 -0.05 0.02 0.11 0.70 0.30 1.6
## Q088 0.71 0.11 -0.33 -0.10 -0.04 -0.01 0.15 0.67 0.33 1.6
## Q089 0.72 0.17 -0.30 0.02 -0.09 0.05 0.07 0.65 0.35 1.5
## Q090 0.59 0.03 -0.21 -0.07 0.08 0.11 0.17 0.44 0.56 1.6
## Q091 0.72 0.15 -0.37 -0.16 0.00 -0.05 0.15 0.74 0.26 1.8
## Q092 0.72 0.13 -0.27 -0.05 -0.01 -0.05 0.09 0.62 0.38 1.4
## Q093 0.71 0.17 -0.37 -0.15 0.01 -0.09 0.22 0.74 0.26 2.0
## Q094 0.71 0.11 -0.33 -0.21 -0.03 -0.10 0.15 0.70 0.30 1.8
## Q095 0.67 0.08 -0.30 -0.05 -0.05 0.03 0.27 0.62 0.38 1.8
##
## MR1 MR2 MR3 MR4 MR5 MR6 MR7
## SS loadings 28.00 7.53 3.50 2.28 1.01 0.86 0.74
## Proportion Var 0.37 0.10 0.05 0.03 0.01 0.01 0.01
## Cumulative Var 0.37 0.47 0.51 0.54 0.56 0.57 0.58
## Proportion Explained 0.64 0.17 0.08 0.05 0.02 0.02 0.02
## Cumulative Proportion 0.64 0.81 0.89 0.94 0.96 0.98 1.00
##
## Mean item complexity = 2.1
## Test of the hypothesis that 7 factors are sufficient.
##
## The degrees of freedom for the null model are 2850 and the objective function was 61.91 with Chi Square of 28161
## The degrees of freedom for the model are 2339 and the objective function was 8.77
##
## The root mean square of the residuals (RMSR) is 0.02
## The df corrected root mean square of the residuals is 0.03
##
## The harmonic number of observations is 482 with the empirical chi square 1538 with prob < 1
## The total number of observations was 482 with Likelihood Chi Square = 3947 with prob < 6.2e-86
##
## Tucker Lewis Index of factoring reliability = 0.922
## RMSEA index = 0.038 and the 90 % confidence intervals are 0.036 0.04
## BIC = -10503
## Fit based upon off diagonal values = 1
## Measures of factor score adequacy
## MR1 MR2 MR3 MR4 MR5 MR6
## Correlation of (regression) scores with factors 0.99 0.98 0.95 0.92 0.84 0.82
## Multiple R square of scores with factors 0.99 0.95 0.90 0.84 0.71 0.68
## Minimum correlation of possible factor scores 0.97 0.91 0.80 0.68 0.43 0.36
## MR7
## Correlation of (regression) scores with factors 0.81
## Multiple R square of scores with factors 0.65
## Minimum correlation of possible factor scores 0.30
Error plots give an idea of potential misfitting items (questions/statements) per factor (variable.)
# Create mean scores and confidence intervals
library(psych)
error.dots(Creativ, eyes = TRUE, sort = FALSE, main = "Creative Role Identity - CI Around Mean", xlim = c(1, 7), lcolor = "azure2")
error.dots(InnoReady, eyes = TRUE, sort = FALSE, main = "Individual Innovation Readyness - CI Around Mean", xlim = c(1, 7), lcolor = "pink")
error.dots(IRJP, eyes = TRUE, sort = FALSE, main = "In-Role Job Performance - CI Around Mean", xlim = c(1, 7), lcolor = "darkgoldenrod1")
error.dots(PsyCap, eyes = TRUE, sort = FALSE, main = "PsyCap - CI Around Mean", xlim = c(1, 7), lcolor = "lightblue")
error.dots(Support, eyes = TRUE, sort = FALSE, main = "Support for Innovation - CI Around Mean", xlim = c(1, 7), lcolor = "orange")
error.dots(Lead, eyes = TRUE, sort = FALSE, main = "Transformational Leadership - CI Around Mean", xlim = c(1, 7), lcolor = "lightgreen")