Learn R Programming

collector

collector is an R package for conducting interviews with subject matter experts (SMEs) on the risk scenarios facing an organization. It offers functions for the following stages of input collection:

  • generate scenario and capability questions
  • building interview artifacts, including progress card, slide decks, and handouts
  • calibration testing, similar to that promoted by Doug Hubbard and the FAIR Institute
  • distribution fitting
  • opinion pooling of multiple SMEs into a single representative distribution
  • generating quantitative risk scenarios for simulation and reporting by Evaluator

Installation

Collector is now available on CRAN.

install.packages("collector")

If you wish to run the development (and potentially bleeding edge) version, you can install directly from GitHub via the following remotes command.

# install.packages("remotes")
remotes::install_github("davidski/collector")

Basic Flow

See the package website for reference. The basic flow for preparing for interviews with your SMEs, processing the results, and generating parameters for simulation via evaluator is:

  1. Build questions and define SME expertise

  2. Read in the question set. See read_questions() for more information.

    library(collector)
    
    questions <- read_questions()
  3. Generate materials for interviewing a SME.

    output_dir <- tempdir()
    make_handouts("Leader Name", questions, output_dir)
    make_scorecard("Leader Name", questions, output_dir)
    make_slides("Leader Name", questions, output_dir)
  4. Read in the responses from your SMEs. See read_responses() documentation for more information.

    responses <- read_responses()
  5. Fit the SME answers to distributions.

    scenario_answers_fitted <- fit_scenarios(responses)
    capability_answers_fitted <- fit_capabilities(responses)
  6. Combine distributions into final parameters, applying weighting based on each SMEs level of calibration.

    sme_weightings <- generate_weights(questions, responses)
    scenario_parameters <- left_join(scenario_answers_fitted, sme_weightings, by = "sme") %>% 
      combine_scenario_parameters()
    capability_parameters <- left_join(capability_answers_fitted, sme_weightings, by = "sme") %>% 
      combine_capability_parameters()
  7. Build quantitative scenarios for evaluator.

    scenarios <- prepare_data(scenario_parameters, capability_parameters, 
                              threat_parameters, questions)

Contributing

This project is governed by a Code of Conduct. By participating in this project you agree to abide by these terms.

License

The MIT License applies.

Copy Link

Version

Install

install.packages('collector')

Monthly Downloads

28

Version

0.1.3

License

MIT + file LICENSE

Maintainer

David Severski

Last Published

February 18th, 2020

Functions in collector (0.1.3)

check_readability

Check the readability of scenario text
combine_capability_parameters

Combine multiple SME distributions into a single unified view
derive_controls

Generate the quantified capability parameters for a scenario
combine_lognorm

Weight a set of lognormal parameters into a single distribution
clean_answers

Clean extreme answers
combine_scenario_parameters

Combine multiple SME distributions into a single unified view
combine_lognorm_trunc

Weight a set of lognormal parameters into a single distribution
calibration_questions

Calibration questions
combine_norm

Weight a set of normal parameters into a single distribution
collector

collector package
fit_lognorm

Find parameters that fit quantile values of an unknown lognormal distribution
fit_capabilities

Fit SME capability estimates to distribution parameters
make_scorecard

Create a scorecard for marking progress through domains in an interview
mc_sme_top_domains

MetroCare Hospital SME Top Domains
make_slides

Create interview slides
fit_capabilities_geomean

Fit capability parameters via a geometric mean
fit_pois

Find parameters that fit a poisson distribution.
fit_norm_trunc

Find parameters that fit quantile values of an unknown truncated normal distribution
lognormal_to_normal

Convert lognormal parameters to normal parameters
mc_threat_communities

MetroCare Hospital Threat Communities
mc_threat_parameters_fitted

MetroCare Hospital Threat Parameters (fitted)
tidyrisk_question_set

Construct a tidyrisk_question_set object
mc_capabilities

MetroCare Hospital Capabilities
make_handouts

Create a set of interview handouts for a SME
mc_calibration_answers

MetroCare Hospital Calibration Answers
normal_to_lognormal

Convert normal parameters to lognormal parameters
generate_cost_function

Generate a sum of squares cost function for optimization
fit_scenarios_geomean

Fit scenario parameters by applying a geometric mean
fit_scenarios

Fit SME scenario estimates to distribution parameters
enforce_tidyrisk_response_set

fit_threat_communities

Fit each of the threat communities to a distribution
enforce_tidyrisk_question_set

tidyrisk_response_set

Construct a tidyrisk_response_set object
mc_scenario_parameters_fitted

MetroCare Hospital Scenario Parameters (fitted)
fit_lognorm_trunc

Find parameters that fit quantile values of an unknown truncated lognormal distribution
get_smes_domains

Calculate the prioritized list of domains for a given subject matter expert (SME)
mc_domains

MetroCare Hospital Domains
is_tidyrisk_response_set

Test if the object is a tidyrisk_response_set
generate_weights

Generate a weighting table for SMEs based upon their calibration answers
is_tidyrisk_question_set

Test if the object is a tidyrisk_question_set
mc_scenarios

MetroCare Risk Scenarios
read_questions

Read scenario questions
mc_capability_answers

MetroCare Hospital Capability Answers
mc_capability_parameters_fitted

MetroCare Hospital Capability Parameters (fitted)
%>%

Pipe operator
read_responses

Read all SMEs responses
prepare_data

Create one or more quantitative scenarios objects suitable for simulation by 'evaluator'
mc_scenario_answers

MetroCare Hospital Scenario Answers