Goal is to predict CEO departure
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.3 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.3 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(correlationfunnel)
## Warning: package 'correlationfunnel' was built under R version 4.3.2
## ══ Using correlationfunnel? ════════════════════════════════════════════════════
## You might also be interested in applied data science training for business.
## </> Learn more at - www.business-science.io </>
departures <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2021/2021-04-27/departures.csv')
## Rows: 9423 Columns: 19
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (8): coname, exec_fullname, interim_coceo, still_there, notes, sources...
## dbl (10): dismissal_dataset_id, gvkey, fyear, co_per_rol, departure_code, c...
## dttm (1): leftofc
##
## ℹ 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.
skimr::skim(departures)
| Name | departures |
| Number of rows | 9423 |
| Number of columns | 19 |
| _______________________ | |
| Column type frequency: | |
| character | 8 |
| numeric | 10 |
| POSIXct | 1 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| coname | 0 | 1.00 | 2 | 30 | 0 | 3860 | 0 |
| exec_fullname | 0 | 1.00 | 5 | 790 | 0 | 8701 | 0 |
| interim_coceo | 9105 | 0.03 | 6 | 7 | 0 | 6 | 0 |
| still_there | 7311 | 0.22 | 3 | 10 | 0 | 77 | 0 |
| notes | 1644 | 0.83 | 5 | 3117 | 0 | 7755 | 0 |
| sources | 1475 | 0.84 | 18 | 1843 | 0 | 7915 | 0 |
| eight_ks | 4499 | 0.52 | 69 | 3884 | 0 | 4914 | 0 |
| _merge | 0 | 1.00 | 11 | 11 | 0 | 1 | 0 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| dismissal_dataset_id | 0 | 1.00 | 5684.10 | 25005.46 | 1 | 2305.5 | 4593 | 6812.5 | 559044 | ▇▁▁▁▁ |
| gvkey | 0 | 1.00 | 40132.48 | 53921.34 | 1004 | 7337.0 | 14385 | 60900.5 | 328795 | ▇▁▁▁▁ |
| fyear | 0 | 1.00 | 2007.74 | 8.19 | 1987 | 2000.0 | 2008 | 2016.0 | 2020 | ▁▆▅▅▇ |
| co_per_rol | 0 | 1.00 | 25580.22 | 18202.38 | -1 | 8555.5 | 22980 | 39275.5 | 64602 | ▇▆▅▃▃ |
| departure_code | 1667 | 0.82 | 5.20 | 1.53 | 1 | 5.0 | 5 | 7.0 | 9 | ▁▃▇▅▁ |
| ceo_dismissal | 1813 | 0.81 | 0.20 | 0.40 | 0 | 0.0 | 0 | 0.0 | 1 | ▇▁▁▁▂ |
| tenure_no_ceodb | 0 | 1.00 | 1.03 | 0.17 | 0 | 1.0 | 1 | 1.0 | 3 | ▁▇▁▁▁ |
| max_tenure_ceodb | 0 | 1.00 | 1.05 | 0.24 | 1 | 1.0 | 1 | 1.0 | 4 | ▇▁▁▁▁ |
| fyear_gone | 1802 | 0.81 | 2006.64 | 13.63 | 1980 | 2000.0 | 2007 | 2013.0 | 2997 | ▇▁▁▁▁ |
| cik | 245 | 0.97 | 741469.17 | 486551.43 | 1750 | 106413.0 | 857323 | 1050375.8 | 1808065 | ▆▁▇▂▁ |
Variable type: POSIXct
| skim_variable | n_missing | complete_rate | min | max | median | n_unique |
|---|---|---|---|---|---|---|
| leftofc | 1802 | 0.81 | 1981-01-01 | 2998-04-27 | 2006-12-31 | 3627 |
factors_vec <- departures %>% select( departure_code, tenure_no_ceodb, max_tenure_ceodb, ceo_dismissal) %>% names()
data_clean <- departures %>%
select(-interim_coceo, -still_there, -eight_ks, -notes, -sources, -leftofc) %>%
# remove NA's
na.omit() %>%
# address factors imported as numeric
mutate(across(all_of(factors_vec), as.factor)) %>%
# drop zero variance variable name
select(-c(`_merge`))
data_clean %>% count(ceo_dismissal)
## # A tibble: 2 × 2
## ceo_dismissal n
## <fct> <int>
## 1 0 5822
## 2 1 1439
data_clean %>%
ggplot(aes(ceo_dismissal)) +
geom_bar()
fyear vs interim_coceo
data_clean %>%
ggplot(aes(ceo_dismissal, )) +
geom_boxplot()
correlation plot
# step 1: binarize
data_binarized <- data_clean %>%
binarize()
data_binarized %>% glimpse()
## Rows: 7,261
## Columns: 43
## $ `dismissal_dataset_id__-Inf_2159` <dbl> 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
## $ dismissal_dataset_id__2159_4330 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ dismissal_dataset_id__4330_6564 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ dismissal_dataset_id__6564_Inf <dbl> 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ coname__BARRICK_GOLD_CORP <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ `coname__-OTHER` <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
## $ `gvkey__-Inf_6867` <dbl> 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
## $ gvkey__6867_13283 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ gvkey__13283_30025 <dbl> 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ gvkey__30025_Inf <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ `fyear__-Inf_1999` <dbl> 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, …
## $ fyear__1999_2006 <dbl> 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, …
## $ fyear__2006_2012 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, …
## $ fyear__2012_Inf <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ `co_per_rol__-Inf_6968` <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
## $ co_per_rol__6968_18252 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ co_per_rol__18252_33294 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ co_per_rol__33294_Inf <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ exec_fullname__John_W._Rowe <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ `exec_fullname__-OTHER` <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
## $ departure_code__1 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ departure_code__2 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ departure_code__3 <dbl> 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, …
## $ departure_code__4 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ departure_code__5 <dbl> 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, …
## $ departure_code__6 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ departure_code__7 <dbl> 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, …
## $ ceo_dismissal__0 <dbl> 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, …
## $ ceo_dismissal__1 <dbl> 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, …
## $ tenure_no_ceodb__1 <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
## $ tenure_no_ceodb__2 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ `tenure_no_ceodb__-OTHER` <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ max_tenure_ceodb__1 <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …
## $ max_tenure_ceodb__2 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ `max_tenure_ceodb__-OTHER` <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ `fyear_gone__-Inf_2000` <dbl> 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, …
## $ fyear_gone__2000_2006 <dbl> 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, …
## $ fyear_gone__2006_2013 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, …
## $ fyear_gone__2013_Inf <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ `cik__-Inf_101063` <dbl> 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, …
## $ cik__101063_832428 <dbl> 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, …
## $ cik__832428_1024302 <dbl> 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ cik__1024302_Inf <dbl> 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, …
# step 2: correlation
data_correlation <- data_binarized %>%
correlate(ceo_dismissal__1)
data_correlation
## # A tibble: 43 × 3
## feature bin correlation
## <fct> <chr> <dbl>
## 1 ceo_dismissal 0 -1
## 2 ceo_dismissal 1 1
## 3 departure_code 3 0.929
## 4 departure_code 5 -0.482
## 5 departure_code 7 -0.298
## 6 departure_code 4 0.274
## 7 fyear -Inf_1999 -0.0785
## 8 departure_code 6 -0.0784
## 9 co_per_rol -Inf_6968 -0.0598
## 10 fyear_gone -Inf_2000 -0.0589
## # ℹ 33 more rows
# step 3: plot
data_correlation %>%
correlationfunnel::plot_correlation_funnel()
library(tidymodels)
## ── Attaching packages ────────────────────────────────────── tidymodels 1.1.1 ──
## ✔ broom 1.0.5 ✔ rsample 1.2.0
## ✔ dials 1.2.0 ✔ tune 1.1.2
## ✔ infer 1.0.5 ✔ workflows 1.1.3
## ✔ modeldata 1.2.0 ✔ workflowsets 1.0.1
## ✔ parsnip 1.1.1 ✔ yardstick 1.2.0
## ✔ recipes 1.0.8
## ── Conflicts ───────────────────────────────────────── tidymodels_conflicts() ──
## ✖ scales::discard() masks purrr::discard()
## ✖ dplyr::filter() masks stats::filter()
## ✖ recipes::fixed() masks stringr::fixed()
## ✖ dplyr::lag() masks stats::lag()
## ✖ yardstick::spec() masks readr::spec()
## ✖ recipes::step() masks stats::step()
## • Dig deeper into tidy modeling with R at https://www.tmwr.org
set.seed(1234)
data_clean <- data_clean %>% sample_n(100)
data_split <- initial_split(data_clean, strata = coname)
## Warning: Too little data to stratify.
## • Resampling will be unstratified.
data_train <- training(data_split)
data_test <- testing(data_split)
data_cv <- rsample::vfold_cv(data_train, strata = coname)
## Warning: Too little data to stratify.
## • Resampling will be unstratified.
data_cv
## # 10-fold cross-validation using stratification
## # A tibble: 10 × 2
## splits id
## <list> <chr>
## 1 <split [67/8]> Fold01
## 2 <split [67/8]> Fold02
## 3 <split [67/8]> Fold03
## 4 <split [67/8]> Fold04
## 5 <split [67/8]> Fold05
## 6 <split [68/7]> Fold06
## 7 <split [68/7]> Fold07
## 8 <split [68/7]> Fold08
## 9 <split [68/7]> Fold09
## 10 <split [68/7]> Fold10
library(themis)
## Warning: package 'themis' was built under R version 4.3.3
xgboost_ceo <- recipes::recipe(coname ~ ., data = data_train) %>%
update_role(cik, new_role = "ID") %>%
step_dummy(all_nominal_predictors()) %>%
step_smote(coname)
xgboost_ceo %>% prep() %>% juice() %>% glimpse()
## Rows: 75
## Columns: 93
## $ dismissal_dataset_id <dbl> 2216, 3351, 6849, 1535, 858,…
## $ gvkey <dbl> 7146, 10247, 61399, 5179, 32…
## $ fyear <dbl> 1994, 1999, 2015, 2010, 2002…
## $ co_per_rol <dbl> 3482, 2117, 54385, 3231, 246…
## $ fyear_gone <dbl> 1994, 1999, 2016, 2010, 2002…
## $ cik <dbl> 63754, 96021, 899923, 41719,…
## $ coname <fct> MCCORMICK & CO INC, SYSCO CO…
## $ exec_fullname_Alvin.Bernard.Krongard <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Andrew.C..Teich <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Bailey.A..Thomas <dbl> 1, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Bill.D..Helton <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Bill.M..Lindig <dbl> 0, 1, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Carl.A..Gilbert <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Charles.D..Way <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Christopher.J..Amenson <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Claude.E..Davis <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Dana.G..Mead <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Daniel.D..Crowley <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 1…
## $ exec_fullname_David.E..O.Reilly <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_David.P..King <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_David.S..Boyer <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_David.Stanley <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_David.Willis.Johnson <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Dennis.J..Picard <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Donald.R..Roden <dbl> 0, 0, 0, 0, 0, 0, 0, 1, 0, 0…
## $ exec_fullname_Edward.L..Grund <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Elliot.Bernstein <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Eric.A..Benhamou <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_George.D..Leal <dbl> 0, 0, 0, 0, 0, 0, 1, 0, 0, 0…
## $ exec_fullname_George.H..Glatfelter.II <dbl> 0, 0, 0, 1, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_H..William.Lichtenberger <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Howard.G..Bubb <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Howard.L..Lance <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Jack.O..Bovender.Jr. <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_James.A..Johnson <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_James.Stuart.Pignatelli <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_James.W..McGinley <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Jeffrey.J..Zwick <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_John.Bonnet.McCoy <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_John.M..Gregory <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_John.M..O.Meara <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_John.W..Rollins <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Kenneth.P..Manning <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Kenneth.W..Lowe <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Kevin.W..Mooney <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Leonard.D..Schaeffer <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Linda.A..Lang <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Lou.Weisbach <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Mark.G..Parker <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Mark.T..Smucker <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Marshall.C..Turner.Jr. <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Michael.D..Dean <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Michael.J..Kowalski <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Michael.T..Wedge <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Mitchell.Harris.Caplan.J.D. <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Neil.R..Austrian <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Nicholas.J..St..George <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Norman.P..Blake.Jr. <dbl> 0, 0, 0, 0, 1, 0, 0, 0, 0, 0…
## $ exec_fullname_Patrick.S..O.Keefe <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Peter.D..Meldrum <dbl> 0, 0, 1, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Peter.Jeffrey.Kight <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Ralph.E..Faison <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Ralph.H..Thurman <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Robert.S..Silberman <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Ronald.A..Malone <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Stephen.F..Wiggins <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Stephen.G..Hanks <dbl> 0, 0, 0, 0, 0, 1, 0, 0, 0, 0…
## $ exec_fullname_Stephen.W..Golsby <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Steven.R..Appleton <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Thomas.C..Gallagher <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Thomas.Carson <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Thomas.M..Patrick <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Vernon.W..Hill.II <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_W..Thomas.Gould <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_William.Allen.Cooper <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_William.B..Ruger.Jr. <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_William.B..Timmerman <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 1, 0…
## $ exec_fullname_William.G..Bares <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_William.H..Lacy <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_William.L..Mansfield <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ exec_fullname_Yvon.Pierre.Cariou <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ departure_code_X2 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ departure_code_X3 <dbl> 0, 0, 0, 0, 1, 0, 0, 1, 0, 1…
## $ departure_code_X4 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ departure_code_X5 <dbl> 0, 1, 1, 1, 0, 0, 1, 0, 0, 0…
## $ departure_code_X6 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ departure_code_X7 <dbl> 0, 0, 0, 0, 0, 1, 0, 0, 1, 0…
## $ ceo_dismissal_X1 <dbl> 0, 0, 0, 0, 1, 0, 0, 1, 0, 1…
## $ tenure_no_ceodb_X2 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ tenure_no_ceodb_X3 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ max_tenure_ceodb_X2 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ max_tenure_ceodb_X3 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ max_tenure_ceodb_X4 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
library(usemodels)
## Warning: package 'usemodels' was built under R version 4.3.2
usemodels::use_xgboost(coname ~ ., data = data_train)
## xgboost_recipe <-
## recipe(formula = coname ~ ., data = data_train) %>%
## step_zv(all_predictors())
##
## xgboost_spec <-
## boost_tree(trees = tune(), min_n = tune(), tree_depth = tune(), learn_rate = tune(),
## loss_reduction = tune(), sample_size = tune()) %>%
## set_mode("classification") %>%
## set_engine("xgboost")
##
## xgboost_workflow <-
## workflow() %>%
## add_recipe(xgboost_recipe) %>%
## add_model(xgboost_spec)
##
## set.seed(56480)
## xgboost_tune <-
## tune_grid(xgboost_workflow, resamples = stop("add your rsample object"), grid = stop("add number of candidate points"))
xgboost_spec <-
boost_tree(trees = tune()) %>%
set_mode("classification") %>%
set_engine("xgboost")
xgboost_workflow <-
workflow() %>%
add_recipe(xgboost_ceo) %>%
add_model(xgboost_spec)
doParallel::registerDoParallel()
set.seed(45034)
xgboost_tune <-
tune_grid(xgboost_workflow,
resamples = data_cv,
grid = 5)