1 Preparing Data

1.1 Load Libraries

## Necessary Libraries loaded.

1.2 Load Data

2 Overview of Raw Data

2.1 Histograms of all IWB for all Organisations

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))

2.2 Descriptive Statistics of Individual Innovative Work Behaviour

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

3 Studying Data

3.1 Running EFA for Pax Data (DFs)

# 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.

3.2 Evaluating data with factor analysis

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

3.3 Error Plot of Data for all Items (Questions)

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")