Reflect your Personnel Selection: R & Taylor-Russell Tables (2024)

[This article was first published on HR Blog » Rstat, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Taylor-Russell tables (Taylor & Russell, 1939) are designed to estimate the percentage of future employees who will be successful on the job if a particular selection method (eg. test, assessment center, interview) is used. I have already described the kibit russell taylor-tool (in German).

Now I will show how the number of recruited candidates is calculated precisely with R. I use the manipulate package. Therefore, the code will only run in the RSudio IDE. The big advantage is that one can easily observe the influences of

  1. the base rate of potentially suitable persons in the non-selected group of applicants as well as
  2. the validity of the selection process (by moving the slider).

This little program is excellent for teaching.

The calculations are based on an article of Richard A. Mclellan in the journal “Personnel Decisions International” (1999): Theoretical Expectancies: Replacing Classic Utility Tables with Flexible, Accurate Computing Procedures.

Reflect your Personnel Selection: R & Taylor-Russell Tables (1)

And this is the result. Have fun trying.

F1 <- function(P) { SPLIT <- 0.42 A0 <- 2.50662823884 A1 <- -18.61500062529 A2 <- 41.391199773534 A3 <- -25.44106049637 B1 <- -8.4735109309 B2 <- 23.08336743743 B3 <- -21.06224101826 B4 <- 3.13082909833 C0 <- -2.78718931138 C1 <- -2.29796479134 C2 <- 4.85014127135 C3 <- 2.32121276858 D1 <- 3.54388924762 D2 <- 1.63706781897 Q <- P - 0.5 if (abs(Q) <= SPLIT) { R <- Q*Q PPN <- Q * (((A3 * R + A2) * R + A1) * R + A0) / ((((B4 * R + B3) * R + B2) * R + B1)*R +1.0) return(PPN) } R <- P if (Q > 0) {R =1.0-P} if (R <= 0) { print("You have entered a value that is not permitted. The result is false.") return(0) } R <- sqrt(-log(R)) PPN <- (((C3 * R + C2) * R + C1) * R + C0) / ((D2 * R + D1) * R + 1.0) if (Q < 0) {PPN =-PPN} return(PPN)}F2 <- function(X) { P1A <- 242.667955230532 P1B <- 21.97926616182942 P1C <- 6.996383488661914 P1D <- -3.5609843701815E-02 Q1A <- 215.058875869861 Q1B <- 91.1649054045149 Q1C <- 15.0827976304078 Q1D <- 1.0 P2A <- 300.459261020162 P2B <- 451.918953711873 P2C <- 339.320816734344 P2D <- 152.98928504694 P2E <- 43.1622272220567 P2F <- 7.21175825088309 P2G <- .564195517478994 P2H <- -1.36864857382717E-07 Q2A <- 300.459260956983 Q2B <- 790.950925327898 Q2C <- 931.35409485061 Q2D <- 638.980264465631 Q2E <- 277.585444743988 Q2F <- 77.0001529352295 Q2G <- 12.7827273196294 Q2H <- 1.0 P3A <- -2.99610707703542E-03 P3B <- -4.94730910623251E-02 P3C <- -.226956593539687 P3D <- -.278661308609648 P3E <- -2.23192459734185E-02 Q3A <- 1.06209230528468E-02 Q3B <- .19130892610783 Q3C <- 1.05167510706793 Q3D <- 1.98733201817135 Q3E <- 1.0 SQRT2 <- 1.4142135623731 SQRTPI <- 1.77245385090552 Y <- X/SQRT2 if (Y < 0) { Y <- -Y SN <- -1.0 } else { SN <- 1.0 } Y2 <- Y * Y if (Y < 0.46875) { R1 <- ((P1D * Y2 + P1C) * Y2 + P1B) * Y2 + P1A R2 <- ((Q1D * Y2 + Q1C) * Y2 + Q1B) * Y2 + Q1A ERFVAL <- Y * R1 / R2 if (SN == 1) LOAREA <- 0.5 + 0.5 * ERFVAL else LOAREA <- 0.5 - 0.5 * ERFVAL } else { if (Y < 4.0) { R1 <- ((((((P2H * Y + P2G) * Y + P2F) * Y + P2E) * Y + P2D) * Y + P2C) * Y + P2B) * Y + P2A R2 <- ((((((Q2H * Y + Q2G) * Y + Q2F) * Y + Q2E) * Y + Q2D) * Y + Q2C) * Y + Q2B) * Y + Q2A ERFCVAL <- exp(-Y2) * R1 / R2 } else { Z <- Y2 * Y2 R1 <- (((P3E * Z + P3D) * Z + P3C) * Z + P3B) * Z + P3A R2 <- (((Q3E * Z + Q3D) * Z + Q3C) * Z + Q3B) * Z + Q3A ERFCVAL <- (exp(-Y2) / Y) * (1.0 / SQRTPI + R1 / (R2 * Y2)) } if (SN == 1) LOAREA <- 1.0 - 0.5 * ERFCVAL else LOAREA <- 0.5 * ERFCVAL } UPAREA <- 1.0 - LOAREA return(UPAREA)}F3 <- function(H1, HK, R) { X <- c(0.04691008, 0.23076534, 0.5, 0.76923466, 0.95308992) W <- c(0.018854042, 0.038088059, 0.0452707394, 0.038088059, 0.018854042) H2 <- HK H12 <- (H1*H1 + H2*H2)/2.0 BV <- 0 if (abs(R) >= 0.7) { R2 <- 1.0-R*R R3 <- sqrt(R2) if (R < 0) H2 <- -H2 H3 <- H1*H2 H7 <- exp(-H3 / 2.0) if (R2 != 0) { H6 <- abs(H1 - H2) H5 <- H6 * H6 / 2.0 H6 <- H6 / R3 AA <- 0.5 - (H3 / 8.0) AB <- 3.0 - (2.0 * AA * H5) BV <- 0.13298076 * H6 * AB * F2(H6) - exp(-H5 / R2) * (AB + AA * R2) * 0.053051647 for (i in 1:5) { R1 <- R3 * X[i] RR <- R1 * R1 R2 <- sqrt( 1.0- RR) BV <- BV - W[i] * exp(-H5 / RR) * (exp(-H3 / (1.0 + R2)) / R2 / H7 - 1.0 - AA* RR) } } if (R > 0 & H1 > H2) { BV <- BV * R3 * H7 + F2(H1) return(BV) } if (R > 0 & H1 <= H2) { BV <- BV * R3 * H7 + F2(H2) return(BV) } if (R < 0 & (F2(H1) - F2(H2)) < 0) { BV <- 0 - BV * R3 * H7 return(BV) } if (R < 0 & (F2(H1) - F2(H2)) >= 0) { BV <- (F2(H1) - F2(H2)) - BV * R3 * H7 return(BV) } } H3 <- H1 * H2 for (i in 1:5) { R1 <- R * X[i] RR2 <- 1.0 - R1 * R1 BV <- BV + W[i] * exp((R1 * H3 - H12) / RR2) / sqrt(RR2) } BV <- F2(H1) * F2(H2) + R * BV return(BV)}true_positives <- function(N, ToSelect,BaseRate, Validity) {round(F3(F1(1.0-ToSelect/N), F1(1.0-BaseRate), Validity)/(ToSelect/N)*ToSelect,1)}false_positives <- function(N, ToSelect,BaseRate, Validity) {round(ToSelect-F3(F1(1.0-ToSelect/N), F1(1.0-BaseRate), Validity)/(ToSelect/N)*ToSelect,1)}false_negatives <- function(N, ToSelect,BaseRate, Validity) {round(N*BaseRate - F3(F1(1.0-ToSelect/N), F1(1.0-BaseRate), Validity)/(ToSelect/N)*ToSelect,1)}true_negatives <- function(N, ToSelect,BaseRate, Validity) {N - true_positives(N, ToSelect,BaseRate, Validity) - false_positives(N, ToSelect,BaseRate, Validity) - false_negatives(N, ToSelect,BaseRate, Validity)}library(manipulate)manipulate( barplot( matrix(c(true_positives(Applicants, StaffRequirement, BaseRate, Validity), false_positives(Applicants, StaffRequirement, BaseRate, Validity), true_negatives(Applicants, StaffRequirement, BaseRate, Validity), false_negatives(Applicants, StaffRequirement, BaseRate, Validity)), nrow = 2, ncol=2, byrow=FALSE, dimnames = list(c("rightly", "wrongly"), c("recruited", "rejected"))), legend.text=TRUE, main="Reflect your personnel selection!"), Applicants=slider(1,100, step=1, initial = 50), StaffRequirement=slider(1,100, step=1, initial = 10), BaseRate=slider(0,1, step=.01, initial = .25), Validity=slider(0,1, step=.01, initial = .37))

Related

To leave a comment for the author, please follow the link and comment on their blog: HR Blog » Rstat.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Reflect your Personnel Selection: R & Taylor-Russell Tables (2024)

FAQs

What is the Taylor-Russell model? ›

1 The Taylor-Russell model can be used to assess the utility of any method used to select any resource – personnel. or otherwise - used in production of a firm's goods or services.

What is personnel selection in psychology? ›

Personnel Psychology

Personnel selection refers to the process of testing and evaluating job applicants for the purpose of determining the subset of applicants to whom job offers will be made.

What are Naylor Shine tables? ›

Naylor-Shine tables. - Entail obtaining the difference between the means of the selected and unselected groups to derive an index of what the test (or some other tool of assessment) is adding to already established procedures.

What is the difference between hit rate and base rate? ›

Base rate- extent to which a particular trait, behavior, characteristic, or attribute exists in the population (expressed as proportion). Hit rate- proportion of people a test accurately identifies as possessing or exhibiting a trait, behavior, characteristic or attributes.

What is incremental validity in psychology? ›

Incremental validity is a specific aspect of criterion-related validity that refers to what an additional assessment or predictive variable can add to the information provided by existing assessments or variables. It refers to the amount of “bonus” predictive power by adding in another predictor.

Which of the following is a limitation of the Taylor Russell table? ›

Which of the following is a limitation of the Taylor-Russell tables? It is impossible to estimate the extent to which inclusion of a particular test in a selection system will improve selection. Identification of a criterion score that separates successful from unsuccessful employees can potentially be difficult.

What is the expectancy table? ›

An expectancy table, also known as an actuarial table, is a chart that shows statistical data about life expectancies for people in different categories. These categories can include age, family history, and exposure to certain chemicals or substances.

What is expectancy data in utility analysis? ›

Expectancy data

Some utility analyses will require little more than converting a scatterplot of test data to an expectancy table. An expectancy table can provide an indication of the likelihood that a test-taker will score within some interval of scores on a criterion measure.

What is a good hit rate in sales? ›

In most areas of the country, the average hit rate is about 20%. If you're winning more than 20% your doing pretty good. Many firms that I've talked to are happy that they're around 20%.

What does hit rate tell you? ›

The percentage of the desired number of outcomes received by a salesperson relative to the total activity level. For example, it is the number of sales as a percentage of the number of calls. It also is called batting average and conversion rate.

What is a cache hit? ›

A "cache hit" occurs when a file is requested from a cache and the cache is able to fulfill that request. For instance, if a user visits a webpage that's supposed to display a picture of a cat playing a piano, the browser may send a request to the webpage's CDN for this picture.

What is the hit rate meaning? ›

Hit rate is a metric or measure of business performance traditionally associated with sales. It is defined as the number of sales of a product divided by the number of customers who go online, planned call, or visit a company to find out about the product.

What is the difference between hit rate and win rate? ›

The basic definition of the win rate is the percentage of pursuits you win based on the number of pursuits you go after. It is also commonly referred to as a hit rate.

What is a hit rate in finance? ›

We define the hit rate of a portfolio as the percentage of positions that have generated positive returns over a given period. For example, over the past year, if 15 positions made money and 5 positions lost money, then the hit rate would be 15/(15 + 5) = 75%.

How does hit rate work? ›

A sales hit rate is a metric that counts the number of sales divided by the number of prospects. While a prospect can be defined in different ways, the general idea is to quantify the number of product visitors who have converted into customers. Sales hit rates are often used to measure an individual rep's performance.

Top Articles
Latest Posts
Article information

Author: Pres. Carey Rath

Last Updated:

Views: 5477

Rating: 4 / 5 (61 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Pres. Carey Rath

Birthday: 1997-03-06

Address: 14955 Ledner Trail, East Rodrickfort, NE 85127-8369

Phone: +18682428114917

Job: National Technology Representative

Hobby: Sand art, Drama, Web surfing, Cycling, Brazilian jiu-jitsu, Leather crafting, Creative writing

Introduction: My name is Pres. Carey Rath, I am a faithful, funny, vast, joyous, lively, brave, glamorous person who loves writing and wants to share my knowledge and understanding with you.