## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.1     ✔ readr     2.2.0
## ✔ ggplot2   4.0.1     ✔ stringr   1.6.0
## ✔ lubridate 1.9.4     ✔ tibble    3.3.0
## ✔ purrr     1.2.0     ✔ tidyr     1.3.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
## corrplot 0.95 loaded
## 
## 
## Attaching package: 'psych'
## 
## 
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
## 
## 
## 
## Attaching package: 'GPArotation'
## 
## 
## The following objects are masked from 'package:psych':
## 
##     equamax, varimin

Exploratory analysis of challenges

In order challenges are: Managerial competence, technical capabilities, manpower, hiring/ retaining certified operators, paying for operations and maintenance, financing infrastructure, high water quality, complying with regulations, communications with customers

Correlation of: .3-.49= moderate to low, .5-.69= moderate, .7-.89= strong, .9-1= very strong

Exploratory analysis of benefits

In order benefits are: Managerial competence, technical capabilities, manpower, hiring/ maintain operators, efficiencies in admin costs, access to financial resources, water supply availability, ability to respond to unexpected events

Challenge correlation matrix (complete observations only)

Using complete observations only, all correlations are significant

Benefit correlation matrix (complete observations only)

Using complete observations only, all correlations are significant

KMO Test for appropriateness of factor analysis

Challenge test

Overall MSA .86 = “meritorious” suited for factor analysis

## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = chal_only)
## Overall MSA =  0.86
## MSA for each item = 
##  HRChallenge_Managerial_Competence HRChallenge_Technical_Capabilities 
##                               0.85                               0.85 
##               HRChallenge_Manpower                 HRChallenge_Hiring 
##                               0.85                               0.86 
##          Challenge_Ops_Maintenance Challenge_Financing_Infrastructure 
##                               0.84                               0.83 
##            Challenge_Water_Quality              Challenge_Regulations 
##                               0.88                               0.90 
##                 Challenge_Customer 
##                               0.94

Benefit test

Overall MSA for benefits is .92 “marvelous” well suited for factor analysis

## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = ben_only)
## Overall MSA =  0.92
## MSA for each item = 
##          HR_Partnership_Aid_Managerial           HR_Partnership_Aid_Technical 
##                                   0.91                                   0.90 
##            HR_Partnership_Aid_Manpower              HR_Partnership_Aid_Hiring 
##                                   0.90                                   0.92 
##         FT_Partnership_Aid_Admin_Costs FT_Partnership_Aid_Financial_Resources 
##                                   0.92                                   0.92 
##        FT_Partnership_Aid_Water_Supply          FT_Partnership_Aid_Unexpected 
##                                   0.92                                   0.93 
##            FT_Partnership_Aid_Customer 
##                                   0.93

Challenge

Challenge scree plot

More conservative estimate “non-graphical solution to scree test,” which suggests 2 factors

## Parallel analysis suggests that the number of factors =  4  and the number of components =  NA

Challenge eigenvalues

2 eigenvalues over 1, suggesting 2 factors

## [1] 4.58 1.09 0.86 0.62 0.57 0.42 0.32 0.30 0.24

#Factor analysis interp notes

RMSR <.1, ideally <.05

Cumulative variance >60%

Primary loading > .5

Cross loading -I’ve seen thresholds of .32 and .4 as the cutoff for too high

Oblimin rotation: factors are likely correlated. I do consider these factors to be correlated in reality

Challenge Factors

Challenge 2 factors rotated with oblimin

## Factor Analysis using method =  pa
## Call: fa(r = cor_chal, nfactors = 2, rotate = "oblimin", fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                                      PA1   PA2   h2   u2 com
## HRChallenge_Managerial_Competence   0.80 -0.03 0.61 0.39 1.0
## HRChallenge_Technical_Capabilities  0.82  0.01 0.68 0.32 1.0
## HRChallenge_Manpower                0.80  0.01 0.65 0.35 1.0
## HRChallenge_Hiring                  0.66  0.04 0.48 0.52 1.0
## Challenge_Ops_Maintenance          -0.05  0.80 0.59 0.41 1.0
## Challenge_Financing_Infrastructure -0.03  0.73 0.51 0.49 1.0
## Challenge_Water_Quality             0.04  0.67 0.49 0.51 1.0
## Challenge_Regulations               0.11  0.59 0.45 0.55 1.1
## Challenge_Customer                  0.21  0.40 0.32 0.68 1.5
## 
##                        PA1  PA2
## SS loadings           2.55 2.23
## Proportion Var        0.28 0.25
## Cumulative Var        0.28 0.53
## Proportion Explained  0.53 0.47
## Cumulative Proportion 0.53 1.00
## 
##  With factor correlations of 
##     PA1 PA2
## PA1 1.0 0.7
## PA2 0.7 1.0
## 
## Mean item complexity =  1.1
## Test of the hypothesis that 2 factors are sufficient.
## 
## df null model =  36  with the objective function =  4.2
## df of  the model are 19  and the objective function was  0.46 
## 
## The root mean square of the residuals (RMSR) is  0.04 
## The df corrected root mean square of the residuals is  0.05 
## 
## Fit based upon off diagonal values = 0.99
## Measures of factor score adequacy             
##                                                    PA1  PA2
## Correlation of (regression) scores with factors   0.81 0.78
## Multiple R square of scores with factors          0.65 0.61
## Minimum correlation of possible factor scores     0.31 0.23

Dropping customer communication

First I drop customer communication because in the output above it has a low primary loading, and high u^2 (uniqueness not explained by the factor).

The result looks okay, slightly low explained cumulative variance (.56), but good RMSR (.04). Loadings look good.

## Factor Analysis using method =  pa
## Call: fa(r = cor_chal_revised, nfactors = 2, rotate = "oblimin", fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                                      PA1   PA2   h2   u2 com
## HRChallenge_Managerial_Competence   0.82 -0.05 0.62 0.38 1.0
## HRChallenge_Technical_Capabilities  0.84  0.00 0.70 0.30 1.0
## HRChallenge_Manpower                0.76  0.05 0.63 0.37 1.0
## HRChallenge_Hiring                  0.64  0.07 0.47 0.53 1.0
## Challenge_Ops_Maintenance          -0.04  0.85 0.68 0.32 1.0
## Challenge_Financing_Infrastructure -0.01  0.76 0.57 0.43 1.0
## Challenge_Water_Quality             0.16  0.53 0.42 0.58 1.2
## Challenge_Regulations               0.21  0.48 0.40 0.60 1.4
## 
##                        PA1  PA2
## SS loadings           2.55 1.94
## Proportion Var        0.32 0.24
## Cumulative Var        0.32 0.56
## Proportion Explained  0.57 0.43
## Cumulative Proportion 0.57 1.00
## 
##  With factor correlations of 
##      PA1  PA2
## PA1 1.00 0.65
## PA2 0.65 1.00
## 
## Mean item complexity =  1.1
## Test of the hypothesis that 2 factors are sufficient.
## 
## df null model =  28  with the objective function =  3.9
## df of  the model are 13  and the objective function was  0.38 
## 
## The root mean square of the residuals (RMSR) is  0.04 
## The df corrected root mean square of the residuals is  0.06 
## 
## Fit based upon off diagonal values = 0.99
## Measures of factor score adequacy             
##                                                    PA1  PA2
## Correlation of (regression) scores with factors   0.83 0.81
## Multiple R square of scores with factors          0.69 0.65
## Minimum correlation of possible factor scores     0.38 0.30

#Drop regulation

Trying dropping regulation, but then water quality doesn’t load

## Factor Analysis using method =  pa
## Call: fa(r = cor_chal_revised_reg_dropped, nfactors = 2, rotate = "oblimin", 
##     fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                                     PA1   PA2   h2   u2 com
## HRChallenge_Managerial_Competence  0.83 -0.07 0.63 0.37 1.0
## HRChallenge_Technical_Capabilities 0.84 -0.01 0.70 0.30 1.0
## HRChallenge_Manpower               0.75  0.07 0.64 0.36 1.0
## HRChallenge_Hiring                 0.63  0.09 0.47 0.53 1.0
## Challenge_Ops_Maintenance          0.00  0.85 0.72 0.28 1.0
## Challenge_Financing_Infrastructure 0.00  0.81 0.65 0.35 1.0
## Challenge_Water_Quality            0.25  0.39 0.34 0.66 1.7
## 
##                        PA1  PA2
## SS loadings           2.51 1.62
## Proportion Var        0.36 0.23
## Cumulative Var        0.36 0.59
## Proportion Explained  0.61 0.39
## Cumulative Proportion 0.61 1.00
## 
##  With factor correlations of 
##      PA1  PA2
## PA1 1.00 0.61
## PA2 0.61 1.00
## 
## Mean item complexity =  1.1
## Test of the hypothesis that 2 factors are sufficient.
## 
## df null model =  21  with the objective function =  3.3
## df of  the model are 8  and the objective function was  0.24 
## 
## The root mean square of the residuals (RMSR) is  0.03 
## The df corrected root mean square of the residuals is  0.05 
## 
## Fit based upon off diagonal values = 1
## Measures of factor score adequacy             
##                                                    PA1  PA2
## Correlation of (regression) scores with factors   0.85 0.82
## Multiple R square of scores with factors          0.72 0.67
## Minimum correlation of possible factor scores     0.44 0.35

Challenge 3 factors rotated with oblimin

Trying out three factors, customer communication still it’s own thing which would leave only two variables for factor 3 which is not ideal. Not the right fit.

## Factor Analysis using method =  pa
## Call: fa(r = cor_chal, nfactors = 3, rotate = "oblimin", fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                                     PA1   PA2   PA3   h2   u2 com
## HRChallenge_Managerial_Competence  0.74 -0.14  0.21 0.63 0.37 1.2
## HRChallenge_Technical_Capabilities 0.76 -0.05  0.17 0.67 0.33 1.1
## HRChallenge_Manpower               0.83  0.15 -0.14 0.72 0.28 1.1
## HRChallenge_Hiring                 0.68  0.15 -0.11 0.52 0.48 1.2
## Challenge_Ops_Maintenance          0.03  0.77  0.10 0.70 0.30 1.0
## Challenge_Financing_Infrastructure 0.04  0.74  0.05 0.63 0.37 1.0
## Challenge_Water_Quality            0.03  0.20  0.66 0.62 0.38 1.2
## Challenge_Regulations              0.13  0.18  0.53 0.51 0.49 1.4
## Challenge_Customer                 0.22  0.09  0.40 0.36 0.64 1.7
## 
##                        PA1  PA2  PA3
## SS loadings           2.57 1.53 1.27
## Proportion Var        0.29 0.17 0.14
## Cumulative Var        0.29 0.45 0.60
## Proportion Explained  0.48 0.29 0.24
## Cumulative Proportion 0.48 0.76 1.00
## 
##  With factor correlations of 
##      PA1  PA2  PA3
## PA1 1.00 0.54 0.49
## PA2 0.54 1.00 0.45
## PA3 0.49 0.45 1.00
## 
## Mean item complexity =  1.2
## Test of the hypothesis that 3 factors are sufficient.
## 
## df null model =  36  with the objective function =  4.2
## df of  the model are 12  and the objective function was  0.2 
## 
## The root mean square of the residuals (RMSR) is  0.02 
## The df corrected root mean square of the residuals is  0.04 
## 
## Fit based upon off diagonal values = 1
## Measures of factor score adequacy             
##                                                    PA1  PA2  PA3
## Correlation of (regression) scores with factors   0.82 0.76 0.71
## Multiple R square of scores with factors          0.67 0.57 0.50
## Minimum correlation of possible factor scores     0.34 0.15 0.00

Benefit

Benefit scree plot

More conservative estimate says 1 factor

## Parallel analysis suggests that the number of factors =  3  and the number of components =  NA

Benefit eigenvalues

1 eigenvalue above 1

## [1] 5.62 0.94 0.53 0.47 0.41 0.34 0.27 0.23 0.20

Benefit 1 factor rotated with oblimin

## Factor Analysis using method =  pa
## Call: fa(r = cor_ben, nfactors = 1, rotate = "oblimin", fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                                         PA1   h2   u2 com
## HR_Partnership_Aid_Managerial          0.78 0.60 0.40   1
## HR_Partnership_Aid_Technical           0.82 0.68 0.32   1
## HR_Partnership_Aid_Manpower            0.81 0.66 0.34   1
## HR_Partnership_Aid_Hiring              0.76 0.57 0.43   1
## FT_Partnership_Aid_Admin_Costs         0.80 0.63 0.37   1
## FT_Partnership_Aid_Financial_Resources 0.73 0.53 0.47   1
## FT_Partnership_Aid_Water_Supply        0.59 0.35 0.65   1
## FT_Partnership_Aid_Unexpected          0.81 0.66 0.34   1
## FT_Partnership_Aid_Customer            0.73 0.53 0.47   1
## 
##                 PA1
## SS loadings    5.21
## Proportion Var 0.58
## 
## Mean item complexity =  1
## Test of the hypothesis that 1 factor is sufficient.
## 
## df null model =  36  with the objective function =  6.1
## df of  the model are 27  and the objective function was  0.78 
## 
## The root mean square of the residuals (RMSR) is  0.05 
## The df corrected root mean square of the residuals is  0.06 
## 
## Fit based upon off diagonal values = 0.99
## Measures of factor score adequacy             
##                                                    PA1
## Correlation of (regression) scores with factors   0.96
## Multiple R square of scores with factors          0.93
## Minimum correlation of possible factor scores     0.86

Benefit 1 factor with water supply availability dropped

Just to try it out, does improve the RMSR and the explained proportion of variance, not by a ton. Think about leaving it out?

## Factor Analysis using method =  pa
## Call: fa(r = cor_ben_revised_no_supply, nfactors = 1, rotate = "oblimin", 
##     fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
##                                         PA1   h2   u2 com
## HR_Partnership_Aid_Managerial          0.79 0.63 0.37   1
## HR_Partnership_Aid_Technical           0.84 0.71 0.29   1
## HR_Partnership_Aid_Manpower            0.82 0.68 0.32   1
## HR_Partnership_Aid_Hiring              0.77 0.59 0.41   1
## FT_Partnership_Aid_Admin_Costs         0.79 0.62 0.38   1
## FT_Partnership_Aid_Financial_Resources 0.71 0.51 0.49   1
## FT_Partnership_Aid_Unexpected          0.79 0.63 0.37   1
## FT_Partnership_Aid_Customer            0.70 0.50 0.50   1
## 
##                 PA1
## SS loadings    4.86
## Proportion Var 0.61
## 
## Mean item complexity =  1
## Test of the hypothesis that 1 factor is sufficient.
## 
## df null model =  28  with the objective function =  5.6
## df of  the model are 20  and the objective function was  0.6 
## 
## The root mean square of the residuals (RMSR) is  0.04 
## The df corrected root mean square of the residuals is  0.05 
## 
## Fit based upon off diagonal values = 0.99
## Measures of factor score adequacy             
##                                                    PA1
## Correlation of (regression) scores with factors   0.96
## Multiple R square of scores with factors          0.93
## Minimum correlation of possible factor scores     0.86