Title: | Estimates Pareto-Optimal Solution for Hiring with 3 Objectives |
---|---|
Description: | Estimates Pareto-optimal solution for personnel selection with 3 objectives using Normal Boundary Intersection (NBI) algorithm introduced by Das and Dennis (1998) <doi:10.1137/S1052623496307510>. Takes predictor intercorrelations and predictor-objective relations as input and generates a series of solutions containing predictor weights as output. Accepts between 3 and 10 selection predictors. Maximum 2 objectives could be adverse impact objectives. Partially modeled after De Corte (2006) TROFSS Fortran program <https://users.ugent.be/~wdecorte/trofss.pdf> and updated from 'ParetoR' package described in Song et al. (2017) <doi:10.1037/apl0000240>. For details, see Study 3 of Zhang et al. (2023). |
Authors: | Chelsea Song [aut, cre]
|
Maintainer: | Chelsea Song <[email protected]> |
License: | MIT + file LICENSE |
Version: | 1.0.1 |
Built: | 2025-02-01 03:27:13 UTC |
Source: | https://github.com/cran/rMOST |
Optimizes 3 objectives with normal boundary intersection algorithm
MOST(optProb, Rx, Rxy1, Rxy2, Rxy3, sr, prop1, prop2, d1, d2, Spac = 10)
MOST(optProb, Rx, Rxy1, Rxy2, Rxy3, sr, prop1, prop2, d1, d2, Spac = 10)
optProb |
Optimization problem. "3C" = no adverse impact objectives and three non-adverse impact objectives; "2C_1AI" = one adverse impact objective and two non-adverse impact objectives; "1C_2AI" = two adverse impact objectives and one non-adverse impact objective. |
Rx |
Predictor intercorrelation matrix |
Rxy1 |
Needs to specify for all three types of optimization problems (optProb). Predictor criterion-related validity for non-adverse impact objective 1 (i.e., correlation between each predictor and non-adverse impact objective 1) |
Rxy2 |
Only specify if optimization problem is "3C" or "2C_1AI". Predictor criterion-related validity for non-adverse impact objective 2 (i.e., correlation between each predictor and non-adverse impact objective 2) |
Rxy3 |
Only specify if optimization problem is "3C". Predictor criterion-related validity for non-adverse impact objective 3 (i.e., correlation between each predictor and non-adverse impact objective 3) |
sr |
Only specify if optimization problem is "2C_1AI" or "1C_2AI". Overall selection ratio. |
prop1 |
Only specify if optimization problem is "2C_1AI" or "1C_2AI". Proportion of minority1 in the applicant pool; prop1 = (# of minority1 applicants)/(total # of applicants) |
prop2 |
Only specify if optimization problem is "1C_2AI". Proportion of minority2 in the applicant pool; prop2 = (# of minority2 applicants)/(total # of applicants) |
d1 |
Only specify if optimization problem is "2C_1AI" or "1C_2AI". Vector of standardized group-mean differences between majority and minority 1 for each predictor; d1 = avg_majority - avg_minority1 |
d2 |
Only specify if optimization problem is "1C_2AI". Vector of standardized group-mean differences between majority and minority 2 for each predictor; d2 = avg_majority - avg_minority2 |
Spac |
Determines the number of solutions. |
# Inputs required by optimization problems Different types of optimization problems require different input parameters: * optProb = "3C": MOST(optProb, Rx, Rxy1, Rxy2, Rxy3) * optProb = "2C_1AI": MOST(optProb, Rx, Rxy1, Rxy2, sr, prop1, d1) * optProb = "1C_2AI": MOST(optProb, Rx, Rxy1, sr, prop1, d1, prop2, d2)
# Notes regarding the inputs * For personnel selection applications, all predictor-intercorrelations and criterion-related validity inputs should be corrected for range restriction and criterion unreliability to reflect the relations in the applicant sample. * For optimization problems with 2 adverse impact objectives (i.e., optProb = "1C_2AI"), d1 and d2 should be the standardized mean difference between a minority group and the same reference group (e.g., Black-White and Hispanic-White, not Black-White and female-male)
# Optimization * Optimization may take several minutes to run. * Optimization may fail in some applications due to non-convergence.
For more details, please consult the vignette.
Pareto-Optimal solutions with objective values (e.g., C1, AI1) and the corresponding predictor weights (e.g., P1, P2)
# A sample optimization problem with 3 non-adverse impact objectives and 3 predictors # For more examples, please consult the vignette. # Specify inputs # Predictor inter-correlation matrix (Rx) Rx <- matrix(c(1, .50, .50, .50, 1, .50, .50, .50, 1), 3, 3) # Predictor-objective relation vectors (Rxy1, Rxy2, Rxy3) # Criterion-related validities ## Criterion 1 Rxy1 <- c(-.30, 0, .30) ## Criterion 2 Rxy2 <- c(0, .30, -.30) ## Criterion 3 Rxy3 <- c(.30, -.30, 0) # Get Pareto-optimal solutions out <- MOST(optProb = "3C", Rx = Rx, Rxy1 = Rxy1, Rxy2 = Rxy2, Rxy3 = Rxy3, Spac = 10) out
# A sample optimization problem with 3 non-adverse impact objectives and 3 predictors # For more examples, please consult the vignette. # Specify inputs # Predictor inter-correlation matrix (Rx) Rx <- matrix(c(1, .50, .50, .50, 1, .50, .50, .50, 1), 3, 3) # Predictor-objective relation vectors (Rxy1, Rxy2, Rxy3) # Criterion-related validities ## Criterion 1 Rxy1 <- c(-.30, 0, .30) ## Criterion 2 Rxy2 <- c(0, .30, -.30) ## Criterion 3 Rxy3 <- c(.30, -.30, 0) # Get Pareto-optimal solutions out <- MOST(optProb = "3C", Rx = Rx, Rxy1 = Rxy1, Rxy2 = Rxy2, Rxy3 = Rxy3, Spac = 10) out
Command function to optimize 1 non-adverse impact objective and 2 adverse impact objectives via NBI algorithm
ParetoR_1C_2AIR(sr, prop1, prop2, Rx, Rxy1, d1, d2, Spac = 10)
ParetoR_1C_2AIR(sr, prop1, prop2, Rx, Rxy1, d1, d2, Spac = 10)
sr |
Selection ratio in the full applicant pool |
prop1 |
Proportion of minority1 applicants in the full applicant pool |
prop2 |
Proportion of minority2 applicants in the full applicant pool |
Rx |
Matrix with intercorrelations among predictors |
Rxy1 |
Vector with correlation between each predictor and the non-adverse impact objective |
d1 |
Subgroup difference 1; standardized mean differences between minority1 and majority subgroups on each predictor in full applicant pool |
d2 |
Subgroup difference 2; standardized mean differences between minority2 and majority subgroups on each predictor in full applicant pool |
Spac |
Number of solutions |
out Pareto-Optimal solution with objective outcome values (Criterion) and predictor weights (ParetoWeights)
Command function to optimize 2 non-adverse impact objectives via NBI algorithm
ParetoR_2C(Rx, Rxy1, Rxy2, Spac = 10, graph = TRUE)
ParetoR_2C(Rx, Rxy1, Rxy2, Spac = 10, graph = TRUE)
Rx |
Matrix with intercorrelations among predictors |
Rxy1 |
Vector with correlation between each predictor and non-adverse impact objective 1 |
Rxy2 |
Vector with correlation between each predictor and non-adverse impact objective 2 |
Spac |
Number of Pareto points |
graph |
If TRUE, plots will be generated for Pareto-optimal curve and predictor weights |
out Pareto-Optimal solution with objective outcome values (Criterion) and predictor weights (ParetoWeights)
Command function to optimize 2 non-adverse impact objectives and 1 adverse impact objective via NBI algorithm
ParetoR_2C_1AIR(Rx, Rxy1, Rxy2, sr, prop1, d1, Spac = 10)
ParetoR_2C_1AIR(Rx, Rxy1, Rxy2, sr, prop1, d1, Spac = 10)
Rx |
Matrix with intercorrelations among predictors |
Rxy1 |
Vector with correlation between each predictor and non-adverse impact objective 1 |
Rxy2 |
Vector with correlation between each predictor and non-adverse impact objective 2 |
sr |
Selection ratio in full applicant pool |
prop1 |
Proportion of minority applicants in full applicant pool |
d1 |
Subgroup difference; standardized mean differences between minority and majority subgroups on each predictor in full applicant pool |
Spac |
Number of Pareto points |
out Pareto-Optimal solution with objective outcome values (Criterion) and predictor weights (ParetoWeights)
Command function to optimize 3 non-adverse impact objectives via NBI algorithm
ParetoR_3C(Rx, Rxy1, Rxy2, Rxy3, Spac = 10)
ParetoR_3C(Rx, Rxy1, Rxy2, Rxy3, Spac = 10)
Rx |
Matrix with intercorrelations among predictors |
Rxy1 |
Vector with correlation between each predictor and non-adverse impact objective 1 |
Rxy2 |
Vector with correlation between each predictor and non-adverse impact objective 2 |
Rxy3 |
Vector with correlation between each predictor and non-adverse impact objective 3 |
Spac |
Number of solutions |
out Pareto-Optimal solution with objective outcome values (Criterion) and predictor weights (ParetoWeights)