| Title: | Utility Analysis Methods for Personnel Selection |
| Version: | 1.0.2 |
| Description: | Implements classical and contemporary utility-analysis methods for personnel selection, organised by criterion scale (classification or continuous/monetary) and selection structure (compensatory or multiple-hurdle). Methods include Taylor-Russell classification (Taylor and Russell, 1939, <doi:10.1037/h0057079>), Brogden-Cronbach-Gleser monetary utility (Brogden, 1949, <doi:10.1111/j.1744-6570.1949.tb01397.x>), Schmidt-Hunter-Pearlman intervention utility (Schmidt and others, 1979, <doi:10.1037/0021-9010.64.6.609>), Sturman comprehensive cascade (Sturman, 2001, <doi:10.1108/eb029072>), Thomas-Owen-Gunst multivariate classification (Thomas and others, 1977, <doi:10.3102/10769986002001055>), compensatory versus multiple-hurdle simulation (Ock and Oswald, 2018, <doi:10.1027/1866-5888/a000205>), AUC-to-effect-size conversions (Salgado, 2018, <doi:10.5093/ejpalc2018a5>), Pareto frontiers for validity-diversity trade-offs, and Monte Carlo uncertainty propagation. |
| License: | MIT + file LICENSE |
| URL: | https://github.com/rgempp/personnelSelectionUtility, https://gempp.cl/personnelSelectionUtility/ |
| BugReports: | https://github.com/rgempp/personnelSelectionUtility/issues |
| Depends: | R (≥ 4.1.0) |
| Imports: | mvtnorm, stats |
| Suggests: | knitr, rmarkdown, testthat (≥ 3.0.0) |
| VignetteBuilder: | knitr |
| Encoding: | UTF-8 |
| Config/testthat/edition: | 3 |
| Config/roxygen2/version: | 8.0.0 |
| NeedsCompilation: | no |
| Packaged: | 2026-05-16 00:24:02 UTC; rene.gempp |
| Author: | René Gempp |
| Maintainer: | René Gempp <rene.gempp@udp.cl> |
| Repository: | CRAN |
| Date/Publication: | 2026-05-20 08:50:02 UTC |
personnelSelectionUtility: Utility analysis methods for personnel selection
Description
The goal of personnelSelectionUtility is to provide a comprehensive and
user-friendly way to apply utility-analysis methods for personnel selection.
It was created and is maintained by René Gempp to
systematize state-of-the-art methods using consistent notation across
classification, continuous, monetary, incremental-validity, simulation, and
fairness-oriented summaries.
Details
The package is organized around two core decisions: the scale of the
criterion (classification versus continuous/monetary outcomes) and the
structure of the selection rule (compensatory versus conjunctive or staged
multiple-hurdle systems). Start with model_taxonomy() and
argument_glossary() to choose the appropriate family of functions. Use the
AUC conversion helpers only when evidence is reported as AUC and a
correlation-like effect-size input is needed.
Author
René Gempp, Facultad de Administración y Economía, Universidad Diego Portales. Email: rene.gempp@udp.cl. Website: https://gempp.cl.
Author(s)
Maintainer: René Gempp rene.gempp@udp.cl (ORCID) [copyright holder]
Authors:
René Gempp rene.gempp@udp.cl (ORCID) [copyright holder]
References
Boudreau, J. W. (1991). Utility analysis for decisions in human resource management. In M. D. Dunnette & L. M. Hough (Eds.), Handbook of industrial and organizational psychology (Vol. 2, pp. 621-745). Consulting Psychologists Press.
Brogden, H. E. (1949). When testing pays off. Personnel Psychology, 2, 171-183.
Cronbach, L. J., & Gleser, G. C. (1965). Psychological tests and personnel decisions (2nd ed.). University of Illinois Press.
Hanley, J. A., & McNeil, B. J. (1982). The meaning and use of the area under a receiver operating characteristic (ROC) curve. Radiology, 143(1), 29-36.
Holling, H. (1998). Utility analysis of personnel selection: An overview and empirical study based on objective performance measures. Methods of Psychological Research Online, 3(1), 5-24.
Ock, J., & Oswald, F. L. (2018). The utility of personnel selection decisions: Comparing compensatory and multiple-hurdle selection models. Journal of Personnel Psychology, 17(4), 172-182.
Rice, M. E., & Harris, G. T. (2005). Comparing effect sizes in follow-up studies: ROC area, Cohen's d, and r. Law and Human Behavior, 29(5), 615-620.
Salgado, J. F. (2018). Transforming the area under the normal curve (AUC) into Cohen's d, Pearson's r_pb, odds-ratio, and natural log odds-ratio: Two conversion tables. The European Journal of Psychology Applied to Legal Context, 10(1), 35-47.
Sturman, M. C. (2001). Utility analysis for multiple selection devices and multiple outcomes. Journal of Human Resource Costing and Accounting, 6(2), 9-28.
Taylor, H. C., & Russell, J. T. (1939). The relationship of validity coefficients to the practical effectiveness of tests in selection. Journal of Applied Psychology, 23, 565-578.
Thomas, J. G., Owen, D. B., & Gunst, R. F. (1977). Improving the use of educational tests as selection tools. Journal of Educational Statistics, 2(1), 55-77.
See Also
model_taxonomy(), argument_glossary(), tr_classic(),
tr_multivariate(), bcg_utility(), boudreau_utility(),
compare_selection_systems_staged(), auc_to_point_biserial().
Adverse-impact ratio by group
Description
Computes selection rates and adverse-impact ratios by group. If no reference group is supplied, the highest selection-rate group is used as reference.
Usage
adverse_impact_ratio(selected, group, reference = NULL)
Arguments
selected |
Logical or 0/1 vector indicating selection. |
group |
Group membership vector. |
reference |
Optional reference group. |
Value
A data frame with selection rates and ratios.
References
De Corte, W., Lievens, F., & Sackett, P. R. (2007). Combining predictors to achieve optimal trade-offs between selection quality and adverse impact. Journal of Applied Psychology, 92, 1380-1393.
Pyburn, K. M., Ployhart, R. E., & Kravitz, D. A. (2008). The diversity- validity dilemma: Overview and legal context. Personnel Psychology, 61, 143-151.
Examples
# Literature: Pyburn, Ployhart, and Kravitz (2008); De Corte et al. (2007).
adverse_impact_ratio(c(1, 0, 1, 1, 0, 0), c("A", "A", "A", "B", "B", "B"))
Argument naming glossary
Description
Returns the package's recommended argument names and the notation they map to in the utility-analysis literature. The glossary is intended to make the API explicit and to avoid mixing compact statistical notation with readable R argument names.
Usage
argument_glossary()
Value
A data frame with argument names, literature notation, and usage notes.
References
Sturman, M. C. (2001). Utility analysis for multiple selection devices and multiple outcomes. Journal of Human Resource Costing and Accounting, 6(2), 9-28.
Holling, H. (1998). Utility analysis of personnel selection: An overview and empirical study based on objective performance measures. Methods of Psychological Research Online, 3(1), 5-24.
Examples
# Literature: Holling (1998); Sturman (2001).
argument_glossary()
subset(argument_glossary(), argument %in% c("base_rate", "selection_ratio", "sdy"))
Convert AUC to Cohen's d under the equal-variance binormal model
Description
Converts AUC to Cohen's d using d = \sqrt{2}\Phi^{-1}(AUC). This
conversion assumes two normal distributions with equal variances and should
therefore be interpreted as a model-based effect-size conversion, not as a
universal transformation from classifier accuracy to personnel-selection
validity.
Usage
auc_to_d_equal_variance(auc)
Arguments
auc |
Area under the ROC curve. Must be in |
Value
Numeric vector of Cohen's d values.
References
Hanley, J. A., & McNeil, B. J. (1982). The meaning and use of the area under a receiver operating characteristic (ROC) curve. Radiology, 143(1), 29-36.
Rice, M. E., & Harris, G. T. (2005). Comparing effect sizes in follow-up studies: ROC area, Cohen's d, and r. Law and Human Behavior, 29(5), 615-620.
Salgado, J. F. (2018). Transforming the area under the normal curve (AUC) into Cohen's d, Pearson's r_pb, odds-ratio, and natural log odds-ratio: Two conversion tables. The European Journal of Psychology Applied to Legal Context, 10(1), 35-47.
Examples
# Minimal example based on the equal-variance binormal conversion.
auc_to_d_equal_variance(.75)
# Direction is preserved: AUC below .50 implies a negative effect.
auc_to_d_equal_variance(.40)
Convert AUC to a point-biserial correlation
Description
Converts AUC to Cohen's d under the equal-variance binormal model and then converts d to a point-biserial correlation for a user-specified base rate. This is the preferred correlation-like conversion when a utility-analysis function requires a validity input but the available evidence is reported as AUC.
Usage
auc_to_point_biserial(auc, base_rate = 0.5)
Arguments
auc |
Area under the ROC curve. Must be in |
base_rate |
Proportion in the focal or successful group, usually denoted
|
Value
Numeric vector of point-biserial correlations.
References
Hanley, J. A., & McNeil, B. J. (1982). The meaning and use of the area under a receiver operating characteristic (ROC) curve. Radiology, 143(1), 29-36.
Rice, M. E., & Harris, G. T. (2005). Comparing effect sizes in follow-up studies: ROC area, Cohen's d, and r. Law and Human Behavior, 29(5), 615-620.
Salgado, J. F. (2018). Transforming the area under the normal curve (AUC) into Cohen's d, Pearson's r_pb, odds-ratio, and natural log odds-ratio: Two conversion tables. The European Journal of Psychology Applied to Legal Context, 10(1), 35-47.
Examples
# Minimal example: AUC to d, then to r_pb for a balanced binary criterion.
auc_to_point_biserial(.75)
# Substantive example: examine how base rate affects the implied r_pb.
auc_to_point_biserial(.75, base_rate = c(.50, .30, .20, .10))
Superseded AUC-to-r conversion
Description
auc_to_r() is retained as a backward-compatible alias for
auc_to_point_biserial() with base_rate = .50. New code should use the more
explicit conversion family: auc_to_rank_biserial(),
auc_to_d_equal_variance(), d_to_point_biserial(), and
auc_to_point_biserial().
Usage
auc_to_r(auc, base_rate = 0.5)
Arguments
auc |
Area under the ROC curve. Must be in |
base_rate |
Proportion in the focal or successful group, usually denoted
|
Value
Numeric vector of point-biserial correlations.
References
Rice, M. E., & Harris, G. T. (2005). Comparing effect sizes in follow-up studies: ROC area, Cohen's d, and r. Law and Human Behavior, 29(5), 615-620.
Salgado, J. F. (2018). Transforming the area under the normal curve (AUC) into Cohen's d, Pearson's r_pb, odds-ratio, and natural log odds-ratio: Two conversion tables. The European Journal of Psychology Applied to Legal Context, 10(1), 35-47.
Examples
# Backward-compatible alias; prefer auc_to_point_biserial().
auc_to_r(.75)
Convert AUC to a rank-biserial correlation
Description
Converts the area under the ROC curve to the rank-biserial correlation,
r_{rb} = 2 AUC - 1. This is a distribution-free dominance summary: it
rescales the probability that a randomly chosen successful applicant is ranked
above a randomly chosen unsuccessful applicant from the [0, 1] AUC scale to
the [-1, 1] correlation-like scale.
Usage
auc_to_rank_biserial(auc)
Arguments
auc |
Area under the ROC curve. Must be in |
Value
Numeric vector of rank-biserial correlations.
References
Hanley, J. A., & McNeil, B. J. (1982). The meaning and use of the area under a receiver operating characteristic (ROC) curve. Radiology, 143(1), 29-36.
Kerby, D. S. (2014). The simple difference formula: An approach to teaching nonparametric correlation. Comprehensive Psychology, 3, 11.IT.3.1.
Rice, M. E., & Harris, G. T. (2005). Comparing effect sizes in follow-up studies: ROC area, Cohen's d, and r. Law and Human Behavior, 29(5), 615-620.
Examples
# Minimal example: AUC = .50 implies no dominance.
auc_to_rank_biserial(.50)
# AUC = .75 means 75% favorable pairwise ordering; r_rb = .50.
auc_to_rank_biserial(.75)
Brogden-Cronbach-Gleser utility
Description
Computes classical Brogden-Cronbach-Gleser utility. By default the baseline is
random selection (baseline_validity = 0), but an operating baseline can be
supplied using baseline_validity and, optionally, baseline_selection_ratio.
Usage
bcg_utility(
validity,
selection_ratio,
sdy,
n_selected,
tenure,
cost = 0,
baseline_validity = 0,
baseline_selection_ratio = NULL
)
Arguments
validity |
Validity of the focal selection system, usually denoted |
selection_ratio |
Selection ratio of the focal system. |
sdy |
Standard deviation of job performance in monetary units, |
n_selected |
Number of selected applicants, |
tenure |
Expected tenure or number of periods, |
cost |
Total cost of the focal system net of baseline costs, if relevant. |
baseline_validity |
Validity of the baseline system. Defaults to |
baseline_selection_ratio |
Selection ratio of the baseline system. If |
Value
A psu_bcg object.
References
Cronbach, L. J., & Gleser, G. C. (1965). Psychological tests and personnel decisions (2nd ed.). University of Illinois Press.
Brogden, H. E. (1946). On the interpretation of the correlation coefficient as a measure of predictive efficiency. Journal of Educational Psychology, 37, 65-76.
Brogden, H. E. (1949). When testing pays off. Personnel Psychology, 2, 171-183.
Sturman, M. C. (2001). Utility analysis for multiple selection devices and multiple outcomes. Journal of Human Resource Costing and Accounting, 6(2), 9-28.
Examples
# Literature: Brogden (1946, 1949); Cronbach and Gleser (1965); Sturman (2001).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Brogden (1946, 1949); Cronbach and Gleser (1965); Sturman (2001)).
bcg_utility(validity = .35, selection_ratio = .20, sdy = 50000,
n_selected = 100, tenure = 3, cost = 75000)
# Substantive example (Brogden, 1946, 1949;
# Cronbach and Gleser, 1965; Sturman, 2001).
# Use an operating baseline rather than random selection.
naive <- bcg_utility(.35, .20, 50000, n_selected = 100, tenure = 3, cost = 75000)
incremental <- bcg_utility(.35, .20, 50000, n_selected = 100, tenure = 3,
cost = 75000, baseline_validity = .20)
c(naive = naive$net_utility, incremental = incremental$net_utility)
Boudreau-style discounted utility
Description
Computes discounted multi-period utility with optional value, tax, and cost
adjustments. The expected standardized criterion gain can be supplied directly
as delta_z_y, or computed from validity and selection-ratio parameters.
Usage
boudreau_utility(
delta_z_y = NULL,
validity = NULL,
selection_ratio = NULL,
baseline_validity = 0,
baseline_selection_ratio = NULL,
sdy,
n_by_period = NULL,
variable_value = 0,
contribution_margin = NULL,
variable_value_convention = c("paper_plus", "cost_rate"),
tax_rate = 0,
discount_rate = 0,
cost_by_period = NULL,
discount_costs = TRUE,
n_t = NULL,
cost_t = NULL
)
Arguments
delta_z_y |
Expected incremental standardized criterion gain. If |
validity |
Focal validity, used when |
selection_ratio |
Focal selection ratio, used when |
baseline_validity |
Baseline validity. Defaults to zero. |
baseline_selection_ratio |
Baseline selection ratio. Defaults to |
sdy |
Standard deviation of job performance in monetary units. |
n_by_period |
Vector of selected/retained employees in each period. This is
the preferred v0.4.0 name for the literature's |
variable_value |
Boudreau-style multiplier |
contribution_margin |
Optional contribution-margin multiplier. Overrides
|
variable_value_convention |
Either |
tax_rate |
Tax rate. |
discount_rate |
Discount rate. |
cost_by_period |
Cost in each period. Scalar or vector matching |
discount_costs |
Should costs be discounted by period? Defaults to |
n_t |
Legacy alias for |
cost_t |
Legacy alias for |
Value
A psu_boudreau object.
References
Boudreau, J. W. (1983). Economic considerations in estimating the utility of human resource productivity improvement programs. Personnel Psychology, 36, 551-576.
Boudreau, J. W. (1991). Utility analysis for decisions in human resource management. In M. D. Dunnette & L. M. Hough (Eds.), Handbook of industrial and organizational psychology (Vol. 2, pp. 621-745). Consulting Psychologists Press.
Sturman, M. C. (2001). Utility analysis for multiple selection devices and multiple outcomes. Journal of Human Resource Costing and Accounting, 6(2), 9-28.
Holling, H. (1998). Utility analysis of personnel selection: An overview and empirical study based on objective performance measures. Methods of Psychological Research Online, 3(1), 5-24.
Examples
# Literature: Boudreau (1983, 1991); Sturman (2001); Holling (1998).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Boudreau (1983, 1991); Sturman (2001); Holling (1998)).
boudreau_utility(validity = .35, selection_ratio = .20, sdy = 50000,
n_by_period = c(100, 90, 80), discount_rate = .08,
cost_by_period = c(75000, 10000, 10000))
# Substantive example (Boudreau, 1983, 1991;
# Sturman, 2001; Holling, 1998).
# Use an explicit contribution margin and operating baseline.
boudreau_utility(
validity = .35,
baseline_validity = .20,
selection_ratio = .20,
sdy = 50000,
n_by_period = c(100, 90, 80, 70),
contribution_margin = .30,
tax_rate = .25,
discount_rate = .08,
cost_by_period = c(75000, 10000, 10000, 10000)
)
Break-even validity for BCG utility
Description
Solves the validity needed to obtain zero net utility under the BCG model.
Usage
break_even_validity(
selection_ratio,
sdy,
n_selected,
tenure,
cost = 0,
baseline_validity = 0
)
Arguments
selection_ratio |
Selection ratio. |
sdy |
SDy. |
n_selected |
Number selected. |
tenure |
Expected tenure. |
cost |
Cost. |
baseline_validity |
Baseline validity. |
Value
Required focal validity.
References
Boudreau, J. W. (1991). Utility analysis for decisions in human resource management. In M. D. Dunnette & L. M. Hough (Eds.), Handbook of industrial and organizational psychology (Vol. 2, pp. 621-745). Consulting Psychologists Press.
Holling, H. (1998). Utility analysis of personnel selection: An overview and empirical study based on objective performance measures. Methods of Psychological Research Online, 3(1), 5-24.
Examples
# Literature: Boudreau (1991); Holling (1998).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Boudreau (1991); Holling (1998)).
break_even_validity(.20, 50000, 100, 3, cost = 75000)
# Substantive example (Boudreau, 1991; Holling, 1998).
# Required incremental validity under different costs.
costs <- c(25000, 75000, 150000)
setNames(
break_even_validity(.20, 50000, 100, 3, cost = costs, baseline_validity = .15),
paste0('cost_', costs)
)
Coefficient of determination
Description
Computes the squared validity coefficient.
Usage
coefficient_of_determination(validity)
Arguments
validity |
Predictor-criterion validity coefficient. |
Value
Numeric vector with validity^2.
References
Taylor, H. C., & Russell, J. T. (1939). The relationship of validity coefficients to the practical effectiveness of tests in selection. Journal of Applied Psychology, 23, 565-578.
Holling, H. (1998). Utility analysis of personnel selection: An overview and empirical study based on objective performance measures. Methods of Psychological Research Online, 3(1), 5-24.
Examples
# Literature: Taylor and Russell (1939); Holling (1998).
coefficient_of_determination(.30)
Compare compensatory and conjunctive multiple-hurdle selection systems
Description
Computes analytic compensatory expected performance and simulated multiple-hurdle expected performance using the same predictor/criterion correlation structure.
Usage
compare_selection_systems(
predictor_cor,
validities,
compensatory_weights = NULL,
compensatory_selection_ratio,
hurdle_selection_ratios,
n_sim = 1e+05,
seed = NULL,
n_applicants = NA_real_,
compensatory_cost_per_applicant = 0,
hurdle_cost_per_stage = 0,
sdy = NULL,
applicant_n = NULL
)
Arguments
predictor_cor |
Predictor intercorrelation matrix. |
validities |
Vector of predictor-criterion correlations. |
compensatory_weights |
Weights for the compensatory composite. |
compensatory_selection_ratio |
Overall compensatory selection ratio. |
hurdle_selection_ratios |
Marginal selection ratios for hurdle stages. |
n_sim |
Number of simulated applicants for the hurdle system. |
seed |
Optional random seed. |
n_applicants |
Optional number of real applicants. |
compensatory_cost_per_applicant |
Cost per applicant for the compensatory system. |
hurdle_cost_per_stage |
Cost per applicant assessed at each hurdle. |
sdy |
Optional monetary value of one criterion standard deviation. |
applicant_n |
Legacy alias for |
Value
A list with compensatory, multiple-hurdle, and difference summaries.
References
Ock, J., & Oswald, F. L. (2018). The utility of personnel selection decisions: Comparing compensatory and multiple-hurdle selection models. Journal of Personnel Psychology, 17(4), 172-182.
Examples
# Literature: Ock and Oswald (2018).
# Minimal example (Ock and Oswald (2018)).
Rxx <- matrix(c(1, .30, .30, 1), 2, 2)
compare_selection_systems(Rxx, c(.40, .30), hurdle_selection_ratios = c(.50, .50),
compensatory_selection_ratio = .25, n_sim = 1000, seed = 1)
# Substantive example with monetary utility.
compare_selection_systems(
predictor_cor = Rxx,
validities = c(.40, .30),
compensatory_selection_ratio = .25,
hurdle_selection_ratios = c(.50, .50),
n_sim = 5000,
seed = 123,
n_applicants = 400,
compensatory_cost_per_applicant = 800,
hurdle_cost_per_stage = c(100, 300),
sdy = 50000
)
Compare compensatory and staged multiple-hurdle selection systems
Description
Compares a compensatory top-down composite against a staged multiple-hurdle system in which stages can be composites.
Usage
compare_selection_systems_staged(
predictor_cor,
validities,
compensatory_weights = NULL,
compensatory_selection_ratio,
stage_predictors,
stage_selection_ratios,
stage_weights = NULL,
n_sim = 1e+05,
seed = NULL,
n_applicants = NA_real_,
compensatory_cost_per_applicant = 0,
hurdle_cost_per_stage = 0,
sdy = NULL,
applicant_n = NULL
)
Arguments
predictor_cor |
Predictor intercorrelation matrix. |
validities |
Vector of predictor-criterion correlations. |
compensatory_weights |
Weights for the compensatory composite. |
compensatory_selection_ratio |
Overall compensatory selection ratio. |
stage_predictors |
List of integer vectors defining staged predictors. |
stage_selection_ratios |
Within-stage selection ratios. |
stage_weights |
Optional list of weight vectors. |
n_sim |
Number of simulated applicants for the staged system. |
seed |
Optional random seed. |
n_applicants |
Optional number of real applicants. |
compensatory_cost_per_applicant |
Cost per applicant for the compensatory system. |
hurdle_cost_per_stage |
Cost per applicant assessed at each hurdle. |
sdy |
Optional monetary value of one criterion standard deviation. |
applicant_n |
Legacy alias for |
Value
A list with compensatory, staged multiple-hurdle, and difference summaries.
References
Ock, J., & Oswald, F. L. (2018). The utility of personnel selection decisions: Comparing compensatory and multiple-hurdle selection models. Journal of Personnel Psychology, 17(4), 172-182.
Examples
# Literature: Ock and Oswald (2018).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Ock and Oswald (2018)).
Rxx <- diag(4); Rxx[lower.tri(Rxx)] <- Rxx[upper.tri(Rxx)] <- .20
compare_selection_systems_staged(Rxx, validities = c(.40, .35, .20, .30),
compensatory_selection_ratio = .20, stage_predictors = list(1:3, 4),
stage_selection_ratios = c(.25, .80), n_sim = 1000, seed = 1)
# Substantive Ock-Oswald-style staged comparison.
compare_selection_systems_staged(
predictor_cor = Rxx,
validities = c(.40, .35, .20, .30),
compensatory_weights = rep(1, 4),
compensatory_selection_ratio = .20,
stage_predictors = list(c(1, 3, 4), 2),
stage_selection_ratios = c(.25, .80),
n_sim = 5000,
seed = 123,
n_applicants = 500,
compensatory_cost_per_applicant = 1000,
hurdle_cost_per_stage = c(100, 900),
sdy = 60000
)
Expected performance under compensatory top-down selection
Description
Computes the expected standardized criterion performance of applicants selected on a weighted predictor composite. This is the compensatory cell of the package taxonomy: scores on stronger predictors can offset lower scores on weaker ones.
Usage
compensatory_selection(
predictor_cor,
validities,
weights = NULL,
selection_ratio,
n_applicants = NA_real_,
cost_per_applicant = 0,
sdy = NULL,
applicant_n = NULL
)
Arguments
predictor_cor |
Predictor intercorrelation matrix, denoted |
validities |
Vector of predictor-criterion correlations, denoted |
weights |
Composite weights. Defaults to validity weights. |
selection_ratio |
Overall selection ratio for top-down selection on the composite. |
n_applicants |
Number of applicants, used for cost calculations. Preferred name in v0.4.0. |
cost_per_applicant |
Cost per assessed applicant. |
sdy |
Optional monetary value of one criterion standard deviation. |
applicant_n |
Legacy alias for |
Value
A psu_comparison object.
References
Naylor, J. C., & Shine, L. C. (1965). A table for determining the increase in mean criterion score obtained by using a selection device. Journal of Industrial Psychology, 3, 33-42.
Ock, J., & Oswald, F. L. (2018). The utility of personnel selection decisions: Comparing compensatory and multiple-hurdle selection models. Journal of Personnel Psychology, 17(4), 172-182.
Examples
# Literature: Naylor and Shine (1965); Ock and Oswald (2018).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Naylor and Shine (1965); Ock and Oswald (2018)).
Rxx <- matrix(c(1, .30, .30, 1), 2, 2)
compensatory_selection(Rxx, validities = c(.40, .30), selection_ratio = .20)
# Substantive example with costs and SDy.
Rxx <- matrix(c(
1.00, .30, .20,
.30, 1.00, .25,
.20, .25, 1.00
), 3, 3, byrow = TRUE)
compensatory_selection(
predictor_cor = Rxx,
validities = c(.45, .35, .25),
weights = c(1, 1, 1),
selection_ratio = .20,
n_applicants = 500,
cost_per_applicant = 250,
sdy = 60000
)
Composite effect size for a weighted predictor battery
Description
Computes Sackett-Ellingson-style composite d for a weighted battery.
Usage
composite_d(d, weights = NULL, predictor_cor = NULL, sd = NULL)
Arguments
d |
Vector of standardized group differences or effect sizes. |
weights |
Composite weights. Defaults to equal weights. |
predictor_cor |
Predictor correlation matrix. Defaults to identity. |
sd |
Predictor standard deviations. Defaults to ones. |
Value
Composite effect size.
References
Sackett, P. R., & Ellingson, J. E. (1997). The effects of forming multi- predictor composites on group differences and adverse impact. Personnel Psychology, 50, 707-721.
Examples
# Literature: Sackett and Ellingson (1997).
composite_d(d = c(.80, .30), weights = c(.7, .3),
predictor_cor = matrix(c(1, .30, .30, 1), 2, 2))
Convert a correlation to Cohen's d
Description
Uses the common two-group approximation d = 2r / sqrt(1 - r^2).
Usage
cor_to_d(r)
Arguments
r |
Correlation coefficient. |
Value
Cohen's d.
References
Schmidt, F. L., Hunter, J. E., & Pearlman, K. (1982). Assessing the economic impact of personnel programs on workforce productivity. Personnel Psychology, 35, 333-347.
Cohen, J. (1988). Statistical power analysis for the behavioral sciences (2nd ed.). Erlbaum.
Examples
# Literature: Cohen (1988); Schmidt, Hunter, and Pearlman (1982).
cor_to_d(.30)
Direct range-restriction correction for selection on the predictor
Description
Corrects a restricted validity coefficient for direct range restriction on the predictor using the standard Thorndike Case II expression.
Usage
correct_r_direct_range_restriction(
r_restricted,
range_restriction_ratio = NULL,
u = NULL
)
Arguments
r_restricted |
Restricted-sample validity coefficient. |
range_restriction_ratio |
Ratio of unrestricted to restricted predictor
standard deviations. This is the preferred v0.4.0 name for the literature's |
u |
Legacy alias for |
Value
Corrected validity coefficient.
References
Sackett, P. R., Laczo, R. M., & Arvey, R. D. (2002). The effects of range restriction on estimates of criterion interrater reliability: Implications for validation research. Personnel Psychology, 55, 807-825.
Ree, M. J., Carretta, T. R., Earles, J. A., & Albert, W. (1994). Sign changes when correcting for range restriction: A note on Pearson's and Lawley's selection formulas. Journal of Applied Psychology, 79, 298-301.
Lawley, D. N. (1943). A note on Karl Pearson's selection formulae. Proceedings of the Royal Society of Edinburgh, Section A, 62, 28-30.
Examples
# Literature: Lawley (1943); Sackett, Laczo, and Arvey (2002); Ree et al. (1994).
correct_r_direct_range_restriction(.25, range_restriction_ratio = 1.40)
correct_r_direct_range_restriction(.25, u = 1.40)
Multivariate range-restriction correction (Lawley, 1943)
Description
Corrects an observed (restricted) correlation matrix for direct selection on a subset of variables and incidental selection on the remaining variables, using Lawley's (1943) multivariate formulae.
Usage
correct_r_lawley(
sigma_restricted,
selection_indices,
sigma_ss_unrestricted,
standardize = TRUE
)
Arguments
sigma_restricted |
Observed (restricted) covariance or correlation matrix in the selected sample. Must be symmetric and positive semi-definite. |
selection_indices |
Integer vector indicating which rows/columns of
|
sigma_ss_unrestricted |
Unrestricted covariance submatrix for the
selection variables (the same dimension as
|
standardize |
Logical. If |
Details
Let S index the variables on which selection was applied and U index
the remaining (incidentally restricted) variables. Given the observed
restricted covariance matrix Sigma_star and the unrestricted
covariance submatrix Sigma_SS_unrestricted for the selection variables,
Lawley's correction recovers the unrestricted covariance matrix:
\Sigma_{UV} = \Sigma_{UV}^{*} + \Sigma_{US}^{*}\, (\Sigma_{SS}^{*})^{-1}\, (\Sigma_{SS} - \Sigma_{SS}^{*})\, (\Sigma_{SS}^{*})^{-1}\, \Sigma_{SV}^{*}
\Sigma_{UU} = \Sigma_{UU}^{*} + \Sigma_{US}^{*}\, (\Sigma_{SS}^{*})^{-1}\, (\Sigma_{SS} - \Sigma_{SS}^{*})\, (\Sigma_{SS}^{*})^{-1}\, \Sigma_{SU}^{*}
for any partitioning into selection variables S and other variables U,V.
Sign changes flagged in sign_changes are not necessarily errors but
should be inspected: Ree et al. (1994) documented that legitimate Lawley
corrections can flip the sign of small predictor-criterion correlations
when the restriction matrix is large.
Value
A list with components:
- sigma_corrected
The corrected (unrestricted) covariance or correlation matrix of the same dimension as
sigma_restricted.- sigma_restricted
The input restricted matrix (echoed).
- selection_indices
Indices treated as direct-selection variables.
- incidental_indices
Indices treated as incidentally restricted.
- u
Vector of
sd_restricted / sd_unrestrictedper selection variable, one of the standard summaries of restriction severity.- sign_changes
Integer count of off-diagonal entries whose sign differs between corrected and observed matrices, flagged in the spirit of Ree, Carretta, Earles & Albert (1994).
References
Lawley, D. N. (1943). A note on Karl Pearson's selection formulae. Proceedings of the Royal Society of Edinburgh, Section A, 62, 28-30.
Mendoza, J. L., & Mumford, M. D. (1987). Corrections for attenuation and range restriction on the predictor. Journal of Educational and Behavioral Statistics, 12, 282-293.
Ree, M. J., Carretta, T. R., Earles, J. A., & Albert, W. (1994). Sign changes when correcting for range restriction: A note on Pearson's and Lawley's selection formulas. Journal of Applied Psychology, 79, 298-301.
Sackett, P. R., Lievens, F., Berry, C. M., & Landers, R. N. (2007). A cautionary note on the effects of range restriction on predictor intercorrelations. Journal of Applied Psychology, 92, 538-544.
Examples
# Three-variable example: selection on X1 (cognitive ability),
# incidental restriction on X2 (interview) and Y (criterion).
sigma_star <- matrix(c(
1.00, 0.30, 0.25,
0.30, 1.00, 0.20,
0.25, 0.20, 1.00
), 3, 3)
# Unrestricted SD of X1 is larger; var increases by factor 1/u^2 = 1/.6^2
sigma_ss <- matrix(1 / 0.6^2, 1, 1)
correct_r_lawley(sigma_star, selection_indices = 1,
sigma_ss_unrestricted = sigma_ss)
Convert Cohen's d to a correlation
Description
Uses r = d / \sqrt{d^2 + 4}.
Usage
d_to_cor(d)
Arguments
d |
Cohen's d. |
Value
Correlation coefficient.
References
Schmidt, F. L., Hunter, J. E., & Pearlman, K. (1982). Assessing the economic impact of personnel programs on workforce productivity. Personnel Psychology, 35, 333-347.
Cohen, J. (1988). Statistical power analysis for the behavioral sciences (2nd ed.). Erlbaum.
Examples
# Literature: Cohen (1988); Schmidt, Hunter, and Pearlman (1982).
d_to_cor(.50)
Convert Cohen's d to a point-biserial correlation
Description
Converts a standardized mean difference to the point-biserial correlation
implied by a dichotomous criterion with base rate p. The implemented
formula is r_{pb} = d\sqrt{p(1-p)} / \sqrt{1 + d^2p(1-p)}. When
base_rate = .50, this reduces to the common equal-group conversion
r = d / \sqrt{d^2 + 4}.
Usage
d_to_point_biserial(d, base_rate = 0.5)
Arguments
d |
Cohen's d. Must be numeric and finite. |
base_rate |
Proportion in the focal or successful group, usually denoted
|
Value
Numeric vector of point-biserial correlations.
References
Cohen, J. (1988). Statistical power analysis for the behavioral sciences (2nd ed.). Erlbaum.
Rice, M. E., & Harris, G. T. (2005). Comparing effect sizes in follow-up studies: ROC area, Cohen's d, and r. Law and Human Behavior, 29(5), 615-620.
Salgado, J. F. (2018). Transforming the area under the normal curve (AUC) into Cohen's d, Pearson's r_pb, odds-ratio, and natural log odds-ratio: Two conversion tables. The European Journal of Psychology Applied to Legal Context, 10(1), 35-47.
Examples
# Minimal example: equal base-rate conversion equals d_to_cor().
d_to_point_biserial(.50, base_rate = .50)
d_to_cor(.50)
# Unequal base rates reduce the attainable point-biserial correlation.
d_to_point_biserial(.50, base_rate = c(.50, .20, .10))
Disattenuated correlation (Spearman, 1904)
Description
Corrects an observed correlation for unreliability in either or both variables.
Usage
disattenuate_correlation(r_observed, reliability_x = 1, reliability_y = 1)
Arguments
r_observed |
Observed correlation. |
reliability_x |
Reliability of |
reliability_y |
Reliability of |
Value
Disattenuated correlation. Capped at +/- 1 with a warning when the algebraic value exceeds 1 in magnitude (typically a sign of unreliable reliability inputs).
References
Spearman, C. (1904). The proof and measurement of association between two things. American Journal of Psychology, 15, 72-101.
Examples
disattenuate_correlation(0.30, reliability_x = 0.80, reliability_y = 0.70)
Dominance analysis for predictor importance
Description
Implements Budescu's (1993) dominance analysis to decompose the coefficient of determination of a multiple regression into contributions attributable to each predictor. Three dominance summaries are returned:
Usage
dominance_analysis(predictor_cor, predictor_criterion_cor)
Arguments
predictor_cor |
Predictor correlation matrix |
predictor_criterion_cor |
Vector of predictor-criterion correlations
|
Details
-
Complete dominance: predictor
icompletely dominatesjifR^2(S \cup {i}) > R^2(S \cup {j})for every subsetSnot containingiorj. Reported as a pairwise dominance matrix. -
Conditional dominance: average increment of predictor
itoR^2across subsets of sizek, fork = 0, ..., p-1. -
General dominance: the average of conditional dominance values; equivalent to the Shapley value of
R^2.
Value
A list with components:
- r_squared_full
The full-model
R^2.- general_dominance
Vector of length
pwhose entries sum tor_squared_full.- conditional_dominance
p x pmatrix; rowigives the average contribution of predictoriat subset sizes0, 1, ..., p-1.- complete_dominance
p x plogical matrix where entry[i,j]isTRUEificompletely dominatesj,FALSEifjcompletely dominatesi,NAotherwise.
References
Azen, R., & Budescu, D. V. (2003). The dominance analysis approach for comparing predictors in multiple regression. Psychological Methods, 8, 129-148.
Budescu, D. V. (1993). Dominance analysis: A new approach to the problem of relative importance of predictors in multiple regression. Psychological Bulletin, 114, 542-551.
Examples
Rxx <- matrix(c(1, .30, .20,
.30, 1, .25,
.20, .25, 1), 3, 3)
rxy <- c(.40, .30, .25)
dominance_analysis(Rxx, rxy)
Compute employee flows across periods
Description
Computes retained headcount after hires and losses: N_t = initial + cumsum(hired - lost).
Usage
employee_flow(hired, lost, initial = 0)
Arguments
hired |
Number hired in each period. |
lost |
Number lost in each period. |
initial |
Initial headcount. |
Value
Numeric vector of headcount by period.
References
Boudreau, J. W., & Berger, C. J. (1985). Decision-theoretic utility analysis applied to employee separations and acquisitions. Journal of Applied Psychology, 70, 581-612.
Boudreau, J. W. (1991). Utility analysis for decisions in human resource management. In M. D. Dunnette & L. M. Hough (Eds.), Handbook of industrial and organizational psychology (Vol. 2, pp. 621-745). Consulting Psychologists Press.
Examples
# Literature: Boudreau and Berger (1985); Boudreau (1991).
employee_flow(hired = c(100, 20, 20), lost = c(0, 30, 25))
Forecasting efficiency
Description
Computes the proportional reduction in the standard error of prediction:
1 - sqrt(1 - validity^2).
Usage
forecasting_efficiency(validity)
Arguments
validity |
Predictor-criterion validity coefficient. |
Value
Numeric vector with forecasting efficiency values.
References
Holling, H. (1998). Utility analysis of personnel selection: An overview and empirical study based on objective performance measures. Methods of Psychological Research Online, 3(1), 5-24.
Examples
# Literature: Holling (1998).
forecasting_efficiency(.30)
Correlation matrix between several weighted composites
Description
Given a stack of items and a weight matrix W whose columns are
composite-specific weight vectors, computes the correlation matrix
between the resulting composites under the standard Lord-Novick formula.
Usage
fuse_composite_cor(weights_matrix, item_cor)
Arguments
weights_matrix |
|
item_cor |
|
Value
m x m correlation matrix among composites.
Examples
R <- diag(4); R[lower.tri(R)] <- R[upper.tri(R)] <- .25
W <- cbind(c(1, 1, 0, 0), c(0, 0, 1, 1))
fuse_composite_cor(W, R)
Reliability of a weighted composite (Mosier, 1943; Lord & Novick, 1968)
Description
Reliability of a weighted composite (Mosier, 1943; Lord & Novick, 1968)
Usage
fuse_reliability(weights, item_cor, item_reliabilities = NULL)
Arguments
weights |
Numeric vector of composite weights. |
item_cor |
Symmetric correlation (or covariance) matrix among items. |
item_reliabilities |
Numeric vector of item reliabilities (length
equal to |
Value
The reliability of the weighted composite.
References
Lord, F. M., & Novick, M. R. (1968). Statistical theories of mental test scores. Addison-Wesley.
Mosier, C. I. (1943). On the reliability of a weighted composite. Psychometrika, 8, 161-168.
Examples
R <- matrix(c(1, .3, .3, 1), 2, 2)
fuse_reliability(c(.5, .5), R, item_reliabilities = c(.80, .85))
Correlation of a weighted composite with an external variable
Description
Implements the standard formula
r_{C,Y} = (w' \rho_{XY}) / \sqrt{w' R_{XX} w}
for the correlation between a weighted composite of items and an external
criterion Y, where the items have correlations R_XX and individual
validities \rho_{XY} (Lord & Novick, 1968, Ch. 4).
Usage
fuse_validity(weights, item_cor, item_validities)
Arguments
weights |
Composite weights. |
item_cor |
Predictor (item) correlation matrix. |
item_validities |
Item-level correlations with the external variable. |
Value
Scalar correlation.
Examples
R <- matrix(c(1, .3, .3, 1), 2, 2)
fuse_validity(c(.5, .5), R, item_validities = c(.30, .25))
Multigroup multivariate Taylor-Russell summaries
Description
Applies tr_multivariate() separately by group. This is useful for sensitivity
analyses in which base rates or correlation matrices differ across demographic
groups. It does not by itself establish legal compliance or fairness.
Usage
group_tr_multivariate(
selection_ratios,
base_rates,
R_list,
group_names = NULL,
group_proportions = NULL
)
Arguments
selection_ratios |
Vector of marginal selection ratios, common to all groups, or a list of group-specific vectors. |
base_rates |
Numeric vector of group-specific base rates. |
R_list |
List of group-specific correlation matrices. |
group_names |
Optional group labels. |
group_proportions |
Optional population proportions. If supplied, they are normalized and used to compute overall weighted summaries. |
Value
A list with group-level Taylor-Russell summaries and optional weighted overall metrics.
References
De Corte, W., Lievens, F., & Sackett, P. R. (2007). Combining predictors to achieve optimal trade-offs between selection quality and adverse impact. Journal of Applied Psychology, 92, 1380-1393.
Thomas, J. G., Owen, D. B., & Gunst, R. F. (1977). Improving the use of educational tests as selection tools. Journal of Educational Statistics, 2(1), 55-77.
Examples
# Literature: Thomas, Owen, and Gunst (1977); De Corte et al. (2007).
R <- matrix(c(1, .30, .40, .30, 1, .35, .40, .35, 1), 3, 3)
group_tr_multivariate(c(.50, .50), base_rates = c(.50, .40),
R_list = list(R, R), group_names = c("A", "B"))
Incremental validity for adding predictors to an existing system
Description
Computes the difference in restricted canonical validity between a baseline predictor set and an expanded predictor set.
Usage
incremental_validity(
predictor_cor,
predictor_criterion_cor,
criterion_cor,
criterion_weights,
baseline_predictors,
added_predictors = NULL,
focal_predictors = NULL
)
Arguments
predictor_cor |
Predictor correlation matrix for all candidate predictors. |
predictor_criterion_cor |
Predictor-by-criterion correlation matrix. |
criterion_cor |
Criterion correlation matrix. |
criterion_weights |
Fixed criterion weights. |
baseline_predictors |
Integer indices of predictors already in the system. |
added_predictors |
Integer indices of predictors to add. Preferred name. |
focal_predictors |
Optional legacy/convenience alias for the expanded
predictor set. If supplied, |
Value
A psu_incremental_validity object.
References
Sturman, M. C. (2001). Utility analysis for multiple selection devices and multiple outcomes. Journal of Human Resource Costing and Accounting, 6(2), 9-28.
Examples
# Literature: Sturman (2001).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Sturman (2001)).
Rxx <- matrix(c(1, .30, .20, .30, 1, .25, .20, .25, 1), 3, 3)
Rxy <- matrix(c(.30, .20, .25, .15, .10, .35), 3, 2, byrow = TRUE)
Ryy <- matrix(c(1, .40, .40, 1), 2, 2)
incremental_validity(Rxx, Rxy, Ryy, c(.6, .4), baseline_predictors = 1:2,
added_predictors = 3)
# Substantive example (Sturman (2001)): compare two possible additions to the same baseline.
add_2 <- incremental_validity(Rxx, Rxy, Ryy, c(.6, .4),
baseline_predictors = 1, added_predictors = 2)
add_3 <- incremental_validity(Rxx, Rxy, Ryy, c(.6, .4),
baseline_predictors = 1, added_predictors = 3)
c(add_predictor_2 = add_2$incremental_validity,
add_predictor_3 = add_3$incremental_validity)
Combine nominal discount and inflation rates
Description
Computes i_a = i + f + i*f.
Usage
inflation_adjusted_rate(discount_rate, inflation_rate)
Arguments
discount_rate |
Real discount rate. |
inflation_rate |
Inflation rate. |
Value
Inflation-adjusted discount rate.
References
Tziner, A., Meir, E. I., Dahan, M., & Birati, A. (1994). An investigation of the predictive validity and economic utility of the assessment center for the high- management level. Canadian Journal of Behavioural Science, 26, 228-245.
Holling, H. (1998). Utility analysis of personnel selection: An overview and empirical study based on objective performance measures. Methods of Psychological Research Online, 3(1), 5-24.
Examples
# Literature: Tziner et al. (1994); Holling (1998).
inflation_adjusted_rate(.08, .025)
Utility-analysis model taxonomy
Description
Returns the package's working taxonomy: criterion scale crossed with selection structure. The taxonomy is designed to keep the Taylor-Russell, Brogden-Cronbach-Gleser, Sturman, Ock-Oswald, and Thomas-Owen-Gunst formulations distinct.
Usage
model_taxonomy()
Value
A data frame with model families, decision structures, and package functions.
References
Thomas, J. G., Owen, D. B., & Gunst, R. F. (1977). Improving the use of educational tests as selection tools. Journal of Educational Statistics, 2(1), 55-77.
Ock, J., & Oswald, F. L. (2018). The utility of personnel selection decisions: Comparing compensatory and multiple-hurdle selection models. Journal of Personnel Psychology, 17(4), 172-182.
Examples
# Literature: Thomas, Owen, and Gunst (1977); Ock and Oswald (2018).
model_taxonomy()
Multi-attribute utility
Description
Computes additive multi-attribute utility sum(weights * utilities) for one or
more alternatives.
Usage
multiattribute_utility(values, weights, utility_functions = NULL)
Arguments
values |
Numeric vector or matrix of attribute values. Alternatives are rows. |
weights |
Attribute weights. They are normalized to sum to one. |
utility_functions |
Optional list of transformation functions, one per attribute. |
Value
Numeric utility score per alternative.
References
Keeney, R. L., & Raiffa, H. (1976). Decisions with multiple objectives: Preferences and value tradeoffs. Wiley.
Roth, P. L., & Bobko, P. (1997). A research agenda for multi-attribute utility analysis in human resource management. Human Resource Management Review, 7, 341-368.
Roth, P. L. (1994). Multi-attribute utility analysis using the PROMES approach. Journal of Business and Psychology, 9, 69-80.
Examples
# Literature: Keeney and Raiffa (1976); Roth (1994); Roth and Bobko (1997).
multiattribute_utility(matrix(c(80, .90, 70, .95), nrow = 2, byrow = TRUE),
weights = c(.7, .3))
Simulate conjunctive multiple-hurdle selection
Description
Simulates expected standardized criterion performance under conjunctive
multiple-hurdle selection. Predictors are first in R; criterion is last.
Candidates pass only if they exceed all marginal cutoffs.
Usage
multiple_hurdle_selection(
selection_ratios,
R,
n_sim = 1e+05,
seed = NULL,
n_applicants = NA_real_,
cost_per_stage = 0,
sdy = NULL,
applicant_n = NULL
)
Arguments
selection_ratios |
Marginal selection ratios for each hurdle. |
R |
Correlation matrix for predictors and criterion, criterion last. |
n_sim |
Number of simulated applicants. |
seed |
Optional random seed. |
n_applicants |
Number of real applicants, used for cost calculations. |
cost_per_stage |
Cost per applicant at each stage. Scalar or vector. |
sdy |
Optional monetary value of one criterion standard deviation. |
applicant_n |
Legacy alias for |
Value
A psu_comparison object.
References
Ock, J., & Oswald, F. L. (2018). The utility of personnel selection decisions: Comparing compensatory and multiple-hurdle selection models. Journal of Personnel Psychology, 17(4), 172-182.
Examples
# Literature: Sackett and Roth (1996); Ock and Oswald (2018).
# Minimal example (Sackett and Roth (1996); Ock and Oswald (2018)).
R <- matrix(c(1, .30, .40, .30, 1, .30, .40, .30, 1), 3, 3)
multiple_hurdle_selection(c(.50, .50), R, n_sim = 1000, seed = 1)
# Substantive example with two marginal hurdles and costs.
multiple_hurdle_selection(
selection_ratios = c(.40, .50),
R = R,
n_sim = 5000,
seed = 123,
n_applicants = 500,
cost_per_stage = c(100, 400),
sdy = 60000
)
Simulate staged multiple-hurdle selection with composite stages
Description
Simulates a sequential multiple-hurdle design in which each stage can be one predictor or a composite of predictors. This matches Ock-Oswald-style designs: an inexpensive first-stage composite can screen applicants before a later, more expensive stage such as a structured interview.
Usage
multiple_hurdle_selection_staged(
stage_predictors,
stage_selection_ratios,
R,
stage_weights = NULL,
n_sim = 1e+05,
seed = NULL,
n_applicants = NA_real_,
cost_per_stage = 0,
sdy = NULL,
applicant_n = NULL
)
Arguments
stage_predictors |
List of integer vectors. Each element gives the predictor columns used at that stage. |
stage_selection_ratios |
Vector of within-stage selection ratios. |
R |
Correlation matrix for predictors and criterion, criterion last. |
stage_weights |
Optional list of weight vectors. Defaults to unit weights within each stage. |
n_sim |
Number of simulated applicants. |
seed |
Optional random seed. |
n_applicants |
Number of real applicants, used for cost calculations. |
cost_per_stage |
Cost per applicant at each stage. Scalar or vector. |
sdy |
Optional monetary value of one criterion standard deviation. |
applicant_n |
Legacy alias for |
Value
A psu_comparison object.
References
Ock, J., & Oswald, F. L. (2018). The utility of personnel selection decisions: Comparing compensatory and multiple-hurdle selection models. Journal of Personnel Psychology, 17(4), 172-182.
Examples
# Literature: Sackett and Roth (1996); Ock and Oswald (2018).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Sackett and Roth (1996); Ock and Oswald (2018)).
R <- diag(5)
R[lower.tri(R)] <- R[upper.tri(R)] <- .20
diag(R) <- 1
multiple_hurdle_selection_staged(list(1:3, 4), c(.25, .80), R,
n_sim = 1000, seed = 1)
# Substantive example (Sackett and Roth, 1996;
# Ock and Oswald, 2018).
# Use an inexpensive first-stage composite, then an interview.
R <- matrix(c(
1.00, .41, .04, .46, .37,
.41, 1.00, .18, .22, .35,
.04, .18, 1.00, .66, .16,
.46, .22, .66, 1.00, .23,
.37, .35, .16, .23, 1.00
), 5, 5, byrow = TRUE)
multiple_hurdle_selection_staged(
stage_predictors = list(c(1, 3, 4), 2),
stage_selection_ratios = c(.25, .80),
R = R,
n_sim = 5000,
seed = 123,
n_applicants = 500,
cost_per_stage = c(100, 900),
sdy = 60000
)
Naylor-Shine expected criterion gain
Description
Computes expected standardized criterion gain among selected applicants and,
optionally, converts it to utility using sdy, n_selected, tenure, and
cost. The expected standardized criterion gain is validity * selected_mean_z(selection_ratio).
Usage
naylor_shine(
validity,
selection_ratio,
sdy = 1,
n_selected = 1,
tenure = 1,
cost = 0
)
Arguments
validity |
Predictor-criterion validity, usually denoted |
selection_ratio |
Selection ratio, usually denoted |
sdy |
Standard deviation of job performance in monetary or criterion units. |
n_selected |
Number of selected applicants. |
tenure |
Expected tenure or number of periods. |
cost |
Total cost. |
Value
A psu_ns object.
References
Naylor, J. C., & Shine, L. C. (1965). A table for determining the increase in mean criterion score obtained by using a selection device. Journal of Industrial Psychology, 3, 33-42.
Examples
# Literature: Naylor and Shine (1965).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example: standardized criterion gain only.
naylor_shine(validity = .35, selection_ratio = .20)
# Substantive example (Naylor and Shine (1965)): standardized gain translated to monetary utility.
naylor_shine(
validity = .35,
selection_ratio = .20,
sdy = 50000,
n_selected = 100,
tenure = 3,
cost = 75000
)
Offer-rejection adjustment for selection utility (Murphy, 1986)
Description
Adjusts the expected standardized criterion score of accepted hires when offer recipients can decline. When the probability of accepting an offer is negatively correlated with candidate quality (top candidates have more outside options), the realized mean criterion of accepted hires is below the mean of selected (offered) candidates.
Usage
offer_rejection_adjustment(
expected_z_offered,
mode = c("uniform", "selective", "correlated"),
acceptance_rate = 1,
rho_quality_acceptance = 0,
logit_intercept = NULL,
logit_slope = NULL,
n_offered = NULL
)
Arguments
expected_z_offered |
Expected standardized score of offered
candidates (e.g., |
mode |
One of |
acceptance_rate |
Expected proportion of offers accepted (used in all three modes for the headcount-scaling output). |
rho_quality_acceptance |
Correlation between standardized candidate
quality and acceptance propensity (used for |
logit_intercept, logit_slope |
Logit link coefficients for
|
n_offered |
Optional integer; if supplied, the function also returns the expected number of accepted hires. |
Details
Three modes are supported:
-
mode = "uniform": a fixed acceptance probabilitypindependent of candidate quality. The expected criterion of accepted hires equals the expected criterion of those offered, but the realized headcount is scaled byp. -
mode = "selective": the probability of acceptance depends on candidate standardized qualityzthrough a logit linklogit(p) = a + b * zwithb < 0for adverse selection. The adjusted mean criterion is computed by integrating the standard normal weighted by the acceptance probability. -
mode = "correlated": a closed-form approximation under the assumption that quality and acceptance are jointly normal with correlationrho_quality_acceptance. The adjustment is\bar{z}_{accepted} \approx \bar{z}_{offered} + \rho \cdot (\lambda(z_p) - \bar{z}_{offered})for an acceptance thresholdz_pderived from the expected acceptance rate.
Value
A list with expected_z_accepted, acceptance_rate,
effective_validity_loss (the difference between offered and accepted
means), and optionally expected_n_accepted.
References
Hogarth, R. M., & Einhorn, H. J. (1976). Optimal strategies for personnel selection when candidates can reject job offers. Journal of Business, 49, 479-495.
Murphy, K. R. (1986). When your top choice turns you down: Effect of rejected offers on the utility of selection tests. Psychological Bulletin, 99, 133-138.
Examples
z_offered <- selected_mean_z(0.20)
# Uniform 70% acceptance rate, no quality dependence:
offer_rejection_adjustment(z_offered, mode = "uniform",
acceptance_rate = 0.70, n_offered = 100)
# Adverse selection: top candidates more likely to decline.
offer_rejection_adjustment(z_offered, mode = "correlated",
acceptance_rate = 0.70,
rho_quality_acceptance = -0.20,
n_offered = 100)
Pareto frontier indicator
Description
Identifies non-dominated alternatives for objectives to be maximized or minimized.
Usage
pareto_frontier(objectives, maximize = TRUE)
Arguments
objectives |
Numeric matrix/data frame. Alternatives are rows, objectives columns. |
maximize |
Logical vector indicating whether each objective is to be maximized. Scalar values are recycled. |
Value
Logical vector indicating Pareto-efficient rows.
References
De Corte, W., Lievens, F., & Sackett, P. R. (2007). Combining predictors to achieve optimal trade-offs between selection quality and adverse impact. Journal of Applied Psychology, 92, 1380-1393. De Corte, W., Sackett, P. R., & Lievens, F. (2011). Designing Pareto-optimal selection systems: Formalizing the decisions required for selection system development. Journal of Applied Psychology, 96, 907-926.
Examples
# Literature: De Corte, Lievens, and Sackett (2007); De Corte, Sackett, and Lievens (2011).
pareto_frontier(data.frame(validity = c(.30, .35, .32), diversity = c(.80, .70, .85)))
Print personnel-selection model comparison objects
Description
Formats and prints model-comparison result objects of class
psu_comparison. Displays the top-level scalar quantities and, when
present, the per-subsystem summaries (compensatory and
multiple-hurdle).
Usage
## S3 method for class 'psu_comparison'
print(x, ...)
Arguments
x |
An object of class |
... |
Currently ignored; reserved for compatibility with the
|
Value
No return value, called for side effects (prints a formatted
summary to the console). The input object x is returned invisibly.
Print personnel-selection utility objects
Description
Formats and prints utility-analysis result objects of class
psu_utility and its subclasses (e.g., psu_tr, psu_bcg, psu_ns,
psu_shp, psu_boudreau, psu_incremental_validity,
psu_monte_carlo). Provides a concise textual summary of the computed
quantities.
Usage
## S3 method for class 'psu_sturman'
print(x, ...)
## S3 method for class 'psu_utility'
print(x, ...)
## S3 method for class 'psu_tr'
print(x, ...)
## S3 method for class 'psu_bcg'
print(x, ...)
## S3 method for class 'psu_ns'
print(x, ...)
## S3 method for class 'psu_shp'
print(x, ...)
## S3 method for class 'psu_boudreau'
print(x, ...)
## S3 method for class 'psu_incremental_validity'
print(x, ...)
## S3 method for class 'psu_monte_carlo'
print(x, ...)
Arguments
x |
An object returned by one of the package's main analysis
functions, with class |
... |
Currently ignored; reserved for compatibility with the
|
Value
No return value, called for side effects (prints a formatted
summary to the console). The input object x is returned invisibly.
Expected standardized performance after a probation cutoff
Description
Computes the mean of a standard normal criterion among employees surviving a
probation rule Y >= probation_cutoff_z.
Usage
probation_adjustment(probation_cutoff_z)
Arguments
probation_cutoff_z |
Probation cutoff on the standardized criterion. |
Value
Expected standardized criterion score among survivors.
References
De Corte, W. (1994). Utility analysis for the one-cohort selection-retention decision with a probationary period. Journal of Applied Psychology, 79, 402-411.
Sturman, M. C. (2001). Utility analysis for multiple selection devices and multiple outcomes. Journal of Human Resource Costing and Accounting, 6(2), 9-28.
Examples
# Literature: De Corte (1994); Sturman (2001).
probation_adjustment(-1)
Utility with a probation-period survivor adjustment
Description
A compact helper for selection systems where year 1 utility follows BCG and later periods include an additional survivor-performance gain caused by a probation cutoff.
Usage
probation_utility(
validity,
selection_ratio,
sdy,
n_selected,
tenure,
probation_cutoff_z,
cost = 0
)
Arguments
validity |
Predictor-criterion validity. |
selection_ratio |
Selection ratio. |
sdy |
Standard deviation of job performance in monetary units. |
n_selected |
Number of selected applicants in period 1. |
tenure |
Total number of periods. |
probation_cutoff_z |
Standardized criterion cutoff used after probation. |
cost |
Total cost. |
Value
A psu_bcg object.
References
De Corte, W. (1994). Utility analysis for the one-cohort selection-retention decision with a probationary period. Journal of Applied Psychology, 79, 402-411.
Sturman, M. C. (2001). Utility analysis for multiple selection devices and multiple outcomes. Journal of Human Resource Costing and Accounting, 6(2), 9-28.
Examples
# Literature: De Corte (1994); Sturman (2001).
probation_utility(.35, .20, 50000, 100, tenure = 3, probation_cutoff_z = -1)
Johnson relative weights for one criterion
Description
Computes approximate relative weights for correlated predictors in a multiple regression with one criterion.
Usage
relative_weights(predictor_cor, criterion_cor)
Arguments
predictor_cor |
Predictor correlation matrix. |
criterion_cor |
Vector of predictor-criterion correlations. |
Value
A data frame with raw and rescaled relative weights.
References
Johnson, J. W. (2000). A heuristic method for estimating the relative weight of predictor variables in multiple regression. Multivariate Behavioral Research, 35, 1-19.
Examples
# Literature: Johnson (2000).
relative_weights(matrix(c(1, .30, .30, 1), 2, 2), c(.40, .30))
Restricted canonical validity for a fixed criterion composite
Description
Computes Sturman-style restricted canonical validity. Predictor weights are optimized, but criterion weights are fixed by the analyst.
Usage
restricted_canonical_validity(
predictor_cor,
predictor_criterion_cor,
criterion_cor,
criterion_weights
)
Arguments
predictor_cor |
Predictor correlation matrix, |
predictor_criterion_cor |
Matrix of predictor-criterion correlations,
|
criterion_cor |
Criterion correlation matrix, |
criterion_weights |
Fixed criterion weights, |
Value
A psu_incremental_validity object with restricted canonical validity
and optimized standardized predictor weights.
References
Sturman, M. C. (2001). Utility analysis for multiple selection devices and multiple outcomes. Journal of Human Resource Costing and Accounting, 6(2), 9-28.
Examples
# Literature: Sturman (2001).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Sturman (2001)).
S11 <- matrix(c(1, .30, .30, 1), 2, 2)
S12 <- matrix(c(.30, .20, .25, .15), 2, 2)
S22 <- matrix(c(1, .40, .40, 1), 2, 2)
restricted_canonical_validity(S11, S12, S22, criterion_weights = c(.6, .4))
# Substantive example (Sturman (2001)): change criterion weights and compare restricted validity.
task_weighted <- restricted_canonical_validity(S11, S12, S22, c(.8, .2))
balanced <- restricted_canonical_validity(S11, S12, S22, c(.5, .5))
c(task_weighted = task_weighted$validity, balanced = balanced$validity)
Risk-adjusted utility
Description
Computes a mean-variance risk-adjusted utility score. With risk_aversion = 0,
the score equals expected utility. Larger values penalize uncertainty more
strongly.
Usage
risk_adjusted_utility(expected_utility, utility_sd, risk_aversion = 0)
Arguments
expected_utility |
Expected utility or mean posterior/simulation utility. |
utility_sd |
Standard deviation of utility. |
risk_aversion |
Non-negative risk-aversion parameter. |
Value
Risk-adjusted utility score.
References
Bhattacharya, M., & Wright, P. M. (2005). Managing human assets in an uncertain world: Applying real options theory to HRM. International Journal of Human Resource Management, 16, 929-948.
Cronshaw, S. F., Alexander, R. A., Wiesner, W. H., & Barrick, M. R. (1987). Incorporating risk into selection utility. Organizational Behavior and Human Decision Processes, 40, 270-286.
Examples
# Literature: Cronshaw et al. (1987); Bhattacharya and Wright (2005).
risk_adjusted_utility(expected_utility = 100000, utility_sd = 25000,
risk_aversion = 1e-6)
SDy from cost-accounting data
Description
Computes individual criterion values from production units and unit values, then returns the standard deviation of those values.
Usage
sdy_cost_accounting(units, unit_values, na.rm = TRUE)
Arguments
units |
Numeric matrix or data frame. Rows are employees; columns are production units, activities, or outputs. |
unit_values |
Numeric vector of monetary values per unit. Length one or
one value per column of |
na.rm |
Should missing values be removed in the SD calculation? |
Value
A list with individual criterion values and sdy.
References
Cronbach, L. J., & Gleser, G. C. (1965). Psychological tests and personnel decisions (2nd ed.). University of Illinois Press.
Holling, H. (1998). Utility analysis of personnel selection: An overview and empirical study based on objective performance measures. Methods of Psychological Research Online, 3(1), 5-24.
Cascio, W. F. (1982). Costing human resources: The financial impact of behavior in organizations. Kent.
Examples
# Literature: Cronbach and Gleser (1965); Cascio (1982); Holling (1998).
sdy_cost_accounting(matrix(c(10, 12, 8, 11), ncol = 2), unit_values = c(100, 200))
SDy from a simplified CREPID-style activity decomposition
Description
Computes a monetary performance index by weighting activity ratings with activity time/frequency and importance weights.
Usage
sdy_crepid(
activities,
ratings,
salary,
time_col = "time_frequency",
importance_col = "importance",
activity_names = NULL,
na.rm = TRUE
)
Arguments
activities |
Data frame with activity-level metadata. |
ratings |
Numeric matrix/data frame. Rows are employees, columns are activities. |
salary |
Average salary or criterion value to distribute across activities. |
time_col |
Name of the time/frequency column in |
importance_col |
Name of the importance column in |
activity_names |
Optional activity labels. |
na.rm |
Should missing values be removed in the SD calculation? |
Value
A list with activity weights, individual criterion values, and sdy.
References
Cascio, W. F., & Ramos, R. A. (1986). Development and application of a new method for assessing job performance in behavioral/economic terms. Journal of Applied Psychology, 71, 20-28.
Examples
# Literature: Cascio and Ramos (1986).
activities <- data.frame(time_frequency = c(.4, .6), importance = c(2, 3))
ratings <- matrix(c(3, 4, 2, 5, 4, 4), ncol = 2, byrow = TRUE)
sdy_crepid(activities, ratings, salary = 80000)
Observed SDy from monetary criterion data
Description
Computes the observed standard deviation of job performance in monetary or productivity units. This is the direct empirical counterpart to subjective SDy estimation methods.
Usage
sdy_observed(y, na.rm = TRUE)
Arguments
y |
Numeric vector of monetary or productivity criterion values. |
na.rm |
Should missing values be removed? |
Value
Observed SDy.
References
Holling, H. (1998). Utility analysis of personnel selection: An overview and empirical study based on objective performance measures. Methods of Psychological Research Online, 3(1), 5-24.
Examples
# Literature: Holling (1998).
sdy_observed(c(100, 120, 80, 150))
Estimate SDy from percentile judgments
Description
Implements the percentile approximation SDy = (P85 - P15) / 2.
Usage
sdy_percentile(p15, p85)
Arguments
p15 |
Estimated monetary value of performance at the 15th percentile. |
p85 |
Estimated monetary value of performance at the 85th percentile. |
Value
Estimated standard deviation of job performance in monetary units.
References
Bobko, P., Karren, R., & Parkington, J. J. (1983). Estimation of standard deviations in utility analyses: An empirical test. Journal of Applied Psychology, 68, 170-176.
Schmidt, F. L., Hunter, J. E., McKenzie, R. C., & Muldrow, T. W. (1979). Impact of valid selection procedures on work-force productivity. Journal of Applied Psychology, 64, 609-626.
Examples
# Literature: Schmidt et al. (1979); Bobko, Karren, and Parkington (1983).
sdy_percentile(p15 = 60000, p85 = 140000)
Estimate SDy with proportional rules
Description
Computes a salary- or value-based SDy estimate using a multiplier such as .40 or .70.
Usage
sdy_proportional(mean_pay, multiplier = 0.4)
Arguments
mean_pay |
Mean pay or mean output value. |
multiplier |
Proportional SDy multiplier. Defaults to |
Value
Estimated SDy.
References
Schmidt, F. L., Hunter, J. E., & Pearlman, K. (1982). Assessing the economic impact of personnel programs on workforce productivity. Personnel Psychology, 35, 333-347.
Hunter, J. E., & Schmidt, F. L. (1982). Fitting people to jobs: The impact of personnel selection on national productivity. In M. D. Dunnette & E. A. Fleishman (Eds.), Human performance and productivity (Vol. 1, pp. 233-284). Erlbaum.
Examples
# Literature: Schmidt, Hunter, and Pearlman (1982); Hunter and Schmidt (1982).
sdy_proportional(mean_pay = 80000, multiplier = .40)
sdy_proportional(mean_pay = 80000, multiplier = .70)
Estimate SDy with a coefficient-of-variation approach
Description
A compact implementation of the Raju-Burke-Normand logic: SDy = CV * mean_pay.
Use this function when the coefficient of variation is theoretically or
empirically justified for the job family.
Usage
sdy_rbn(mean_pay, coefficient_variation)
Arguments
mean_pay |
Mean pay or mean criterion value. |
coefficient_variation |
Coefficient of variation for job performance value. |
Value
Estimated SDy.
References
Raju, N. S., Burke, M. J., & Normand, J. (1990). A new approach for utility analysis. Journal of Applied Psychology, 75, 3-12.
Examples
# Literature: Raju, Burke, and Normand (1990).
sdy_rbn(mean_pay = 80000, coefficient_variation = .35)
SDy from superior-equivalents judgments
Description
Computes SDy from a judged monetary difference between a superior and a typical performer, divided by the standardized distance assumed to separate them.
Usage
sdy_superior_equivalents(superior_value, typical_value, z_difference = 1)
Arguments
superior_value |
Monetary value of the superior performer. |
typical_value |
Monetary value of the typical performer. |
z_difference |
Standardized distance between the two performers. Defaults
to |
Value
Estimated SDy.
References
Eaton, N. K., Wing, H., & Mitchell, K. J. (1985). Alternate methods of estimating the dollar value of performance. Personnel Psychology, 38, 27-40.
Burke, M. J., & Frederick, J. T. (1984). Two modified procedures for estimating standard deviations in utility analyses. Journal of Applied Psychology, 69, 482-489.
Burke, M. J., & Frederick, J. T. (1986). A comparison of economic utility estimates for alternative SDy estimation procedures. Journal of Applied Psychology, 71, 334-339.
Examples
# Literature: Eaton, Wing, and Mitchell (1985); Burke and Frederick (1984, 1986).
sdy_superior_equivalents(superior_value = 140000, typical_value = 100000)
Expected standardized predictor score among selected applicants
Description
Computes the mean of a standard normal predictor after top-down selection at a
given selection ratio: dnorm(qnorm(1 - selection_ratio)) / selection_ratio.
Usage
selected_mean_z(selection_ratio)
Arguments
selection_ratio |
Proportion of applicants selected. Must be in |
Value
Numeric vector with expected standardized predictor scores.
References
Naylor, J. C., & Shine, L. C. (1965). A table for determining the increase in mean criterion score obtained by using a selection device. Journal of Industrial Psychology, 3, 33-42.
Examples
# Literature: Naylor and Shine (1965).
selected_mean_z(c(.10, .20, .50))
Selection table and classification metrics
Description
Computes a 2x2 classification table from observed selected/success outcomes.
Usage
selection_table(selected, success)
Arguments
selected |
Logical or 0/1 vector indicating selection. |
success |
Logical or 0/1 vector indicating criterion success. |
Value
A list with table and classification metrics.
References
Thomas, J. G., Owen, D. B., & Gunst, R. F. (1977). Improving the use of educational tests as selection tools. Journal of Educational Statistics, 2(1), 55-77.
Taylor, H. C., & Russell, J. T. (1939). The relationship of validity coefficients to the practical effectiveness of tests in selection. Journal of Applied Psychology, 23, 565-578.
Examples
# Literature: Taylor and Russell (1939); Thomas, Owen, and Gunst (1977).
selection_table(c(1, 1, 0, 0), c(1, 0, 1, 0))
Selection utility from expected standardized criterion performance
Description
Computes the Ock-Oswald/BCG-style utility expression
expected_criterion_z * sdy * n_selected - n_applicants * cost_per_applicant - fixed_cost
from an expected standardized criterion score among selected applicants.
Usage
selection_utility_from_z(
expected_criterion_z,
sdy,
n_selected,
n_applicants = n_selected,
cost_per_applicant = 0,
fixed_cost = 0,
applicant_n = NULL
)
Arguments
expected_criterion_z |
Expected criterion performance in standard deviation units. |
sdy |
Monetary value of one criterion standard deviation. |
n_selected |
Number of selected applicants. |
n_applicants |
Number of applicants assessed. This is the preferred name in v0.4.0. |
cost_per_applicant |
Cost per applicant assessed. |
fixed_cost |
Additional fixed cost. |
applicant_n |
Legacy alias for |
Value
A psu_comparison object.
References
Cronbach, L. J., & Gleser, G. C. (1965). Psychological tests and personnel decisions (2nd ed.). University of Illinois Press.
Naylor, J. C., & Shine, L. C. (1965). A table for determining the increase in mean criterion score obtained by using a selection device. Journal of Industrial Psychology, 3, 33-42.
Brogden, H. E. (1946). On the interpretation of the correlation coefficient as a measure of predictive efficiency. Journal of Educational Psychology, 37, 65-76.
Examples
# Literature: Naylor and Shine (1965); Brogden (1946); Cronbach and Gleser (1965).
# Minimal example: expected performance converted to monetary utility.
selection_utility_from_z(1.25, sdy = 50000, n_selected = 20,
n_applicants = 100, cost_per_applicant = 200)
# Substantive example: compare two systems from expected criterion gains.
compensatory <- selection_utility_from_z(1.25, 50000, n_selected = 20,
n_applicants = 100,
cost_per_applicant = 1000)
hurdle <- selection_utility_from_z(.55, 50000, n_selected = 20,
n_applicants = 100,
cost_per_applicant = 300)
compensatory$net_utility - hurdle$net_utility
Sensitivity grid for BCG utility
Description
Computes BCG net utility for all combinations of selected parameter values.
Usage
sensitivity_grid(validity, selection_ratio, sdy, n_selected, tenure, cost = 0)
Arguments
validity |
Numeric vector of validities. |
selection_ratio |
Numeric vector of selection ratios. |
sdy |
Numeric vector of SDy values. |
n_selected |
Number selected. |
tenure |
Expected tenure. |
cost |
Cost. |
Value
A data frame with one row per scenario.
References
Cronshaw, S. F., Alexander, R. A., Wiesner, W. H., & Barrick, M. R. (1987). Incorporating risk into selection utility. Organizational Behavior and Human Decision Processes, 40, 270-286.
Ock, J., & Oswald, F. L. (2018). The utility of personnel selection decisions: Comparing compensatory and multiple-hurdle selection models. Journal of Personnel Psychology, 17(4), 172-182.
Boudreau, J. W. (1991). Utility analysis for decisions in human resource management. In M. D. Dunnette & L. M. Hough (Eds.), Handbook of industrial and organizational psychology (Vol. 2, pp. 621-745). Consulting Psychologists Press.
Examples
# Literature: Cronshaw et al. (1987); Boudreau (1991); Ock and Oswald (2018).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Cronshaw et al. (1987); Boudreau (1991); Ock and Oswald (2018)).
sensitivity_grid(validity = c(.20, .30), selection_ratio = c(.10, .20),
sdy = c(40000, 60000), n_selected = 100, tenure = 3)
# Substantive example (Cronshaw et al., 1987; Boudreau, 1991;
# Ock and Oswald, 2018). Find the best sensitivity scenario.
grid <- sensitivity_grid(validity = seq(.20, .40, .10),
selection_ratio = c(.10, .20, .40),
sdy = c(30000, 60000),
n_selected = 100, tenure = 3, cost = 75000)
grid[which.max(grid$net_utility), ]
Schmidt-Hunter-Pearlman intervention utility
Description
Computes utility from an intervention effect size rather than from a selection validity coefficient. This is appropriate for training or intervention designs where the key input is a standardized mean difference.
Usage
shp_utility(effect_size_d, sdy, n_treated, tenure, cost = 0)
Arguments
effect_size_d |
Standardized mean difference caused by the intervention. |
sdy |
Standard deviation of job performance in monetary units. |
n_treated |
Number of employees receiving the intervention. |
tenure |
Expected duration of the effect in periods. |
cost |
Total intervention cost. |
Value
A psu_shp object.
References
Schmidt, F. L., Hunter, J. E., & Pearlman, K. (1982). Assessing the economic impact of personnel programs on workforce productivity. Personnel Psychology, 35, 333-347.
Cohen, J. (1988). Statistical power analysis for the behavioral sciences (2nd ed.). Erlbaum.
Examples
# Literature: Schmidt, Hunter, and Pearlman (1982); Cohen (1988).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Schmidt, Hunter, and Pearlman (1982); Cohen (1988)).
shp_utility(effect_size_d = .30, sdy = 50000, n_treated = 100,
tenure = 2, cost = 40000)
# Substantive example (Schmidt, Hunter, and Pearlman, 1982;
# Cohen, 1988). Compare two training designs.
short_training <- shp_utility(.20, 50000, n_treated = 120, tenure = 1, cost = 30000)
intensive_training <- shp_utility(.35, 50000, n_treated = 120, tenure = 1,
cost = 95000)
c(short = short_training$net_utility, intensive = intensive_training$net_utility)
Sturman's (2001) comprehensive utility analysis
Description
Composes the six adjustments of Sturman's (2001) comprehensive model (§15 of the package's accompanying review) into a single call. The returned object includes both the integrated comprehensive estimate and a stepwise cascade that documents the contribution of each adjustment.
Usage
sturman_comprehensive(
validity,
baseline_validity = 0,
selection_ratio,
sdy,
n_year_one,
tenure = 5,
fixed_cost = 0,
hires_per_period = NULL,
losses_per_period = NULL,
tax_rate = 0,
discount_rate = 0,
variable_value = 0,
maintenance_cost_per_period = NULL,
predictor_cor = NULL,
predictor_criterion_cor = NULL,
criterion_cor = NULL,
criterion_weights = NULL,
probation_cutoff_z = NULL,
acceptance_rate = 1,
quality_acceptance_correlation = 0
)
Arguments
validity |
Focal-system validity (used directly when |
baseline_validity |
Operating-system baseline validity. Default 0 collapses to a random-baseline analysis, which the function will warn about. |
selection_ratio |
Selection ratio. |
sdy |
Standard deviation of job performance in monetary units. |
n_year_one |
Number of hires in year 1. |
tenure |
Horizon in years (>= 1). |
fixed_cost |
Year-1 selection cost (currency). |
hires_per_period, losses_per_period |
Optional vectors of length
|
tax_rate, discount_rate, variable_value |
Boudreau parameters. |
maintenance_cost_per_period |
Optional cost vector of length |
predictor_cor, predictor_criterion_cor, criterion_cor, criterion_weights |
If supplied, the function computes the restricted canonical validity
from this multidimensional criterion specification and substitutes it
for |
probation_cutoff_z |
Standardized cutoff for the probation rule
(default |
acceptance_rate, quality_acceptance_correlation |
Murphy's (1986)
offer-rejection adjustment. If |
Details
The six adjustments combined here are: (1) baseline correction
(Sturman, 2000, 2001), (2) restricted canonical validity for a
multidimensional criterion, (3) multi-period employee flows, (4)
Boudreau-style economic adjustments (taxes, variable costs, discount
rate), (5) De Corte (1994) probation-period truncation, and optionally
(6) Murphy's (1986) offer-rejection adjustment. See bcg_utility(),
boudreau_utility(), restricted_canonical_validity(),
probation_adjustment(), employee_flow(), and
offer_rejection_adjustment() for the underlying components.
Value
Object of class c("psu_sturman", "psu_utility") with
components: net_utility (final comprehensive estimate), cascade
(a data frame documenting each step), effective_validity,
effective_baseline_validity, and the relevant intermediate objects.
References
De Corte, W. (1994). Utility analysis for the one-cohort selection-retention decision with a probationary period. Journal of Applied Psychology, 79, 402-411.
Murphy, K. R. (1986). When your top choice turns you down: Effect of rejected offers on the utility of selection tests. Psychological Bulletin, 99, 133-138.
Sturman, M. C. (2000). Implications of utility analysis adjustments for estimates of human resource intervention value. Journal of Management, 26, 281-299.
Sturman, M. C. (2001). Utility analysis for multiple selection devices and multiple outcomes. Journal of Human Resource Costing and Accounting, 6(2), 9-28.
Examples
Rxx <- matrix(c(1, .30, .30, 1), 2, 2)
Rxy <- matrix(c(.30, .10, .15, .25), 2, 2, byrow = TRUE)
Ryy <- matrix(c(1, .40, .40, 1), 2, 2)
sturman_comprehensive(
validity = .35, baseline_validity = .20, selection_ratio = .20,
sdy = 50000, n_year_one = 100, tenure = 5, fixed_cost = 75000,
tax_rate = .25, discount_rate = .08,
predictor_cor = Rxx, predictor_criterion_cor = Rxy,
criterion_cor = Ryy, criterion_weights = c(.7, .3),
probation_cutoff_z = -1,
acceptance_rate = 0.70, quality_acceptance_correlation = -0.20
)
Binomial sampling probabilities for Taylor-Russell success rates
Description
Converts a Taylor-Russell success ratio into finite-sample probabilities. This follows the finite-sampling logic discussed by Thomas, Owen, and Gunst: once a conditional probability of success is known, the number of successful selected applicants in a finite cohort can be modeled with a binomial distribution.
Usage
tr_binomial_success_probability(n_selected, ppv, at_least = NULL)
Arguments
n_selected |
Number of selected applicants. |
ppv |
Positive predictive value / success ratio among selected applicants. |
at_least |
Optional threshold for computing |
Value
A data frame with the full binomial distribution and, if requested, the cumulative upper-tail probability.
References
Thomas, J. G., Owen, D. B., & Gunst, R. F. (1977). Improving the use of educational tests as selection tools. Journal of Educational Statistics, 2(1), 55-77.
Examples
# Literature: Thomas, Owen, and Gunst (1977).
tr_binomial_success_probability(n_selected = 20, ppv = .91, at_least = 18)
Taylor-Russell utility for one predictor
Description
Computes the Taylor-Russell classification table for one normally distributed predictor and one dichotomized criterion.
Usage
tr_classic(base_rate, selection_ratio, validity, digits = 3)
Arguments
base_rate |
Population proportion of successful applicants, |
selection_ratio |
Proportion selected, |
validity |
Predictor-criterion correlation. |
digits |
Number of digits used for printed summaries. |
Value
A list with thresholds, TP, FP, FN, TN, PPV, sensitivity, specificity, and incremental success over the base rate.
References
Taylor, H. C., & Russell, J. T. (1939). The relationship of validity coefficients to the practical effectiveness of tests in selection. Journal of Applied Psychology, 23, 565-578.
Cascio, W. F. (1980). Responding to the demand for accountability: A critical analysis of three utility models. Organizational Behavior and Human Performance, 25, 32-45.
Examples
# Literature: Taylor and Russell (1939); Cascio (1980).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Taylor and Russell (1939); Cascio (1980)).
tr_classic(base_rate = .50, selection_ratio = .20, validity = .35)
# Substantive example (Taylor and Russell, 1939; Cascio, 1980).
# Examine how selectivity changes the success ratio.
low_sr <- tr_classic(base_rate = .50, selection_ratio = .10, validity = .35)
high_sr <- tr_classic(base_rate = .50, selection_ratio = .50, validity = .35)
c(low_selection_ratio = low_sr$ppv, high_selection_ratio = high_sr$ppv)
Multivariate Taylor-Russell utility for conjunctive multiple-hurdle selection
Description
Implements the Thomas-Owen-Gunst multivariate extension of the Taylor-Russell model. Candidates are selected if and only if they exceed all predictor cutoffs. The correlation matrix must include the predictors first and the criterion last.
Usage
tr_multivariate(selection_ratios, base_rate, R, digits = 3)
Arguments
selection_ratios |
Vector of marginal selection ratios, one per predictor. |
base_rate |
Population proportion of successful applicants. |
R |
Correlation matrix of dimension |
digits |
Number of digits used for printed summaries. |
Value
A psu_tr object with TP, FP, FN, TN, joint selection ratio, PPV,
sensitivity, specificity, and cutoffs.
References
Thomas, J. G., Owen, D. B., & Gunst, R. F. (1977). Improving the use of educational tests as selection tools. Journal of Educational Statistics, 2(1), 55-77.
Taylor, H. C., & Russell, J. T. (1939). The relationship of validity coefficients to the practical effectiveness of tests in selection. Journal of Applied Psychology, 23, 565-578.
Genz, A., & Bretz, F. (2009). Computation of multivariate normal and t probabilities. Springer.
Examples
# Literature: Taylor and Russell (1939); Thomas, Owen, and Gunst
# (1977); Genz and Bretz (2009).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Taylor and Russell, 1939;
# Thomas, Owen, and Gunst, 1977; Genz and Bretz, 2009).
R <- matrix(c(1, .30, .40,
.30, 1, .35,
.40, .35, 1), nrow = 3, byrow = TRUE)
tr_multivariate(selection_ratios = c(.50, .50), base_rate = .50, R = R)
# Substantive example (Taylor and Russell, 1939;
# Thomas, Owen, and Gunst, 1977; Genz and Bretz, 2009).
# Compare two validity patterns under the same marginal cutoffs.
R_stronger <- matrix(c(1, .30, .60,
.30, 1, .55,
.60, .55, 1), nrow = 3, byrow = TRUE)
weak <- tr_multivariate(c(.50, .50), base_rate = .50, R = R)
strong <- tr_multivariate(c(.50, .50), base_rate = .50, R = R_stronger)
c(weak_ppv = weak$ppv, strong_ppv = strong$ppv)
Solve equal marginal cutoffs for a target joint selection ratio
Description
Thomas, Owen, and Gunst's printed tables are indexed by the overall proportion
selected under two equal cutoffs. This helper solves the common marginal
selection ratio that yields a target conjunctive selection ratio for any
predictor correlation matrix, then calls tr_multivariate().
Usage
tr_multivariate_equal_cutoff(
joint_selection_ratio,
base_rate,
R,
interval = NULL,
tol = 1e-08,
digits = 3
)
Arguments
joint_selection_ratio |
Target conjunctive selection ratio,
|
base_rate |
Population proportion of successful applicants. |
R |
Correlation matrix with predictors first and criterion last. |
interval |
Optional search interval for the common marginal selection
ratio. Defaults to |
tol |
Numerical tolerance passed to |
digits |
Number of digits used for printed summaries. |
Value
A psu_tr object from tr_multivariate() with the solved marginal
selection ratio, the target joint selection ratio, the computed joint
selection ratio, and the numerical joint-selection error added.
References
Thomas, J. G., Owen, D. B., & Gunst, R. F. (1977). Improving the use of educational tests as selection tools. Journal of Educational Statistics, 2(1), 55-77.
Waller, N. G. (2024). TaylorRussell: A Taylor-Russell function for multiple predictors (R package version 1.2.1). CRAN.
Examples
# Literature: Thomas, Owen, and Gunst (1977); Waller (2024).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Thomas, Owen, and Gunst (1977); Waller (2024)).
R <- matrix(c(1, .50, .70,
.50, 1, .70,
.70, .70, 1), 3, 3, byrow = TRUE)
tr_multivariate_equal_cutoff(joint_selection_ratio = .20, base_rate = .60, R = R)
# Substantive example (Thomas, Owen, and Gunst, 1977;
# Waller, 2024). Reproduce the Example 1 pattern.
tog <- tr_multivariate_equal_cutoff(.20, .60, R)
c(marginal_sr = tog$solved_marginal_selection_ratio, ppv = tog$ppv)
Solve one Taylor-Russell parameter from the other three
Description
Solves for one missing Taylor-Russell parameter among base rate, selection
ratio, validity, and PPV. Exactly one of the four arguments must be NULL.
The default validity interval is non-negative to match the classical
Taylor-Russell table convention and the defensive behavior of the
TaylorRussell::TR() implementation.
Usage
tr_solve(
base_rate = NULL,
selection_ratio = NULL,
validity = NULL,
ppv = NULL,
interval = NULL,
tol = 1e-08,
allow_negative_validity = FALSE
)
Arguments
base_rate |
Population proportion of successful applicants. |
selection_ratio |
Proportion selected. |
validity |
Predictor-criterion correlation. |
ppv |
Positive predictive value / success ratio among selected applicants. |
interval |
Search interval for the missing parameter. |
tol |
Numerical tolerance passed to |
allow_negative_validity |
Logical. Should the solver allow negative
validity when |
Value
A psu_tr object containing the solved parameter and the resulting
Taylor-Russell table.
References
Taylor, H. C., & Russell, J. T. (1939). The relationship of validity coefficients to the practical effectiveness of tests in selection. Journal of Applied Psychology, 23, 565-578.
Waller, N. G. (2024). TaylorRussell: A Taylor-Russell function for multiple predictors (R package version 1.2.1). CRAN.
Examples
# Literature: Taylor and Russell (1939); Waller (2024).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example: solve validity from desired PPV.
tr_solve(base_rate = .50, selection_ratio = .20, validity = NULL, ppv = .70)
# Substantive example (Taylor and Russell, 1939; Waller, 2024).
# Solve the selection ratio needed for a desired PPV.
tr_solve(base_rate = .50, selection_ratio = NULL, validity = .35, ppv = .70)
Utility-fairness Pareto frontier
Description
Convenience wrapper around pareto_frontier() for selection-system alternatives
evaluated on utility, fairness, and optionally validity.
Usage
utility_fairness_frontier(utility, fairness, validity = NULL)
Arguments
utility |
Numeric vector of utility values to maximize. |
fairness |
Numeric vector of fairness values to maximize, for example an adverse-impact ratio where larger values indicate smaller subgroup disparity. |
validity |
Optional numeric vector of validity values to maximize. |
Value
A data frame with frontier membership.
References
De Corte, W., Lievens, F., & Sackett, P. R. (2007). Combining predictors to achieve optimal trade-offs between selection quality and adverse impact. Journal of Applied Psychology, 92, 1380-1393.
Tippins, N. T., Oswald, F. L., & McPhail, S. M. (2021). Scientific, legal, and ethical concerns about AI-based personnel selection tools: A call to action. Personnel Assessment and Decisions, 7(2), Article 1.
Examples
# Literature: De Corte, Lievens, and Sackett (2007); Tippins, Oswald, and McPhail (2021).
utility_fairness_frontier(utility = c(100, 120, 90), fairness = c(.80, .70, .95))
Monte Carlo uncertainty propagation for BCG utility
Description
Samples validity and SDy and propagates them through the BCG model. This is a simple decision-support approximation, not a full Bayesian model.
Usage
utility_monte_carlo(
n_sim = 10000,
validity_mean,
validity_se,
sdy_mean,
sdy_sd,
selection_ratio,
n_selected,
tenure,
cost = 0,
baseline_validity = 0,
seed = NULL
)
Arguments
n_sim |
Number of simulations. |
validity_mean |
Mean validity. |
validity_se |
Standard error of validity. |
sdy_mean |
Mean SDy. |
sdy_sd |
Standard deviation of SDy uncertainty. |
selection_ratio |
Selection ratio. |
n_selected |
Number selected. |
tenure |
Expected tenure. |
cost |
Cost. |
baseline_validity |
Baseline validity. |
seed |
Optional random seed. |
Value
A psu_monte_carlo object with draws and quantiles.
References
Alexander, R. A., & Barrick, M. R. (1987). Estimating the standard error of projected dollar gains in utility analysis. Journal of Applied Psychology, 72, 475-479.
Rich, J. R., & Boudreau, J. W. (1987). The effects of variability and risk on selection utility analysis. Personnel Psychology, 40, 55-84.
Ock, J., & Oswald, F. L. (2018). The utility of personnel selection decisions: Comparing compensatory and multiple-hurdle selection models. Journal of Personnel Psychology, 17(4), 172-182.
Examples
# Literature: Alexander and Barrick (1987); Rich and Boudreau (1987); Ock and Oswald (2018).
# Use the first call as a minimal example; the longer block illustrates
# how to interpret the function in the substantive setting discussed in the literature.
# Minimal example (Alexander and Barrick (1987); Rich and Boudreau (1987); Ock and Oswald (2018)).
utility_monte_carlo(n_sim = 1000, validity_mean = .35, validity_se = .05,
sdy_mean = 50000, sdy_sd = 10000, selection_ratio = .20,
n_selected = 100, tenure = 3, cost = 75000, seed = 1)
# Substantive example (Alexander and Barrick, 1987;
# Rich and Boudreau, 1987; Ock and Oswald, 2018).
# Quantify the probability that net utility is positive.
mc <- utility_monte_carlo(n_sim = 2000, validity_mean = .30, validity_se = .06,
sdy_mean = 50000, sdy_sd = 15000,
selection_ratio = .20, n_selected = 100,
tenure = 3, cost = 75000,
baseline_validity = .15, seed = 123)
mc$probability_positive
Basic utility-analysis regression diagnostics
Description
Fits a simple linear model and returns empirical inputs and normality checks relevant to linear utility analysis.
Usage
utility_regression_diagnostics(x, y)
Arguments
x |
Predictor scores. |
y |
Criterion scores in raw or monetary units. |
Value
A list with sample size, validity, SDy, regression coefficients, residual summaries, optional Shapiro-Wilk tests, and the fitted model.
References
Holling, H. (1998). Utility analysis of personnel selection: An overview and empirical study based on objective performance measures. Methods of Psychological Research Online, 3(1), 5-24.
Examples
# Literature: Holling (1998).
utility_regression_diagnostics(1:10, c(2, 3, 3, 5, 4, 6, 7, 8, 8, 10))