Employers’ selection of job applicants is an important labor market proesses for both employers and individuals. For organizations, access to high-quality workers is a source of competitive advantage. For individuals, access to certain jobs at certain timing can have a large impact on one’s career trajectories. Job signaling is the most fundamental and important aspect of selection processes in labor market. Information asymmetries between employers and job applicants provide challenges for both ends.
Most studies have focused on job signaling and applicant capabilities when trying to understand selection processes in labor markets. On the other hand, increasing number of studies suggest that selection decisions are affected not only by perceptions of applicantss’ capability but also by perceptions of applicants’ commitment to the organization.
While previous literature investigated both the effect of perceptions of applicants’ capability and the effect of perceptions of applicants’ commitment on the likelihood of a candidate’s being selected for a job, the relationship between the two dimensions had been understudied. In an attempt to shed light on such a gap in the literature, Galperin, Hahl, Sterling, and Guo (Gelperin et al. henceforth) conducted a series of online field experiments and published an article in ASQ in the year of 2020. (For reference, see Links
section in the below.)
Galperin et al. (2020) suggested that signals that influence perceptions of capability in labor markets may have discernable effects of the perceptions of a candidate’s commitment, which also affects the likelihood of the candidate’s being selected for the job. The paper included four studies, three of which were online field experiments. In this study, I plan to replicate Study 2.
In the original paper, the authors conducted a direct test of the effect of applicants’ commitment and high-capability rejection. Study 2 was conducted to directly manipulated perceived commitment of an applicant to complement one of the other studies where they could not directly manipulate commitment. This is important because the main contribution of the study is suggested (and proved) mediation effect of commitment on likelihood of a job offer.
I anticipate two challenges while attempting to replicate the results. First, I may run into sample issue. This study is about job signals and hiring managers’ decision making in making job offers. Hence, it is important that I only have hiring managers (defined by someone with experiences as a hiring manager) in the sample. Since I have to rely on Prolifics to do the sampling, less appropriate sample might be acquired in the end. Similar issue applies to random assignment of participants. Second, survey design might be difficult. The main part of this replication study is manipulating commitment of a job applicant. Since commitment could mean different things both conceptually and practically, it is essential that I manipulate the main concepts elaborately. To overcome this challenge, I plan to reach out to original authors and try to acquire survey items that they used for the original study.
To replicate the results of Study 2, I plan to run the same online experiment on Prolific. Prior to running the main study, I plan to run two pilot studies. The first pilot study will involve non-naive participants, whereas the second pilot study will have naive participants on MTurk.
For the main study, participants will be recruited to fill out a “survey for hiring managers” through Prolific in October-November 2021.
The study will have the same structure as that of the original study: 2 by 2 between-subjects design. Participants will be randomly assigned to one of the four conditions. (2 capability conditions X 2 commitment conditions) They will be given the same stimuli as the original study.
I plan to conduct a manipulation check for both candidate’s perceived capability and perceived commitment by combining the questionnaires included in the survey.
With the data acquired from the survey experiment, I plan to conduct two t-tests to replicate the key results of Study 2. As an exploratory analysis, I plan to conduct a two-way ANOVA to examine the interaction effects.
The original study had a sample size of 212. For the first t-test (neutral commitment condition), the statistics were: t = 3.66
, p < 0.001
. For the second t-test (high commitment condition), the results were: t = -3.34
, p = 0.001
.
Since I have two t-test for the study, I chose the t-test with smaller t value and used the study for the power analysis, which is the second t-test with t = -3.34
. Then I did a calculation assuming a balanced cell size.
Results of the effect size calculation for the second t-test (calculated by using mean and s.d.) were as follows: Cohen's d = 0.6554
, effect-size r = 0.3114
. I conducted the effect size calculation using the t-value and degrees of freedom as well and obtained very similar results.
Based on the effect size, I conducted a power analysis. Results for the power analysis for 80%, 90%, 95% power (for the second t-test) are as follows:
Since the original work did have two t-tests, I needed to take the results and multiply by 2 to get the results for power analysis for the whole study. Therefore, the final results for the power analysis were as follows:
The sample size for the 80% power (based on the original effect of the second t-test) was 152. I could not have 152 participants due to some constraints (mainly financial.) The original study paid the participants high compensation ($6.00
) for this cognitively engaging study, I want to provide a reasonable amount of compensation to each participant. Considering the approximate time needed to complete the study and the hourly pay, I decided to pay $2.00
each. My budget is limited at about $400.00
for the study, so I decided have a sample size of 150
.
The sample will consist of 150
participants recruited from Prolific. In order to participate in the study, individuals should have an experience hiring people for the organization because this study addresses job decision making processes of hiring managers in the labor market.
The survey experiment materials were coded in Qualtrics. Participants recuited on Prolific could click on the link to the survey on Qualtrics. Participants were randomly assigned to 2 capability conditions
that involved two different job candidate resumes. Participants were also randomly assigned to 2 commitment conditions
given by information from HR department. The procedure for the study is described below.
"The procedure for Study 2 was very similar to that for Study 1. We used the same job candidate profiles as in Study 1, but instead of evaluating both candidates, participants viewed only one profile and were asked to evaluate only that candidate applying to a ‘corporate finance position in a medium-size health care company.’ To verify that participants understood the directions, we asked them a series of attention-check questions. If they answered incorrectly, the context was repeated to them as a reinforcement.
One additional difference between Study 1 and Study 2 was that in this experiment, participants were told that their job as ‘line manager’ meant they ‘should not concern themselves with negotiating the offer, but should only consider this candidate’s potential performance on the job.’ This was repeated before the participant was asked about his or her likelihood of giving the candidate an offer. We also asked participants to rate from 1 (low) to 7 (high) how concerned they were about the candidate accepting the job. There was no difference across conditions in this measure, and results presented below are robust to controlling for this measure. This indicates that participants behaved as intended and focused on post-hire commitment rather than concerns about the candidate’s acceptance of a job offer.
Participants were randomly assigned to view either the extremely highcapability candidate or the moderately high-capability candidate, who were presented in the same way as they were in Study 1. Next, participants were randomly assigned to one of two commitment-information conditions: neutral or high. All participants were told, ‘As part of the application process, the candidate completed an assessment delivered by your firm’s HR department,’ that the candidate scored a 75 on the assessment, and that ‘candidates that have scored at least 60 points have skills that match the requirements of the job.’ In the neutral-commitment condition, nothing was mentioned about the assessment’s relationship with commitment. Participants were told that ‘this assessment was able to predict the candidate’s ability to do the job in your firm.’ In contrast, participants randomly assigned to the high-commitment condition were told that ‘this assessment was able to predict the candidate’s likely commitment to your organization (e.g., likelihood to stay with your firm, be motivated and work well with others).’ This procedure resulted in a 2 (extremely high capability/moderately high capability) by 2 (high commitment/neutral commitment) between-subject design.
Participants were then asked about their likelihood of giving the candidate a job offer based on the same scale used in Study 1. This variable served as the dependent variable." (Galperin et al., 2020)
For this replication, the original work’s procedure (described in the quotation above) was followed precisely.
"As a manipulation check after rating their likelihood to give the candidate an offer, participants were then asked to evaluate the candidate’s capability by rating him on a 7-point scale (1 = low and 7 = high) on four criteria related to capability: ‘‘how competent the candidate would be in his job’’; ‘‘how productive the candidate was in his previous job’’; ‘‘how skilled the candidate is’’; and ‘‘how much finance experience the candidate has.’’ We combined these four measures to create a measure for the candidate’s perceived capability (Cronbach’s alpha = .88). Participants randomly assigned to the extremely high-capability conditions (N = 106, mean = 5.86, S.D. = .82) rated the candidate higher in perceived capability (t = − 6.60, d.f. = 210, p < .001, two-tailed test) than those assigned to the moderately high-capability condition (N = 106, mean = 4.99, S.D. = 1.08).
Participants were also asked about perceived commitment after these ratings. They were asked to rate (1 = low, 7 = high) the candidate on the following four dimensions: ‘‘likely commitment to the organization,’’ ‘‘commitment to the industry,’’ ‘‘willingness to stay with the company,’’ and ‘‘willingness to work extra hours.’’ We added commitment to the industry to the measure (compared with the Study 1 scale) to address the change in industry. These ratings were averaged to create a perceived organizational commitment score (Cronbach’s alpha = .89). Participants randomly assigned to the highcommitment conditions (N = 105, mean = 5.44, S.D. = 1.16) rated the candidate higher in commitment (t = − 5.94, d.f. = 210, p < .001, two-tailed test) than those assigned to the neutral-commitment conditions (N = 107, mean = 4.51, S.D. = 1.57)." (Galpein et al., 2020)
For this replication, the original work’s procedure (described in the quotation above) for manipulation checks was followed precisely.
Confirmatory statistical analysis is going to involve two t-tests, following the methods used in the original work. I run a t-test for High-commitment conditions, and another t-test for Neutral-commitment conditions. By doing so, I can test differential effects of extremely high capability on likelihood of getting an offer for different commitment conditions.
I plan to conduct the same manipulation check analyses of those from original work. There are 4 measures for capability and 4 measures for commitment. As the original authors did, I will average the ratings for capability and commitment (separately for each manipulation) and created a perceived capability measure and a perceived commitment measure. Then I will examine Cronbach’s alpha value and conduct t-tests across different treatment groups.
Since the original work aims to explore the interactional effects of capability and commitment on a candidate’s likelihood of getting an offer, I plan to conduct a two-wawy ANOVA as an exploratogy analysis. Two-way ANOVA can be a good statitical model since I am trying to examine the interation effect of candidate’s capability and commitment (Capability X Commitment) on the likelihood of receiving an offer. By using the two-way factorial design, I can effectively examine the potential interaction effect between Capability and Commitment.
While the first pilot (Pilot A) went smoothly, I had some issues with Pilot B. So I had to run Pilot B three times to identify the appropriate strategy to run the study on Prolific. Three pilots were conducted on Prolific between November 12, 2021 and November 14, 2021. All three pilots were conducted with sample size of N=4. The participants were recruited on Prolific. They had to have hiring experience to be eligible for the study. The original plan was to recruit participants internationally on Prolific. After the first Pilot B, I realized that this sampling strategy was not appropriate. Even with the language filter, (fluency in English) international participants were taking too long to complete the study. The median value for the duration of the stuay was approximately 24 minutes for a 10-minute study. Therefore I conducted the second Pilot B with different sampling strategy. I added another filter so that only residents of U.S. can participate in the study. I also deleted all the open-ended questions from the survey. After running the second pilot, I could see that the problem was more about participants’ country of residence than having open-ended questions in the survey. Hence, I ran the third Pilot B with the original survey design. The sampling strategy was the same as the second pilot (individuals with hiring experience who live in the U.S., fluent in English). The third pilot ran without any problem and I was able to collect data.
The most important difference is that my study involves a different sample. First, the sample size will be different. The original work a sample size of N=212. My sample will have fewer participants than that of original paper. Since the study involves 2 x 2 design, such a difference in sample sizes may result in different statistical power. Furthermore, the nature of the sample may vary. While the original work recruited participants through Qualtrics panel, I will recruit participants through Prolific. Substantial differences may exist when filtering for the target participants. The most important aspect of the sample is that the sample should include only individuals who served as hiring managers. For the original study, the participants were Qualtrics-verified hiring managers who were U.S. based. All the participants could provide evidence of having served as a hiring manager. On the other hand, I do not have a means of verifying participants’ experience as hiring managers. I have to rely on self-report on Prolific. Hence, it is possible that the nature of my sample will be different from the original study. Another important difference is timing. This research studies hiring in the labor market. With hiring, timing is very important because there are a lot of time sensitivities. Although the original work was published in 2020, Study 2 was conducted in December 2016. This replication is conducted in November 2021. Since there is 5-year time difference, how people think about hiring could have changed substantially over those 5 years, especially since the outbreak of the COVID-19 pandemic. I acknowledge that any unforeseen issues are the sole responsiblitity of mine.
Sample size: My final sample consists of N=137 participants. I originally planned to have a sample size of N=150. However, I could not recruit 150 participants due to the limited budget. I had to run multiple pilot studies as I encountered minor issues as I was conducting pilot B. As a result, I spent more than my original budget for the pilot studies. Therefore, I recruited as many participants as I could within my constrained budget, which resulted with a sample with 137 participants. (The original work had a sample of N=212.)
Demographics: The final sample consists of individuals who currently reside in the U.S. The original plan was to recruit internationally. However, Pilot B raised concerns. Job candidate’s qualification and evaluations depend on the nuiances in the labor market, which may be different across different regions. So I decided to limit the sample to residents of U.S. only, which follows the original work’s approach since the original sample had hiring managers who were U.S. based.
Data exclusions: Individuals who failed to check eligibility question were excluded from the final sample. As an eligibility check, the survey asked participants if they had any hiring experience in the beginning. Those who reported that they did not have any hiring experience were excluded from the study. Furthermore, individuals who entered the survey and dropped out voluntarily without completing the questionnaire were also excluded from the final sample.
None.
First, when the study is done, download data from Qualtrics using qualtRics
package. (Other than qualtRics
package, load other essential packages for data analysis and visualization, such as: tidyverse
, knitr
, ggplot2
, psych
, stats
, and etc.)
Second, clean the data. Check for missing values and exclude observations with missing values. If needed, conduct data manipulation. Clean and manipulate data so that I have a clean tidy data.
Third, conduct descriptive analyses. Before running the main statistical models, run some descriptive analysis and show the descriptives as needed.
Fourth, conduct main statistical analysis. Present the findings in a table.
Fifth, do some data visualization so that the readers can view the results easily.
Lastly, if needed, run some additional analysis. (Check for homoscedasticity, conduct robustness checks, more explaratory analysis, etc.)
library(qualtRics)
library(foreign)
library(ggplot2)
library(MASS)
library(Hmisc)
## Loading required package: lattice
## Loading required package: survival
## Loading required package: Formula
##
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:base':
##
## format.pval, units
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ tibble 3.1.5 ✓ dplyr 1.0.7
## ✓ tidyr 1.1.4 ✓ stringr 1.4.0
## ✓ readr 2.0.2 ✓ forcats 0.5.1
## ✓ purrr 0.3.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## x dplyr::select() masks MASS::select()
## x dplyr::src() masks Hmisc::src()
## x dplyr::summarize() masks Hmisc::summarize()
library(knitr)
library(gridExtra)
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
library(haven)
library(Rmisc)
## Loading required package: plyr
## ------------------------------------------------------------------------------
## You have loaded plyr after dplyr - this is likely to cause problems.
## If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
## library(plyr); library(dplyr)
## ------------------------------------------------------------------------------
##
## Attaching package: 'plyr'
## The following objects are masked from 'package:dplyr':
##
## arrange, count, desc, failwith, id, mutate, rename, summarise,
## summarize
## The following object is masked from 'package:purrr':
##
## compact
## The following objects are masked from 'package:Hmisc':
##
## is.discrete, summarize
library(purrr)
library(broom)
library(rstatix)
##
## Attaching package: 'rstatix'
## The following objects are masked from 'package:plyr':
##
## desc, mutate
## The following object is masked from 'package:MASS':
##
## select
## The following object is masked from 'package:stats':
##
## filter
library(ggpubr)
##
## Attaching package: 'ggpubr'
## The following object is masked from 'package:plyr':
##
## mutate
library(reshape2)
##
## Attaching package: 'reshape2'
## The following object is masked from 'package:tidyr':
##
## smiths
library(psych)
##
## Attaching package: 'psych'
## The following object is masked from 'package:Hmisc':
##
## describe
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
# load survey
#data_fin_raw <- fetch_survey(surveyID = "SV_82M7ojjd1rLcGPA", force_request = T)
# save data
#write_csv(data_fin_raw, "/Users/jbyun/Dropbox/2021 Fall/PSYCH 251/galperin2020/data/data_fin_raw.csv")
# load data from csv
data_fin_raw <- read_csv("/Users/jbyun/Dropbox/2021 Fall/PSYCH 251/galperin2020/data/data_fin_raw.csv")
## Warning: One or more parsing issues, see `problems()` for details
## Rows: 143 Columns: 78
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (41): Status, IPAddress, ResponseId, DistributionChannel, UserLanguage,...
## dbl (22): Progress, Duration (in seconds), LocationLatitude, LocationLongit...
## lgl (12): Finished, RecipientLastName, RecipientFirstName, RecipientEmail, ...
## dttm (3): StartDate, EndDate, RecordedDate
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data_raw <- data_fin_raw
# exclude participants who did not meet the eligibility requirement
# or those who might have been included by accident (i.e. myself) who did not go through Prolific
# 6 obs dropped
data <- data_raw %>%
filter(hiringexperience == "Yes") %>%
filter(!is.na(prolific_id))
describe(data)
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to min; returning Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## Warning in FUN(newX[, i], ...): no non-missing arguments to max; returning -Inf
## vars n mean sd median
## StartDate 1 137 NaN NA NA
## EndDate 2 137 NaN NA NA
## Status* 3 137 1.00 0.00 1.00
## IPAddress* 4 137 69.00 39.69 69.00
## Progress 5 137 100.00 0.00 100.00
## Duration (in seconds) 6 137 783.45 511.62 642.00
## Finished 7 137 NaN NA NA
## RecordedDate 8 137 NaN NA NA
## ResponseId* 9 137 69.00 39.69 69.00
## RecipientLastName 10 0 NaN NA NA
## RecipientFirstName 11 0 NaN NA NA
## RecipientEmail 12 0 NaN NA NA
## ExternalReference 13 0 NaN NA NA
## LocationLatitude 14 137 37.97 5.58 39.17
## LocationLongitude 15 137 -95.83 17.15 -90.85
## DistributionChannel* 16 137 1.00 0.00 1.00
## UserLanguage* 17 137 1.00 0.00 1.00
## consent* 18 137 1.00 0.00 1.00
## prolific_id* 19 137 69.00 39.69 69.00
## hiringexperience* 20 137 1.00 0.00 1.00
## companychk* 21 137 2.00 0.21 2.00
## candatchk* 22 137 2.16 0.39 2.00
## Location* 23 137 2.00 0.12 2.00
## interview* 24 137 3.12 1.92 4.00
## offer* 25 137 2.54 1.87 2.00
## opencncrn* 26 136 68.50 39.40 68.50
## openresolv* 27 134 66.75 38.50 66.50
## referral* 28 137 1.72 0.45 2.00
## competent* 29 137 2.17 1.37 1.00
## productive* 30 137 2.17 1.29 1.00
## skilled* 31 137 2.42 1.67 1.00
## finexp* 32 137 3.19 2.08 4.00
## committed* 33 137 2.39 1.40 2.00
## commit_ind* 34 137 3.78 1.86 4.00
## extrhrs* 35 137 2.47 1.37 3.00
## teamwork* 36 137 3.66 1.62 4.00
## stay* 37 137 3.15 1.51 3.00
## flightrsk* 38 137 3.09 1.90 3.00
## oe_qual* 39 137 69.00 39.69 69.00
## oe_comm* 40 137 69.00 39.69 69.00
## oe_interview* 41 136 68.50 39.40 68.50
## oe_offer* 42 136 68.50 39.40 68.50
## oe_referral* 43 135 68.00 39.12 68.00
## ethnicity* 44 136 2.88 0.37 3.00
## race_1* 45 126 1.00 0.00 1.00
## race_2* 46 5 1.00 0.00 1.00
## race_3* 47 8 1.00 0.00 1.00
## race_4* 48 5 1.00 0.00 1.00
## race_5* 49 3 1.00 0.00 1.00
## race_6 50 0 NaN NA NA
## race_7* 51 1 1.00 NA 1.00
## race_8 52 0 NaN NA NA
## race_8_TEXT 53 0 NaN NA NA
## gender* 54 137 1.25 0.45 1.00
## gender_5_TEXT 55 0 NaN NA NA
## Age 56 137 39.18 13.09 37.00
## educ* 57 135 3.53 2.02 2.00
## workexperience 58 137 18.71 11.35 17.00
## country* 59 137 10.06 3.43 12.00
## PROLIFIC_ID 60 0 NaN NA NA
## gc 61 0 NaN NA NA
## term 62 0 NaN NA NA
## Profile_DO_high_overqual_profil 63 68 1.00 0.00 1.00
## Profile_DO_low_overqual_profile 64 69 1.00 0.00 1.00
## CommitmentManipulation_DO_highcommitment_HR 65 73 1.00 0.00 1.00
## CommitmentManipulation_DO_neutralcommitment_HR 66 64 1.00 0.00 1.00
## Competence_DO_skilled 67 137 3.47 1.13 3.00
## Competence_DO_competent 68 137 3.45 1.10 3.00
## Competence_DO_introcomp 69 137 1.00 0.00 1.00
## Competence_DO_finexp 70 137 3.52 1.09 4.00
## Competence_DO_productive 71 137 3.56 1.16 4.00
## commitment_DO_teamwork 72 137 4.53 1.70 4.00
## commitment_DO_committed 73 137 4.66 1.66 5.00
## commitment_DO_intrcommt 74 137 1.00 0.00 1.00
## commitment_DO_extrhrs 75 137 4.30 1.65 4.00
## commitment_DO_stay 76 137 4.50 1.80 5.00
## commitment_DO_flightrsk 77 137 4.49 1.72 5.00
## commitment_DO_commit_ind 78 137 4.53 1.72 5.00
## trimmed mad min max
## StartDate NaN NA Inf -Inf
## EndDate NaN NA Inf -Inf
## Status* 1.00 0.00 1.00 1.00
## IPAddress* 69.00 50.41 1.00 137.00
## Progress 100.00 0.00 100.00 100.00
## Duration (in seconds) 685.05 309.86 202.00 2869.00
## Finished NaN NA Inf -Inf
## RecordedDate NaN NA Inf -Inf
## ResponseId* 69.00 50.41 1.00 137.00
## RecipientLastName NaN NA Inf -Inf
## RecipientFirstName NaN NA Inf -Inf
## RecipientEmail NaN NA Inf -Inf
## ExternalReference NaN NA Inf -Inf
## LocationLatitude 37.98 5.23 25.79 61.18
## LocationLongitude -95.02 19.55 -149.95 -71.12
## DistributionChannel* 1.00 0.00 1.00 1.00
## UserLanguage* 1.00 0.00 1.00 1.00
## consent* 1.00 0.00 1.00 1.00
## prolific_id* 69.00 50.41 1.00 137.00
## hiringexperience* 1.00 0.00 1.00 1.00
## companychk* 2.00 0.00 1.00 3.00
## candatchk* 2.09 0.00 1.00 3.00
## Location* 2.00 0.00 1.00 3.00
## interview* 3.14 1.48 1.00 6.00
## offer* 2.31 1.48 1.00 7.00
## opencncrn* 68.50 50.41 1.00 136.00
## openresolv* 66.69 49.67 1.00 133.00
## referral* 1.77 0.00 1.00 2.00
## competent* 2.09 0.00 1.00 4.00
## productive* 2.09 0.00 1.00 4.00
## skilled* 2.29 0.00 1.00 5.00
## finexp* 3.12 2.97 1.00 6.00
## committed* 2.30 1.48 1.00 6.00
## commit_ind* 3.80 1.48 1.00 7.00
## extrhrs* 2.26 1.48 1.00 6.00
## teamwork* 3.56 1.48 1.00 7.00
## stay* 3.03 1.48 1.00 7.00
## flightrsk* 3.00 2.97 1.00 6.00
## oe_qual* 69.00 50.41 1.00 137.00
## oe_comm* 69.00 50.41 1.00 137.00
## oe_interview* 68.50 50.41 1.00 136.00
## oe_offer* 68.50 50.41 1.00 136.00
## oe_referral* 68.00 50.41 1.00 135.00
## ethnicity* 2.99 0.00 1.00 3.00
## race_1* 1.00 0.00 1.00 1.00
## race_2* 1.00 0.00 1.00 1.00
## race_3* 1.00 0.00 1.00 1.00
## race_4* 1.00 0.00 1.00 1.00
## race_5* 1.00 0.00 1.00 1.00
## race_6 NaN NA Inf -Inf
## race_7* 1.00 0.00 1.00 1.00
## race_8 NaN NA Inf -Inf
## race_8_TEXT NaN NA Inf -Inf
## gender* 1.18 0.00 1.00 3.00
## gender_5_TEXT NaN NA Inf -Inf
## Age 37.98 13.34 19.00 79.00
## educ* 3.41 1.48 1.00 7.00
## workexperience 17.86 11.86 2.00 56.00
## country* 10.34 1.48 1.00 15.00
## PROLIFIC_ID NaN NA Inf -Inf
## gc NaN NA Inf -Inf
## term NaN NA Inf -Inf
## Profile_DO_high_overqual_profil 1.00 0.00 1.00 1.00
## Profile_DO_low_overqual_profile 1.00 0.00 1.00 1.00
## CommitmentManipulation_DO_highcommitment_HR 1.00 0.00 1.00 1.00
## CommitmentManipulation_DO_neutralcommitment_HR 1.00 0.00 1.00 1.00
## Competence_DO_skilled 3.46 1.48 2.00 5.00
## Competence_DO_competent 3.44 1.48 2.00 5.00
## Competence_DO_introcomp 1.00 0.00 1.00 1.00
## Competence_DO_finexp 3.52 1.48 2.00 5.00
## Competence_DO_productive 3.58 1.48 2.00 5.00
## commitment_DO_teamwork 4.53 1.48 2.00 7.00
## commitment_DO_committed 4.70 1.48 2.00 7.00
## commitment_DO_intrcommt 1.00 0.00 1.00 1.00
## commitment_DO_extrhrs 4.25 1.48 2.00 7.00
## commitment_DO_stay 4.50 2.97 2.00 7.00
## commitment_DO_flightrsk 4.49 2.97 2.00 7.00
## commitment_DO_commit_ind 4.53 1.48 2.00 7.00
## range skew kurtosis se
## StartDate -Inf NA NA NA
## EndDate -Inf NA NA NA
## Status* 0.00 NaN NaN 0.00
## IPAddress* 136.00 0.00 -1.23 3.39
## Progress 0.00 NaN NaN 0.00
## Duration (in seconds) 2667.00 1.98 4.05 43.71
## Finished -Inf NA NA NA
## RecordedDate -Inf NA NA NA
## ResponseId* 136.00 0.00 -1.23 3.39
## RecipientLastName -Inf NA NA NA
## RecipientFirstName -Inf NA NA NA
## RecipientEmail -Inf NA NA NA
## ExternalReference -Inf NA NA NA
## LocationLatitude 35.39 0.36 1.47 0.48
## LocationLongitude 78.83 -0.51 -0.74 1.47
## DistributionChannel* 0.00 NaN NaN 0.00
## UserLanguage* 0.00 NaN NaN 0.00
## consent* 0.00 NaN NaN 0.00
## prolific_id* 136.00 0.00 -1.23 3.39
## hiringexperience* 0.00 NaN NaN 0.00
## companychk* 2.00 0.00 19.50 0.02
## candatchk* 2.00 1.45 1.29 0.03
## Location* 2.00 0.00 64.50 0.01
## interview* 5.00 -0.09 -1.92 0.16
## offer* 6.00 0.93 -0.64 0.16
## opencncrn* 135.00 0.00 -1.23 3.38
## openresolv* 132.00 0.01 -1.23 3.33
## referral* 1.00 -0.98 -1.04 0.04
## competent* 3.00 0.43 -1.69 0.12
## productive* 3.00 0.39 -1.61 0.11
## skilled* 4.00 0.60 -1.33 0.14
## finexp* 5.00 0.15 -1.62 0.18
## committed* 5.00 0.37 -1.34 0.12
## commit_ind* 6.00 -0.38 -1.19 0.16
## extrhrs* 5.00 0.99 0.87 0.12
## teamwork* 6.00 0.26 -0.91 0.14
## stay* 6.00 0.62 0.02 0.13
## flightrsk* 5.00 0.49 -1.19 0.16
## oe_qual* 136.00 0.00 -1.23 3.39
## oe_comm* 136.00 0.00 -1.23 3.39
## oe_interview* 135.00 0.00 -1.23 3.38
## oe_offer* 135.00 0.00 -1.23 3.38
## oe_referral* 134.00 0.00 -1.23 3.37
## ethnicity* 2.00 -3.20 10.23 0.03
## race_1* 0.00 NaN NaN 0.00
## race_2* 0.00 NaN NaN 0.00
## race_3* 0.00 NaN NaN 0.00
## race_4* 0.00 NaN NaN 0.00
## race_5* 0.00 NaN NaN 0.00
## race_6 -Inf NA NA NA
## race_7* 0.00 NA NA NA
## race_8 -Inf NA NA NA
## race_8_TEXT -Inf NA NA NA
## gender* 2.00 1.39 0.56 0.04
## gender_5_TEXT -Inf NA NA NA
## Age 60.00 0.74 -0.14 1.12
## educ* 6.00 0.54 -1.15 0.17
## workexperience 54.00 0.65 -0.13 0.97
## country* 14.00 -0.62 -0.99 0.29
## PROLIFIC_ID -Inf NA NA NA
## gc -Inf NA NA NA
## term -Inf NA NA NA
## Profile_DO_high_overqual_profil 0.00 NaN NaN 0.00
## Profile_DO_low_overqual_profile 0.00 NaN NaN 0.00
## CommitmentManipulation_DO_highcommitment_HR 0.00 NaN NaN 0.00
## CommitmentManipulation_DO_neutralcommitment_HR 0.00 NaN NaN 0.00
## Competence_DO_skilled 3.00 0.02 -1.41 0.10
## Competence_DO_competent 3.00 0.09 -1.34 0.09
## Competence_DO_introcomp 0.00 NaN NaN 0.00
## Competence_DO_finexp 3.00 -0.06 -1.30 0.09
## Competence_DO_productive 3.00 -0.05 -1.47 0.10
## commitment_DO_teamwork 5.00 0.01 -1.26 0.15
## commitment_DO_committed 5.00 -0.08 -1.26 0.14
## commitment_DO_intrcommt 0.00 NaN NaN 0.00
## commitment_DO_extrhrs 5.00 0.12 -1.19 0.14
## commitment_DO_stay 5.00 -0.03 -1.45 0.15
## commitment_DO_flightrsk 5.00 0.03 -1.26 0.15
## commitment_DO_commit_ind 5.00 -0.05 -1.29 0.15
# add id column
data <- tibble::rowid_to_column(data, "id")
### Clean data (first step)
# select needed columns
data <- data %>%
dplyr::select(c('ResponseId', 'id', 'companychk', 'candatchk', 'Location', 'interview', 'offer', 'opencncrn', 'openresolv', 'referral', 'competent', 'productive', 'skilled', 'finexp', 'committed', 'commit_ind', 'extrhrs', 'teamwork', 'stay', 'flightrsk', 'oe_qual', 'oe_comm', 'oe_interview', 'oe_offer', 'oe_referral', 'ethnicity', 'race_1', 'race_2', 'race_3', 'race_4', 'race_5', 'race_6', 'race_7', 'race_8', 'race_8_TEXT', 'gender', 'Age', 'educ', 'workexperience', 'Profile_DO_high_overqual_profil', 'Profile_DO_low_overqual_profile', 'CommitmentManipulation_DO_highcommitment_HR', 'CommitmentManipulation_DO_neutralcommitment_HR'))
# data manipulation - scores
# likelihood of getting an interview (score)
data <- data %>%
mutate(interview_score = ifelse(interview == "Very Unlikely", 1,
ifelse(interview == "Unlikely", 2,
ifelse(interview == "Somewhat Unlikely", 3,
ifelse(interview == "Undecided", 4,
ifelse(interview == "Somewhat Likely", 5,
ifelse(interview == "Likely", 6,
ifelse(interview == "Very Likely", 7, NA))))))))
# likelihood of getting an offer (score)
data <- data %>%
mutate(offer_score = ifelse(offer == "Very Unlikely", 1,
ifelse(offer == "Unlikely", 2,
ifelse(offer == "Somewhat Unlikely", 3,
ifelse(offer == "Undecided", 4,
ifelse(offer == "Somewhat Likely", 5,
ifelse(offer == "Likely", 6,
ifelse(offer == "Very Likely", 7, NA))))))))
# referral or not
data <- data %>%
mutate(refer = ifelse(referral == "Yes", 1, 0)) %>%
mutate(refer = as.factor(refer))
### Manipulation checks
# competent
data <- data %>%
mutate(competent_score = ifelse(competent == "Strongly disagree", 1,
ifelse(competent == "Disagree", 2,
ifelse(competent == "Somewhat disagree", 3,
ifelse(competent == "Neither agree nor disagree", 4,
ifelse(competent == "Somewhat agree", 5,
ifelse(competent == "Agree", 6,
ifelse(competent == "Strongly agree", 7, NA))))))))
# productive
data <- data %>%
mutate(productive_score = ifelse(productive == "Strongly disagree", 1,
ifelse(productive == "Disagree", 2,
ifelse(productive == "Somewhat disagree", 3,
ifelse(productive == "Neither agree nor disagree", 4,
ifelse(productive == "Somewhat agree", 5,
ifelse(productive == "Agree", 6,
ifelse(productive == "Strongly agree", 7, NA))))))))
# skilled
data <- data %>%
mutate(skilled_score = ifelse(skilled == "Strongly disagree", 1,
ifelse(skilled == "Disagree", 2,
ifelse(skilled == "Somewhat disagree", 3,
ifelse(skilled == "Neither agree nor disagree", 4,
ifelse(skilled == "Somewhat agree", 5,
ifelse(skilled == "Agree", 6,
ifelse(skilled == "Strongly agree", 7, NA))))))))
# finexp
data <- data %>%
mutate(finexp_score = ifelse(finexp == "Strongly disagree", 1,
ifelse(finexp == "Disagree", 2,
ifelse(finexp == "Somewhat disagree", 3,
ifelse(finexp == "Neither agree nor disagree", 4,
ifelse(finexp == "Somewhat agree", 5,
ifelse(finexp == "Agree", 6,
ifelse(finexp == "Strongly agree", 7, NA))))))))
# committed
data <- data %>%
mutate(commit_score = ifelse(committed == "Highly uncommitted", 1,
ifelse(committed == "Uncommitted", 2,
ifelse(committed == "Somewhat uncommitted", 3,
ifelse(committed == "Neither committed nor uncommitted", 4,
ifelse(committed == "Somewhat committed", 5,
ifelse(committed == "Committed", 6,
ifelse(committed == "Highly committed", 7, NA))))))))
# commit_ind
data <- data %>%
mutate(commit_ind_score = ifelse(commit_ind == "Highly uncommitted", 1,
ifelse(commit_ind == "Uncommitted", 2,
ifelse(commit_ind == "Somewhat uncommitted", 3,
ifelse(commit_ind == "Neither committed nor uncommitted", 4,
ifelse(commit_ind == "Somewhat committed", 5,
ifelse(commit_ind == "Committed", 6,
ifelse(commit_ind == "Highly committed", 7, NA))))))))
# extra hours score
data <- data %>%
mutate(extrhrs_score = ifelse(extrhrs == "Very unlikely", 1,
ifelse(extrhrs == "Unlikely", 2,
ifelse(extrhrs == "Somewhat unlikely", 3,
ifelse(extrhrs == "Neither likely nor unlikely", 4,
ifelse(extrhrs == "Somewhat likely", 5,
ifelse(extrhrs == "Likely", 6,
ifelse(extrhrs == "Very likely", 7, NA))))))))
# teamwork score
data <- data %>%
mutate(teamwork_score = ifelse(teamwork == "Very Unlikely", 1,
ifelse(teamwork == "Unlikely", 2,
ifelse(teamwork == "Somewhat unlikely", 3,
ifelse(teamwork == "Neither likely nor unlikely", 4,
ifelse(teamwork == "Somewhat likely", 5,
ifelse(teamwork == "Likely", 6,
ifelse(teamwork == "Very likely", 7, NA))))))))
# likelihood of staying score
data <- data %>%
mutate(stay_score = ifelse(stay == "Less than 1 year", 1,
ifelse(stay == "1-2 years", 2,
ifelse(stay == "2-3 years", 3,
ifelse(stay == "3-4 years", 4,
ifelse(stay == "4-5 years", 5,
ifelse(stay == "5-6 years", 6,
ifelse(stay == "Greater than 6 years", 7, NA))))))))
# flight risk score (flightrsk)
data <- data %>%
mutate(flight_score = ifelse(flightrsk == "Very unlikely", 1,
ifelse(flightrsk == "Unlikely", 2,
ifelse(flightrsk == "Somewhat unlikely", 3,
ifelse(flightrsk == "Neither likely nor unlikely", 4,
ifelse(flightrsk == "Somewhat likely", 5,
ifelse(flightrsk == "Likely", 6,
ifelse(flightrsk == "Very likely", 7, NA))))))))
### Data cleaning continuted - demographic information
#summary(as.factor(data$race_1))
#summary(as.factor(data$race_2))
#summary(as.factor(data$race_3))
#summary(as.factor(data$race_4))
#summary(as.factor(data$race_5))
##summary(as.factor(data$race_6))
#summary(as.factor(data$race_7))
##summary(as.factor(data$race_8))
##summary(as.factor(data$race_8_TEXT))
# ethnicity
data <- data %>%
mutate(ethnic_hispanic = ifelse(is.na(ethnicity), 0, ifelse(ethnicity == "Hispanic", 1, 0)))
# race
data <- data %>%
mutate(White = ifelse(!is.na(race_1), 1, 0)) %>%
mutate(Black = ifelse(!is.na(race_2), 1, 0)) %>%
mutate(Hispanic = ifelse(!is.na(race_3), 1, 0)) %>%
mutate(Asian = ifelse(!is.na(race_4), 1, 0)) %>%
mutate(Native = ifelse(!is.na(race_5), 1, 0)) %>%
mutate(Decline = ifelse(!is.na(race_7), 1, 0))
# variables with no obs dropped (race_6, race_8, race_8_TEXT)
# create multiple race variable
data <- data %>%
mutate(Race_sum = White + Black + Hispanic + Asian + Native + Decline)
data <- data %>%
mutate(Race_multi = ifelse(Race_sum > 1, 1, 0))
# create one race variable (factor)
data <- data %>%
mutate(race = ifelse(Race_multi == 1, "Multirace",
ifelse(White == 1, "White",
ifelse(Black == 1, "Black",
ifelse(Hispanic == 1, "Hispanic",
ifelse(Asian == 1, "Asian",
ifelse(Native == 1, "Native",
ifelse(Decline == 1, "Decline", NA)))))))) %>%
mutate(race = as.factor(race))
# gender
data <- data %>%
mutate(gender = as.factor(gender))
# education
data <- data %>%
mutate(educ = as.factor(educ))
#summary(data$educ)
# add education level (ordinal variable)
# educ_ordinal
data <- data %>%
mutate(educ_ordinal = ifelse(educ == "Less than High School", 1,
ifelse(educ == "High School / GED", 2,
ifelse(educ == "Some College", 3,
ifelse(educ == "2-year College Degree", 4,
ifelse(educ == "4-year College Degree", 5,
ifelse(educ == "Masters Degree", 6,
ifelse(educ == "Doctoral Degree", 7,
ifelse(educ == "Professional Degree (JD, MD)", 8, NA)))))))))
# Treatment conditions
# Overqual condition (Capability)
data <- data %>%
mutate(Overqual = ifelse(is.na(Profile_DO_high_overqual_profil), "Low", "High")) %>%
mutate(Overqual = as.factor(Overqual))
data <- data %>%
mutate(Commitment = ifelse(is.na(CommitmentManipulation_DO_highcommitment_HR), "Neutral", "High")) %>%
mutate(Commitment = as.factor(Commitment))
# Before selecting out variables, let's save this version as a csv file
#write.csv(data, "/Users/jbyun/Dropbox/2021 Fall/PSYCH 251/galperin2020/data/data_fin_wrangled.csv", row.names = F)
# clean data (select needed columns only - exclude open-ended questions as well)
data_clean <- data %>%
dplyr::select(c('id', 'Commitment', 'Overqual', 'offer_score', 'interview_score', 'refer', 'competent_score', 'productive_score', 'skilled_score', 'finexp_score', 'commit_score', 'commit_ind_score', 'extrhrs_score', 'teamwork_score', 'stay_score', 'flight_score', 'gender', 'Age', 'ethnic_hispanic', 'race', 'educ_ordinal', 'workexperience', 'White', 'Black', 'Hispanic', 'Asian', 'Native', 'Decline', 'educ'))
data_clean <- data_clean %>%
mutate(Commitment = factor(Commitment, levels = c("Neutral", "High"), labels = c("Neutral", "High"))) %>%
mutate(Overqual = factor(Overqual, levels = c("Low", "High"), labels = c("Low", "High")))
# save the clean data
#write.csv(data_clean, "/Users/jbyun/Dropbox/2021 Fall/PSYCH 251/galperin2020/data/data_fin_clean.csv", row.names = F)
# Data with neutral commitment condition (for t-test)
data_neutral_commit <- data_clean %>%
filter(Commitment == "Neutral")
# Data with high commitment condition (fot t-test)
data_high_commit <- data_clean %>%
filter(Commitment == "High")
# Check number of participants in each condition
kable(table(data$Overqual, data$Commitment), caption = "Number of participants in each condition")
High | Neutral | |
---|---|---|
High | 37 | 31 |
Low | 36 | 33 |
kable(describe(data_clean), caption = "Overall Descriptive Statistics")
vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | 1 | 137 | 69.0000000 | 39.6925686 | 69 | 69.000000 | 50.4084 | 1 | 137 | 136 | 0.0000000 | -1.2263075 | 3.3911650 |
Commitment* | 2 | 137 | 1.5328467 | 0.5007508 | 2 | 1.540541 | 0.0000 | 1 | 2 | 1 | -0.1302323 | -1.9974601 | 0.0427820 |
Overqual* | 3 | 137 | 1.4963504 | 0.5018215 | 1 | 1.495496 | 0.0000 | 1 | 2 | 1 | 0.0144394 | -2.0143352 | 0.0428735 |
offer_score | 4 | 137 | 5.5255474 | 1.1119689 | 6 | 5.612613 | 1.4826 | 1 | 7 | 6 | -1.0034573 | 1.4793318 | 0.0950019 |
interview_score | 5 | 137 | 6.2554745 | 0.9854023 | 6 | 6.441441 | 1.4826 | 1 | 7 | 6 | -2.1702834 | 6.6260062 | 0.0841886 |
refer* | 6 | 137 | 1.7226277 | 0.4493447 | 2 | 1.774775 | 0.0000 | 1 | 2 | 1 | -0.9836667 | -1.0398305 | 0.0383901 |
competent_score | 7 | 137 | 6.1240876 | 0.7712219 | 6 | 6.216216 | 0.0000 | 4 | 7 | 3 | -0.8811495 | 0.8579431 | 0.0658899 |
productive_score | 8 | 137 | 5.9270073 | 0.8457075 | 6 | 6.000000 | 0.0000 | 4 | 7 | 3 | -0.5870463 | -0.1364169 | 0.0722537 |
skilled_score | 9 | 137 | 5.9562044 | 0.8213029 | 6 | 6.018018 | 0.0000 | 3 | 7 | 4 | -0.7106299 | 0.6174569 | 0.0701686 |
finexp_score | 10 | 137 | 5.8613139 | 0.9329151 | 6 | 5.927928 | 1.4826 | 2 | 7 | 5 | -0.9114626 | 1.6547759 | 0.0797043 |
commit_score | 11 | 137 | 5.4306569 | 1.0346612 | 6 | 5.477477 | 1.4826 | 2 | 7 | 5 | -0.6460966 | 0.1665554 | 0.0883971 |
commit_ind_score | 12 | 137 | 4.8321168 | 1.3148996 | 5 | 4.882883 | 1.4826 | 1 | 7 | 6 | -0.5006282 | 0.0434987 | 0.1123395 |
extrhrs_score | 13 | 137 | 5.2408759 | 0.9356151 | 5 | 5.252252 | 1.4826 | 2 | 7 | 5 | -0.4362044 | 0.8888275 | 0.0799350 |
teamwork_score | 14 | 137 | 3.3357664 | 1.3894422 | 3 | 3.252252 | 1.4826 | 1 | 7 | 6 | 0.4689766 | -0.0638776 | 0.1187081 |
stay_score | 15 | 137 | 3.8978102 | 1.4311897 | 4 | 3.846847 | 1.4826 | 1 | 7 | 6 | 0.1781473 | -0.3211508 | 0.1222748 |
flight_score | 16 | 137 | 5.5328467 | 1.1760546 | 6 | 5.612613 | 1.4826 | 2 | 7 | 5 | -0.4685564 | -0.4432663 | 0.1004771 |
gender* | 17 | 137 | 1.2481752 | 0.4501801 | 1 | 1.180180 | 0.0000 | 1 | 3 | 2 | 1.3909193 | 0.5608722 | 0.0384615 |
Age | 18 | 137 | 39.1824818 | 13.0863754 | 37 | 37.981982 | 13.3434 | 19 | 79 | 60 | 0.7396705 | -0.1447146 | 1.1180445 |
ethnic_hispanic | 19 | 137 | 0.0875912 | 0.2837369 | 0 | 0.000000 | 0.0000 | 0 | 1 | 1 | 2.8857608 | 6.3743024 | 0.0242413 |
race* | 20 | 137 | 5.6788321 | 0.9388221 | 6 | 5.927928 | 0.0000 | 1 | 6 | 5 | -3.5634947 | 13.1931028 | 0.0802090 |
educ_ordinal | 21 | 135 | 4.5259259 | 1.2976996 | 5 | 4.623853 | 1.4826 | 2 | 8 | 6 | -0.4836182 | -0.4968797 | 0.1116882 |
workexperience | 22 | 137 | 18.7080292 | 11.3507972 | 17 | 17.855856 | 11.8608 | 2 | 56 | 54 | 0.6482872 | -0.1341063 | 0.9697640 |
White | 23 | 137 | 0.9197080 | 0.2727419 | 1 | 1.000000 | 0.0000 | 0 | 1 | 1 | -3.0552288 | 7.3885131 | 0.0233019 |
Black | 24 | 137 | 0.0364964 | 0.1882098 | 0 | 0.000000 | 0.0000 | 0 | 1 | 1 | 4.8894416 | 22.0678782 | 0.0160798 |
Hispanic | 25 | 137 | 0.0583942 | 0.2353478 | 0 | 0.000000 | 0.0000 | 0 | 1 | 1 | 3.7254011 | 11.9661164 | 0.0201071 |
Asian | 26 | 137 | 0.0364964 | 0.1882098 | 0 | 0.000000 | 0.0000 | 0 | 1 | 1 | 4.8894416 | 22.0678782 | 0.0160798 |
Native | 27 | 137 | 0.0218978 | 0.1468870 | 0 | 0.000000 | 0.0000 | 0 | 1 | 1 | 6.4622801 | 40.0535860 | 0.0125494 |
Decline | 28 | 137 | 0.0072993 | 0.0854358 | 0 | 0.000000 | 0.0000 | 0 | 1 | 1 | 11.4496399 | 130.0436358 | 0.0072993 |
educ* | 29 | 135 | 3.5333333 | 2.0215259 | 2 | 3.412844 | 1.4826 | 1 | 7 | 6 | 0.5410094 | -1.1542112 | 0.1739853 |
kable(table(data_clean$gender, data_clean$race), caption = "Participant Race and Gender")
Asian | Black | Decline | Hispanic | Multirace | White | |
---|---|---|---|---|---|---|
Female | 3 | 1 | 0 | 5 | 7 | 88 |
Male | 0 | 0 | 1 | 1 | 3 | 27 |
Non-binary / Third Gender | 0 | 0 | 0 | 0 | 0 | 1 |
kable(table(data_clean$educ), caption = "Participant Education Level")
Var1 | Freq |
---|---|
2-year College Degree | 12 |
4-year College Degree | 60 |
Doctoral Degree | 1 |
High School / GED | 13 |
Masters Degree | 26 |
Professional Degree (JD, MD) | 1 |
Some College | 22 |
desc_tab <- data_clean %>%
dplyr::group_by(Commitment, Overqual) %>%
dplyr::summarise(Age = mean(Age, na.rm = T),
WorkExperience = mean(workexperience, na.rm = T),
Offer = mean(offer_score),
Interview = mean(interview_score),
Educ_level = mean(educ_ordinal, na.rm = T))
## `summarise()` has grouped output by 'Commitment'. You can override using the `.groups` argument.
kable(desc_tab, caption = "Key Descriptive Statistics for Each Condition")
Commitment | Overqual | Age | WorkExperience | Offer | Interview | Educ_level |
---|---|---|---|---|---|---|
Neutral | Low | 41.09091 | 20.36364 | 5.242424 | 6.030303 | 4.545454 |
Neutral | High | 36.77419 | 17.06452 | 5.645161 | 6.548387 | 4.387097 |
High | Low | 39.83333 | 19.58333 | 5.555556 | 6.138889 | 4.485714 |
High | High | 38.86486 | 17.75676 | 5.648649 | 6.324324 | 4.666667 |
summ_mean_sd <- data_clean %>%
group_by(Commitment, Overqual) %>%
get_summary_stats(offer_score, type = "mean_sd")
kable(summ_mean_sd, caption = "Mean and s.d. of Likelihood of Offer across All Conditions")
Commitment | Overqual | variable | n | mean | sd |
---|---|---|---|---|---|
Neutral | Low | offer_score | 33 | 5.242 | 1.173 |
Neutral | High | offer_score | 31 | 5.645 | 0.985 |
High | Low | offer_score | 36 | 5.556 | 1.340 |
High | High | offer_score | 37 | 5.649 | 0.889 |
ggplot(data = data_clean, aes(x = Age)) +
geom_histogram(aes(y = ..density..)) +
geom_density(col = "blue") +
facet_grid(Overqual ~ Commitment) +
theme_classic() +
ylab("Density") +
ggtitle("Histogram of participant age in each condition")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
ggplot(data = data_clean, aes(x = workexperience)) +
geom_histogram(aes(y = ..density..)) +
geom_density(col = "blue") +
facet_grid(Overqual ~ Commitment) +
theme_classic() +
ylab("Density") +
xlab("Work Experience (in years)") +
ggtitle("Histogram of participant work experience in each condition")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
ggplot(data = data_clean, aes(x = offer_score)) +
geom_histogram(aes(y = ..density..)) +
geom_density(col = "blue") +
theme_classic() +
facet_wrap(~ Commitment) +
ylab("Density") +
xlab("Likelihood of Offer") +
ggtitle("Likelihood of getting an offer in each commitment condition")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
plot_box <- ggboxplot(
data = data_clean, x = "Overqual", y = "offer_score",
color = "Commitment", palette = "jco"
)
plot_box
commit_labels <- c("Neutral Commitment", "High Commitment")
names(commit_labels) <- c("Neutral", "High")
ggplot(data = data_clean, aes(x = Overqual, y = offer_score, group = Overqual, fill = Overqual)) +
geom_boxplot(alpha = 0.6) +
geom_jitter(width = 0.1, alpha = 0.6) +
guides(fill = "none") +
scale_y_continuous(breaks = 1:7, limits = c(1, 7)) +
theme(legend.position = c(0.9, 0.15),
legend.direction = "vertical",
legend.background = element_rect(fill = "transparent"),
legend.title = element_blank(),
axis.line = element_line(),
panel.grid = element_blank(),
panel.background = element_blank(),
plot.title = element_text(hjust = 0.5)) +
facet_wrap(~Commitment, labeller = labeller(Commitment = commit_labels)) +
ggtitle("Final Results (N = 137)") +
labs(x = "Capability", y = "Likelihood of an Offer")
## Warning: Removed 11 rows containing missing values (geom_point).
ggsave("/Users/jbyun/Dropbox/2021 Fall/PSYCH 251/galperin2020/data/final_data_boxplot.png")
## Saving 7 x 5 in image
## Warning: Removed 13 rows containing missing values (geom_point).
# Capability manipulation check (Overqual)
require(dplyr)
require(psych)
capa_check <- data_clean %>%
dplyr::select(c('competent_score', 'productive_score', 'skilled_score', 'finexp_score'))
alpha(capa_check)
##
## Reliability analysis
## Call: alpha(x = capa_check)
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.82 0.83 0.79 0.54 4.7 0.026 6 0.68 0.55
##
## lower alpha upper 95% confidence boundaries
## 0.77 0.82 0.87
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r
## competent_score 0.75 0.75 0.68 0.50 3.0 0.038 0.01021
## productive_score 0.77 0.78 0.71 0.54 3.5 0.034 0.00910
## skilled_score 0.74 0.75 0.68 0.50 3.0 0.039 0.01493
## finexp_score 0.83 0.83 0.77 0.63 5.0 0.025 0.00063
## med.r
## competent_score 0.51
## productive_score 0.51
## skilled_score 0.46
## finexp_score 0.63
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## competent_score 137 0.83 0.85 0.79 0.71 6.1 0.77
## productive_score 137 0.81 0.81 0.73 0.64 5.9 0.85
## skilled_score 137 0.85 0.85 0.79 0.71 6.0 0.82
## finexp_score 137 0.75 0.73 0.58 0.53 5.9 0.93
##
## Non missing response frequency for each item
## 2 3 4 5 6 7 miss
## competent_score 0.00 0.00 0.05 0.09 0.55 0.31 0
## productive_score 0.00 0.00 0.07 0.18 0.50 0.25 0
## skilled_score 0.00 0.01 0.04 0.18 0.52 0.25 0
## finexp_score 0.01 0.01 0.03 0.26 0.43 0.26 0
# run t-test to examine if perceived capabilities are different across conditions
capa_check_t <- data_clean %>%
dplyr::select(c('Overqual', 'competent_score', 'productive_score', 'skilled_score', 'finexp_score'))
capa_check_t$mean_capa <- rowMeans(capa_check_t[2:5], na.rm = T)
capa_test <- t.test(mean_capa ~ Overqual, data = capa_check_t, paired = F, var.equal = T)
capa_test
##
## Two Sample t-test
##
## data: mean_capa by Overqual
## t = -1.9622, df = 135, p-value = 0.0518
## alternative hypothesis: true difference in means between group Low and group High is not equal to 0
## 95 percent confidence interval:
## -0.453402594 0.001782815
## sample estimates:
## mean in group Low mean in group High
## 5.855072 6.080882
require(broom)
tidy(t.test(data = capa_check_t, mean_capa ~ Overqual, paired = F, var.equal = T))
## # A tibble: 1 × 10
## estimate estimate1 estimate2 statistic p.value parameter conf.low conf.high
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 -0.226 5.86 6.08 -1.96 0.0518 135 -0.453 0.00178
## # … with 2 more variables: method <chr>, alternative <chr>
# Commitment manipulation check (Commitment)
commit_check <- data_clean %>%
dplyr::select(c('commit_score', 'commit_ind_score', 'stay_score', 'extrhrs_score'))
alpha(commit_check)
##
## Reliability analysis
## Call: alpha(x = commit_check)
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.74 0.74 0.71 0.42 2.9 0.034 4.9 0.9 0.42
##
## lower alpha upper 95% confidence boundaries
## 0.68 0.74 0.81
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r
## commit_score 0.63 0.63 0.55 0.36 1.7 0.051 0.0177
## commit_ind_score 0.60 0.61 0.54 0.34 1.6 0.055 0.0204
## stay_score 0.70 0.69 0.64 0.43 2.2 0.042 0.0389
## extrhrs_score 0.77 0.79 0.72 0.55 3.7 0.033 0.0074
## med.r
## commit_score 0.34
## commit_ind_score 0.29
## stay_score 0.34
## extrhrs_score 0.51
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## commit_score 137 0.80 0.81 0.75 0.65 5.4 1.03
## commit_ind_score 137 0.84 0.83 0.78 0.66 4.8 1.31
## stay_score 137 0.79 0.75 0.61 0.54 3.9 1.43
## extrhrs_score 137 0.56 0.62 0.39 0.34 5.2 0.94
##
## Non missing response frequency for each item
## 1 2 3 4 5 6 7 miss
## commit_score 0.00 0.01 0.04 0.14 0.27 0.43 0.12 0
## commit_ind_score 0.01 0.04 0.10 0.20 0.34 0.23 0.09 0
## stay_score 0.04 0.14 0.21 0.28 0.22 0.05 0.06 0
## extrhrs_score 0.00 0.01 0.01 0.16 0.43 0.31 0.07 0
# run t-test to examine if perceived commitments are different across conditions
commit_check_t <- data_clean %>%
dplyr::select(c('Commitment', 'commit_score', 'commit_ind_score', 'stay_score', 'extrhrs_score'))
commit_check_t$mean_commit <- rowMeans(capa_check_t[2:5], na.rm = T)
commit_test <- t.test(mean_commit ~ Commitment, data = commit_check_t, paired = F, var.equal = T)
commit_test
##
## Two Sample t-test
##
## data: mean_commit by Commitment
## t = -1.2349, df = 135, p-value = 0.219
## alternative hypothesis: true difference in means between group Neutral and group High is not equal to 0
## 95 percent confidence interval:
## -0.37363503 0.08639188
## sample estimates:
## mean in group Neutral mean in group High
## 5.890625 6.034247
require(broom)
tidy(t.test(mean_commit ~ Commitment, data = commit_check_t, paired = F, var.equal = T))
## # A tibble: 1 × 10
## estimate estimate1 estimate2 statistic p.value parameter conf.low conf.high
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 -0.144 5.89 6.03 -1.23 0.219 135 -0.374 0.0864
## # … with 2 more variables: method <chr>, alternative <chr>
I precisely followed the original work’s manipulation check procedure. I combined the four measures used in the original work to create a measure for candidate’s perceived capability. (Cronbach’s alpha = 0.81) While the overall Cronbach’s alpha value showed the consistency among the four measures was good, the participants randomly assigned to the extremely high-capability conditions did not rate the candidate higher in perceived capability than those assigned to the moderately high-capability condition. The t-test results were significant only at alpha = 0.1 level. (t = -1.96, d.f. = 135, p-value = 0.0518) I combined four commitment measures used in the original work to create a perceived organizational commitment score. (Cronbach’s alpha = 0.74) The overall Cronbach’s alpha value fell under acceptable range. However, the commitment manipulation did not seem to be effective for the participants in this study. Participants randomly assigned to the high-commitment conditions did not rate the candidate higher in commitment than those assinged to the neutral-commitment conditions. (t = -1.23, d.f. = 135, p-value = 0.219) The fact that manipulations were not effective (especially commitment conditions) to the participants in this replication study may suggest that the sample used for this study was substantially different than the original study’s sample. The original work’s manipulations were very effective. (All manipulation checks were significant with p < 0.001).
I ran two t-tests: one for neutral commitment condition, the other for high commitment condition. The choice of key statistical model is determined by the original work, as the original paper ran two t-tests.
t.test(offer_score ~ Overqual, data = data_neutral_commit, paired = F, var.equal = T)
##
## Two Sample t-test
##
## data: offer_score by Overqual
## t = -1.4823, df = 62, p-value = 0.1433
## alternative hypothesis: true difference in means between group Low and group High is not equal to 0
## 95 percent confidence interval:
## -0.9458523 0.1403782
## sample estimates:
## mean in group Low mean in group High
## 5.242424 5.645161
require(broom)
tidy(t.test(data = data_neutral_commit, offer_score ~ Overqual, paired = F, var.equal = T))
## # A tibble: 1 × 10
## estimate estimate1 estimate2 statistic p.value parameter conf.low conf.high
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 -0.403 5.24 5.65 -1.48 0.143 62 -0.946 0.140
## # … with 2 more variables: method <chr>, alternative <chr>
I found no statistically significant results from the first t-test (neutral-commitment condition). While the mean value of likelihood of getting an offer for the Extremely-high capability condition (mean = 5.65) was greater than that for the Moderately-high contition (mean = 5.24), the t-test results were not significant. (t = -1.48, df = 62, p-value = 0.14)
t.test(offer_score ~ Overqual, data = data_high_commit, paired = F, var.equal = T)
##
## Two Sample t-test
##
## data: offer_score by Overqual
## t = -0.35063, df = 71, p-value = 0.7269
## alternative hypothesis: true difference in means between group Low and group High is not equal to 0
## 95 percent confidence interval:
## -0.6224871 0.4363010
## sample estimates:
## mean in group Low mean in group High
## 5.555556 5.648649
require(broom)
tidy(t.test(data = data_high_commit, offer_score ~ Overqual, paired = F, var.equal = T))
## # A tibble: 1 × 10
## estimate estimate1 estimate2 statistic p.value parameter conf.low conf.high
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 -0.0931 5.56 5.65 -0.351 0.727 71 -0.622 0.436
## # … with 2 more variables: method <chr>, alternative <chr>
I found no statistically significant results from the second t-test (high-commitment condition). While the mean value of likelihood of getting an offer for the Extremely-high capability condition (mean = 5.65) was greater than that for the Moderately-high contition (mean = 5.56), the t-test results were not significant. (t = -0.35, df = 71, p-value = 0.73)
summ_mean_sd
## # A tibble: 4 × 6
## Commitment Overqual variable n mean sd
## <fct> <fct> <chr> <dbl> <dbl> <dbl>
## 1 Neutral Low offer_score 33 5.24 1.17
## 2 Neutral High offer_score 31 5.64 0.985
## 3 High Low offer_score 36 5.56 1.34
## 4 High High offer_score 37 5.65 0.889
png("test.png")
p <- tableGrob(summ_mean_sd)
grid.arrange(p)
dev.off
## function (which = dev.cur())
## {
## if (which == 1)
## stop("cannot shut down device 1 (the null device)")
## .External(C_devoff, as.integer(which))
## dev.cur()
## }
## <bytecode: 0x7fe417f7b9b8>
## <environment: namespace:grDevices>
ggplot(data = summ_mean_sd, aes(x = Commitment, y = mean,
ymin = mean - sqrt(sd), ymax = mean + sqrt(sd), fill = Overqual)) +
geom_bar(stat = "identity", position = position_dodge()) +
geom_errorbar(position=position_dodge(0.9), width = .2) +
scale_y_continuous(breaks = 1:7) +
theme(legend.direction = "vertical",
legend.position = "right",
axis.line = element_line(),
panel.grid.major.x = element_blank(),
panel.grid.major.y = element_line(color = "grey", size = 0.15),
panel.background = element_blank(),
plot.title = element_text(hjust = 0.5)) +
labs(x = "Commitment", y = "Likelihood of Offer", fill = "Capability") +
ggtitle("Capability x Commitment: Likelihood of Offer across all Four Conditions")
ggsave("/Users/jbyun/Dropbox/2021 Fall/PSYCH 251/galperin2020/data/final_bargraph.png")
## Saving 7 x 5 in image
For reference, the original work’s corresponding figure:
# Check normality assumption (QQ plot)
#ggqqplot(data_clean, "offer_score", ggtheme = theme_bw()) +
# facet_grid(Overqual ~ Commitment)
result_aov <- data_clean %>% anova_test(offer_score ~ Overqual*Commitment)
## Coefficient covariances computed by hccm()
result_aov
## ANOVA Table (type II tests)
##
## Effect DFn DFd F p p<.05 ges
## 1 Overqual 1 133 1.564 0.213 0.012
## 2 Commitment 1 133 0.705 0.403 0.005
## 3 Overqual:Commitment 1 133 0.661 0.418 0.005
The two-way ANOVA results show that there was no statitically significant interaction between Capability and Commitment condition for the likelihood of getting an offer.
Since the results of t-tests and two-way ANOVA were not statistically significant, I examined the possibility of other factors, such as work experience and age, interfering with the results.
ggscatter(
data = data_clean, x = "workexperience", y = "offer_score",
facet.by = c("Commitment", "Overqual"),
short.panel.labs = F,
xlab = c("Work Experience (in years)"),
ylab = c("Likelihood of Offer"),
) +
stat_smooth(method = "loess", span = 0.9)
## `geom_smooth()` using formula 'y ~ x'
This assumption checks that there is not significant interaction betwen the covariate and the grouping variables.
data_clean %>%
anova_test(
offer_score ~ workexperience + Overqual + Commitment + Overqual*Commitment + workexperience*Overqual + workexperience*Commitment + workexperience*Commitment*Overqual
)
## Coefficient covariances computed by hccm()
## ANOVA Table (type II tests)
##
## Effect DFn DFd F p p<.05 ges
## 1 workexperience 1 129 5.647 0.019 * 0.042
## 2 Overqual 1 129 1.022 0.314 0.008
## 3 Commitment 1 129 0.679 0.412 0.005
## 4 Overqual:Commitment 1 129 0.720 0.398 0.006
## 5 workexperience:Overqual 1 129 0.814 0.369 0.006
## 6 workexperience:Commitment 1 129 0.806 0.371 0.006
## 7 workexperience:Overqual:Commitment 1 129 2.002 0.160 0.015
I already know that there is no statistically significant interaction effect between Capability (Overqual) and Commitment. However, just as a sanity check, I ran another ANOVA to show that there is no significant interaction between Capability (Overqual) and Commitment here.
work_aov <- data_clean %>%
anova_test(offer_score ~ workexperience + Overqual*Commitment)
## Coefficient covariances computed by hccm()
get_anova_table(work_aov)
## ANOVA Table (type II tests)
##
## Effect DFn DFd F p p<.05 ges
## 1 workexperience 1 132 5.629 0.019 * 0.041
## 2 Overqual 1 132 0.995 0.320 0.007
## 3 Commitment 1 132 0.720 0.398 0.005
## 4 Overqual:Commitment 1 132 0.561 0.455 0.004
There was no statistically significant interaction between Capability and Commitment on the likelihood of getting an offer after controlling for participant’s work experience (in years).
age_aov <- data_clean %>%
anova_test(offer_score ~ Age + Overqual*Commitment)
## Coefficient covariances computed by hccm()
get_anova_table(age_aov)
## ANOVA Table (type II tests)
##
## Effect DFn DFd F p p<.05 ges
## 1 Age 1 132 4.492 0.036 * 0.033
## 2 Overqual 1 132 1.103 0.295 0.008
## 3 Commitment 1 132 0.781 0.379 0.006
## 4 Overqual:Commitment 1 132 0.470 0.494 0.004
After adjusting for participant’s age, I found no statistically significant interaction between Capability and Commitment on the likelihood of getting an offer.
data_clean <- data_clean %>%
mutate(offer_score = as.factor(offer_score))
model <- polr(offer_score ~ Commitment + Overqual + Age + workexperience + gender, data = data_clean, Hess = T)
summary(model)
## Call:
## polr(formula = offer_score ~ Commitment + Overqual + Age + workexperience +
## gender, data = data_clean, Hess = T)
##
## Coefficients:
## Value Std. Error t value
## CommitmentHigh 0.4273632 0.32440 1.31742
## OverqualHigh 0.0731818 0.32266 0.22681
## Age 0.0003693 0.03287 0.01124
## workexperience -0.0349398 0.03926 -0.88987
## genderMale 0.0855793 0.38905 0.21997
## genderNon-binary / Third Gender -1.6547902 1.54093 -1.07389
##
## Intercepts:
## Value Std. Error t value
## 1|2 -5.3672 1.2271 -4.3739
## 2|3 -4.6619 1.0032 -4.6472
## 3|4 -3.5316 0.8217 -4.2981
## 4|5 -2.0190 0.7407 -2.7259
## 5|6 -0.7734 0.7205 -1.0734
## 6|7 1.3483 0.7314 1.8433
##
## Residual Deviance: 384.0399
## AIC: 408.0399
ctable <- coef(summary(model))
p <- pnorm(abs(ctable[, "t value"]), lower.tail = F) * 2
# combined table
ctable <- cbind(ctable, "p value" = p)
ctable
## Value Std. Error t value
## CommitmentHigh 0.4273631916 0.32439525 1.31741508
## OverqualHigh 0.0731817779 0.32265500 0.22681123
## Age 0.0003693194 0.03286835 0.01123632
## workexperience -0.0349398326 0.03926403 -0.88986878
## genderMale 0.0855792829 0.38905061 0.21996954
## genderNon-binary / Third Gender -1.6547901689 1.54093250 -1.07388881
## 1|2 -5.3672374464 1.22710542 -4.37390086
## 2|3 -4.6618626499 1.00315792 -4.64718720
## 3|4 -3.5316194534 0.82166521 -4.29812460
## 4|5 -2.0190232853 0.74069081 -2.72586516
## 5|6 -0.7733973811 0.72051194 -1.07339982
## 6|7 1.3482594203 0.73141872 1.84334826
## p value
## CommitmentHigh 1.876995e-01
## OverqualHigh 8.205705e-01
## Age 9.910349e-01
## workexperience 3.735363e-01
## genderMale 8.258949e-01
## genderNon-binary / Third Gender 2.828725e-01
## 1|2 1.220458e-05
## 2|3 3.364918e-06
## 3|4 1.722493e-05
## 4|5 6.413319e-03
## 5|6 2.830918e-01
## 6|7 6.527818e-02
Results of ordinal logistic regression are also statistically not significant
I ran two t-tests (one for high-commitment conditions, another for neutral-commitment conditions) as confirmatory analyses. Confirmatory analyses results are statistically insignificant at \(\alpha = 0.05\) level. To sum up, this study failed to replicate the original results.
I conducted multiple exploratory analyses: 2-way ANOVA (Capability x Commitment), 2 ANCOVA’s (one adjusting for age, the other adjusting for work experience), and ordinal logistic regression. I found no statitically significant effect for the main effects (Capability x Commitment). However, participant’s age and work experience seemed to have statistically significant associations with the outcome variable. This indicates that participants’ work experience and age could be important when they are evaluating job candidates’ resumes in the hiring processes. This failure to replicate indicates importance of the sample and timing in hiring studies. I confirmed that the same stimuli failed to manipulate conditions by manipulation checks. This may be attributed to the different natures of the samples. It might require some experience in the part of hiring managers when it comes to evaluating nuances in resumes. While the original study relied on Qualtrics to verify the participants’ experience as hiring managers, I had to rely on self-reports on Prolific. Since different individuals may interpret the term “hiring managers” differently, I could have ended up with a very different sample compared to that of original study. Furthermore, the 5-year time difference should be accounted for. While the original experiment was conducted in December 2016, this study was conducted in November 2021. With hiring, timing is very important because there are a lot of time sentivities that could relate to economy, labor market conditions, etc. How people think about hiring could have changed substantially over the 5-year time period, especially with the COVID-19 pandemic. (It is widely known that the outbreak of COVID-19 pandemic in late 2019 has changed the labor market conditions, the meaning of work, etc.) The future research should account for the importance of the timing and the nature of sample for studies about hiring in the labor market.