stress_mean_sd: Stressing Mean and Standard Deviation

Description Usage Arguments Details Value References See Also Examples

View source: R/stress_moment.R

Description

Provides weights on simulated scenarios from a baseline stochastic model, such that stressed model components (random variables) fulfil the mean and standard deviation constraints. Scenario weights are selected by constrained minimisation of the relative entropy to the baseline model.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
stress_mean_sd(
  x,
  k,
  new_means,
  new_sd,
  normalise = TRUE,
  names = NULL,
  log = FALSE,
  ...
)

Arguments

x

A vector, matrix or data frame containing realisations of random variables. Columns of x correspond to random variables; OR
A SWIM object, where x corresponds to the underlying data of the SWIM object.

k

Numeric vector, the columns of x that are stressed.

new_means

Numeric vector, same length as k, containing the stressed means.

new_sd

Numeric vector, same length as k, containing the stressed standard deviations.

normalise

Logical. If true, values of f(x) are linearly scaled to the unit interval.

names

Character vector, the names of stressed models.

log

Boolean, the option to print weights' statistics.

...

Additional arguments to be passed to nleqslv or stress_moment.

Details

The function stress_mean_sd is a wrapper for the function stress_moment. See stress_moment for details on the additional arguments to ... and the underlying algorithm.

For stressing means only, see stress_mean, for stressing higher moments and functions of moments, see stress_moment.

Value

A SWIM object containing:

See SWIM for details.

References

\insertRef

Pesenti2019reverseSWIM

\insertRef

Pesenti2020SSRNSWIM

\insertRef

Csiszar1975SWIM

See Also

Other stress functions: stress_HARA_RM_w(), stress_RM_mean_sd_w(), stress_RM_w(), stress_VaR_ES(), stress_VaR(), stress_mean_sd_w(), stress_mean_w(), stress_mean(), stress_moment(), stress_prob(), stress_user(), stress_wass(), stress()

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
set.seed(0)
x <- data.frame(cbind(
  "normal" = rnorm(1000),
  "gamma" = rgamma(1000, shape = 2),
  "beta" = rbeta(1000, shape1 = 2, shape2 = 2)))
## stressing mean and sd of column 1
res1 <- stress(type = "mean sd", x = x, k = 1, new_means = 0.1,
  new_sd = 1.1, method = "Newton",
  control = list(maxit = 1000, ftol = 1E-15))
summary(res1)
## calling stress_mean_sd directly
res2 <- stress_mean_sd(x = x, k = 1, new_means = 0.1,
  new_sd = 1.1, method = "Newton",
  control = list(maxit = 1000, ftol = 1E-15))

## See also examples in stress_moment.

spesenti/SWIM documentation built on Jan. 15, 2022, 11:19 a.m.