rMOST-vignette"

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
library(rMOST)

This document presents the example application of the rMOST package. Please refer to Study 3 of Zhang et al. (in press) for a complete guideline on adopting multi-objective optimization for personnel selection.

Prepare inputs

Note that different input parameters are required for different types of optimization problems. Below are the inputs needed for an example multi-objective optimization problem with 5 predictors.

## Input ##

# Predictor intercorrelation matrix
Rx <- matrix(c(  1,  .37, .51, .16, .25,
               .37,   1, .03, .31, .02,
               .51, .03,   1, .13, .34,
               .16, .31, .13,   1,-.02,
               .25, .02, .34,-.02,   1), 5, 5)

# Criterion validity of the predictors
Rxy1 <- c(.32, .52, .22, .48, .20) 
Rxy2 <- c(.30, .35, .15, .25, .10)
Rxy3 <- c(.15, .25, .30, .35, .10)

# Overall selection ratio
sr <- 0.15

# Proportion of minority applicants
prop_b <- 1/8 # Proportion of Black applicants (i.e., (# of Black applicants)/(# of all applicants))
prop_h <- 1/6 # Proportion of Hispanic applicants

# Predictor subgroup d
d_wb <- c(.39, .72, -.09, .39, .04) # White-Black subgroup difference
d_wh <- c(.17, .79, .08, .04, -.14) # White-Hispanic subgroup difference

Obtain MOO solutions

3 Non-adverse impact objectives

An example of such a MOO problem is when an organization seeks to optimize job performance, retention, and organizational commitment.

# Example: 3 non-adverse impact objectives
out_3C = MOST(optProb = "3C", 
              # predictor intercorrelations
              Rx = Rx, 
              # predictor - objective relations
              Rxy1 = Rxy1, # non-AI objective 1
              Rxy2 = Rxy2, # non-AI objective 2
              Rxy3 = Rxy3, # non-AI objective 3
              Spac = 10)

# The first few solutions
head(out_3C)

2 Non-adverse impact objectives and 1 adverse-impact objective

An example of such a MOO problem is when an organization seeks to optimize job performance, retention, and Black-white adverse impact ratio.

# Example: 2 non-adverse impact objectives & 1 adverse impact objective 
out_2C_1AI = MOST(optProb = "2C_1AI", 
                  # predictor intercorrelations
                  Rx = Rx, 
                  # predictor - objective relations
                  Rxy1 = Rxy1, # non-AI objective 1
                  Rxy2 = Rxy2, # non-AI objective 2
                  d1 = d_wb, # subgroup difference for minority 1
                  # selection ratio
                  sr = sr, 
                  # proportion of minority
                  prop1 = prop_b, # minority 1
                  Spac = 10)

# The first few solutions
head(out_2C_1AI)

1 Non-adverse impact objectives and 2 adverse-impact objectives

An example of such a MOO problem is when an organization seeks to optimize job performance, Black-white adverse impact ratio, and Hispanic-white adverse impact ratio. Note that the 2 adverse-impact objectives should have the same reference group. For example, the objectives can be Black-white adverse impact ratio and Hispanic-white adverse impact ratio. The objectives cannot be Black-white adverse impact ratio and female-male adverse impact ratio.

# Example: 1 non-adverse impact objective & 2 adverse impact objectives 
out_1C_2AI = MOST(optProb = "1C_2AI",
                  # predictor intercorrelations
                  Rx = Rx, 
                  # predictor - objective relations
                  Rxy1 = Rxy1, # non-AI objective 1
                  d1 = d_wb, # subgroup difference for minority 1
                  d2 = d_wh, # subgroup difference for minority 2
                  # selection ratio
                  sr = sr, 
                  # proportion of minority 
                  prop1 = prop_b, # minority 1
                  prop2 = prop_h, # minority 2
                  Spac = 10)

# The first few solutions
head(out_1C_2AI)

Understand and use the results

Each row of the output corresponds to a set of predictor weights and the corresponding outcome for each of the three objectives.
Columns 3 - 5: the expected outcome values for each objective
Columns 6 - : the weights assigned to each predictor

Given the output of rMOST::MOST(), users can select a final solution (i.e., a final set of predictor weights) based on their goal. Predictor weights of the final solution could be used to create a predictor composite to be used in selection.

Take solution 1 in an optimization problem with 3 non-adverse impact objectives as an example. This solution assigns the weight of r out_3C[1, 6] to predictor P1, r out_3C[1, 7] to predictor P2, r out_3C[1, 8] to predictor P3, r out_3C[1, 9] to predictor P4, and r out_3C[1, 10] to predictor P5.

out_3C[1, 6:ncol(out_3C)]

Assuming a top-down selection, a predictor composite created with these weights would result in the following outcomes. The predictor composite would have a validity of r out_3C[1, 3] for objective C1, r out_3C[1, 4] for objective C2, and r out_3C[1, 5] for objective C3.

out_3C[1, 3:5]


Try the rMOST package in your browser

Any scripts or data that you put into this service are public.

rMOST documentation built on Nov. 9, 2023, 1:08 a.m.