Skip to contents

Risk-Averse Value of Information for Ecological Decision Making

vira is an R package for calculating risk-averse Value of Information (VOI) using expected utility theory. It supports elicitation of risk preferences via adaptive Bayesian discrete-choice questions, and calculation of EVPI, EVPXI, and EVSI under CRRA and CARA utility functions. Designed for applied ecologists with no background in economics or mathematical utility theory.

Installation

# Install from GitHub
# install.packages("remotes")
remotes::install_github("frankiechoht/vira")

Quick start

library(vira)

# Define a 2-action, 2-state problem (Canessa et al. 2015 chytrid frog example)
V <- matrix(c(55, 135, 100, 100), nrow = 2, byrow = TRUE)
p <- c(0.5, 0.5)

prob <- voi_problem(V, p)

# Elicit risk preferences interactively
rp <- elicit(prob)

# Calculate EVPI under the elicited risk preference
evpi(prob, rp)

Core concepts

VOI answers: how much is it worth to collect more information before making a decision?

  • EVPI — Expected Value of Perfect Information: the most you would pay for a study that perfectly resolves all uncertainty.
  • EVSI — Expected Value of Sample Information: the value of a specific imperfect study design.
  • EVPXI — Expected Value of Partial Perfect Information: value of resolving a subset of uncertain parameters perfectly.

By default, VOI assumes a risk-neutral decision-maker (maximise expected value). vira generalises this to risk-averse decision-makers via utility functions:

  • CRRA — Constant Relative Risk Aversion (U(x) = x^(1-γ) / (1-γ))
  • CARA — Constant Absolute Risk Aversion (U(x) = 1 - exp(-αx))

Main functions

Function Description
voi_problem() Define an action × state outcome matrix with prior and posterior probabilities
elicit() Interactively elicit risk preferences via adaptive choice questions
risk_preference() Construct a risk preference object from known parameters
evpi() Calculate EVPI (risk-neutral or risk-averse)
evsi() Calculate EVSI
evpxi() Calculate EVPXI (partial perfect information)
sensitivity() Sweep VOI across a range of risk aversion parameter values
decision_table() Print a formatted decision table

Convenience wrappers

quick_evpi(), quick_evsi(), quick_evpxi() run the full pipeline in one call.

Vignettes

Vignette Topic
vira-01-concepts Key concepts and the VOI pipeline walkthrough
vira-02-evpi Calculating EVPI
vira-03-evsi Calculating EVSI
vira-04-evpxi Calculating EVPXI
vira-05-sensitivity Sensitivity analysis over risk aversion
vira-06-elicitation Interactive risk preference elicitation
vira-07-validation Validation against Davis (2019) published results
vira-08-runge-crane Case study: whooping crane management
vira-09-bennett-parcel Case study: biodiversity offsets
vira-10-mantyniemi-fishing Case study: herring stock-recruitment
vira-11-bennett-multispecies Case study: multispecies conservation

Citation

If you use vira in published work, please cite:

Cho, F. (2025). vira: Risk-Averse Value of Information for Ecological Decision Making. R package version 0.1.0.

License

MIT