View Source Descisionex.PaymentMatrix (Descisionex v1.0.0)

https://en.wikipedia.org/wiki/Decision-matrix_method

Link to this section Summary

Functions

Calculates Bayes criterion (decision under risk) for payment matrix (probabilities must be set).

Calculates all criteria for payment matrix. Includes Bayes criterion if probabilities are set.

Calculates generalized criterion for payment matrix.

Calculates Hurwitz criterion (pessimism-optimism) for payment matrix.

Calculates Laplace criterion (equal probability) for payment matrix. If variants are not explicitly set, the column count is inferred from the matrix.

Calculates Maximax criterion (optimism) for payment matrix.

Calculates Savage criterion (minimax regret) for payment matrix.

Calculates Wald criterion (maximin) for payment matrix.

Set Generalized additional value for payment matrix (range from 0.1 to 0.9), defaults to 0.5.

Set Hurwitz additional value for payment matrix (range from 0.1 to 0.9), defaults to 0.5.

Set probabilities for states of nature (must sum to 1.0). Required for Bayes criterion.

Set steps (strategies/decisions) for payment matrix.

Set variants (states of nature) for payment matrix.

Link to this section Functions

Link to this function

calculate_bayes_criterion(data)

View Source

Calculates Bayes criterion (decision under risk) for payment matrix (probabilities must be set).

examples

Examples

iex> %Descisionex.PaymentMatrix{matrix: [[1, 2], [3, 4]]} |> Descisionex.PaymentMatrix.calculate_bayes_criterion()
** (ArgumentError) For Bayes criterion probabilities must be set!
iex> %Descisionex.PaymentMatrix{matrix: [[1, 2], [3, 4]]} |> Descisionex.PaymentMatrix.set_probabilities([0.4, 0.6]) |> Descisionex.PaymentMatrix.calculate_bayes_criterion()
%Descisionex.PaymentMatrix{
  bayes_criterion: %{criterion: 3.6, strategy_index: 1, strategy_name: nil},
  generalized_additional_value: 0.5,
  generalized_criterion: %{},
  hurwitz_additional_value: 0.5,
  hurwitz_criterion: %{},
  laplace_criterion: %{},
  matrix: [[1, 2], [3, 4]],
  maximax_criterion: %{},
  possible_steps: [],
  possible_steps_num: 0,
  probabilities: [0.4, 0.6],
  savage_criterion: %{},
  variants: [],
  variants_num: 0,
  wald_criterion: %{}
}
Link to this function

calculate_criteria(data)

View Source

Calculates all criteria for payment matrix. Includes Bayes criterion if probabilities are set.

examples

Examples

iex> %Descisionex.PaymentMatrix{matrix: [[1, 2], [3, 4]]} |> Descisionex.PaymentMatrix.set_variants(["some", "variants"]) |> Descisionex.PaymentMatrix.calculate_criteria()
%Descisionex.PaymentMatrix{
  bayes_criterion: %{},
  generalized_additional_value: 0.5,
  generalized_criterion: %{criterion: 1.5, strategy_index: 0, strategy_name: nil},
  hurwitz_additional_value: 0.5,
  hurwitz_criterion: %{criterion: 3.5, strategy_index: 1, strategy_name: nil},
  laplace_criterion: %{criterion: 3.5, strategy_index: 1, strategy_name: nil},
  matrix: [[1, 2], [3, 4]],
  maximax_criterion: %{criterion: 4, strategy_index: 1, strategy_name: nil},
  possible_steps: [],
  possible_steps_num: 0,
  probabilities: [],
  savage_criterion: %{criterion: 0, strategy_index: 1, strategy_name: nil},
  variants: ["some", "variants"],
  variants_num: 2,
  wald_criterion: %{criterion: 3, strategy_index: 1, strategy_name: nil}
}
Link to this function

calculate_generalized_criterion(data)

View Source

Calculates generalized criterion for payment matrix.

examples

Examples

iex> %Descisionex.PaymentMatrix{matrix: [[1, 2], [3, 4]]} |> Descisionex.PaymentMatrix.calculate_generalized_criterion()
%Descisionex.PaymentMatrix{
  bayes_criterion: %{},
  generalized_additional_value: 0.5,
  generalized_criterion: %{criterion: 1.5, strategy_index: 0, strategy_name: nil},
  hurwitz_additional_value: 0.5,
  hurwitz_criterion: %{},
  laplace_criterion: %{},
  matrix: [[1, 2], [3, 4]],
  maximax_criterion: %{},
  possible_steps: [],
  possible_steps_num: 0,
  probabilities: [],
  savage_criterion: %{},
  variants: [],
  variants_num: 0,
  wald_criterion: %{}
}
Link to this function

calculate_hurwitz_criterion(data)

View Source

Calculates Hurwitz criterion (pessimism-optimism) for payment matrix.

examples

Examples

iex> %Descisionex.PaymentMatrix{matrix: [[1, 2], [3, 4]]} |> Descisionex.PaymentMatrix.calculate_hurwitz_criterion()
%Descisionex.PaymentMatrix{
  bayes_criterion: %{},
  generalized_additional_value: 0.5,
  generalized_criterion: %{},
  hurwitz_additional_value: 0.5,
  hurwitz_criterion: %{criterion: 3.5, strategy_index: 1, strategy_name: nil},
  laplace_criterion: %{},
  matrix: [[1, 2], [3, 4]],
  maximax_criterion: %{},
  possible_steps: [],
  possible_steps_num: 0,
  probabilities: [],
  savage_criterion: %{},
  variants: [],
  variants_num: 0,
  wald_criterion: %{}
}
Link to this function

calculate_laplace_criterion(data)

View Source

Calculates Laplace criterion (equal probability) for payment matrix. If variants are not explicitly set, the column count is inferred from the matrix.

examples

Examples

iex> %Descisionex.PaymentMatrix{matrix: [[1, 2], [3, 4]]} |> Descisionex.PaymentMatrix.calculate_laplace_criterion()
%Descisionex.PaymentMatrix{
  bayes_criterion: %{},
  generalized_additional_value: 0.5,
  generalized_criterion: %{},
  hurwitz_additional_value: 0.5,
  hurwitz_criterion: %{},
  laplace_criterion: %{criterion: 3.5, strategy_index: 1, strategy_name: nil},
  matrix: [[1, 2], [3, 4]],
  maximax_criterion: %{},
  possible_steps: [],
  possible_steps_num: 0,
  probabilities: [],
  savage_criterion: %{},
  variants: [],
  variants_num: 0,
  wald_criterion: %{}
}
Link to this function

calculate_maximax_criterion(data)

View Source

Calculates Maximax criterion (optimism) for payment matrix.

examples

Examples

iex> %Descisionex.PaymentMatrix{matrix: [[1, 2], [3, 4]]} |> Descisionex.PaymentMatrix.calculate_maximax_criterion()
%Descisionex.PaymentMatrix{
  bayes_criterion: %{},
  generalized_additional_value: 0.5,
  generalized_criterion: %{},
  hurwitz_additional_value: 0.5,
  hurwitz_criterion: %{},
  laplace_criterion: %{},
  matrix: [[1, 2], [3, 4]],
  maximax_criterion: %{criterion: 4, strategy_index: 1, strategy_name: nil},
  possible_steps: [],
  possible_steps_num: 0,
  probabilities: [],
  savage_criterion: %{},
  variants: [],
  variants_num: 0,
  wald_criterion: %{}
}
Link to this function

calculate_savage_criterion(data)

View Source

Calculates Savage criterion (minimax regret) for payment matrix.

examples

Examples

iex> %Descisionex.PaymentMatrix{matrix: [[1, 2], [3, 4]]} |> Descisionex.PaymentMatrix.calculate_savage_criterion()
%Descisionex.PaymentMatrix{
  bayes_criterion: %{},
  generalized_additional_value: 0.5,
  generalized_criterion: %{},
  hurwitz_additional_value: 0.5,
  hurwitz_criterion: %{},
  laplace_criterion: %{},
  matrix: [[1, 2], [3, 4]],
  maximax_criterion: %{},
  possible_steps: [],
  possible_steps_num: 0,
  probabilities: [],
  savage_criterion: %{criterion: 0, strategy_index: 1, strategy_name: nil},
  variants: [],
  variants_num: 0,
  wald_criterion: %{}
}
Link to this function

calculate_wald_criterion(data)

View Source

Calculates Wald criterion (maximin) for payment matrix.

examples

Examples

iex> %Descisionex.PaymentMatrix{matrix: [[1, 2], [3, 4]]} |> Descisionex.PaymentMatrix.calculate_wald_criterion()
%Descisionex.PaymentMatrix{
  bayes_criterion: %{},
  generalized_additional_value: 0.5,
  generalized_criterion: %{},
  hurwitz_additional_value: 0.5,
  hurwitz_criterion: %{},
  laplace_criterion: %{},
  matrix: [[1, 2], [3, 4]],
  maximax_criterion: %{},
  possible_steps: [],
  possible_steps_num: 0,
  probabilities: [],
  savage_criterion: %{},
  variants: [],
  variants_num: 0,
  wald_criterion: %{criterion: 3, strategy_index: 1, strategy_name: nil}
}
Link to this function

set_generalized_additional_value(data, value)

View Source

Set Generalized additional value for payment matrix (range from 0.1 to 0.9), defaults to 0.5.

examples

Examples

iex> %Descisionex.PaymentMatrix{} |> Descisionex.PaymentMatrix.set_generalized_additional_value(0.3)
%Descisionex.PaymentMatrix{
  bayes_criterion: %{},
  generalized_additional_value: 0.3,
  generalized_criterion: %{},
  hurwitz_additional_value: 0.5,
  hurwitz_criterion: %{},
  laplace_criterion: %{},
  matrix: [],
  maximax_criterion: %{},
  possible_steps: [],
  possible_steps_num: 0,
  probabilities: [],
  savage_criterion: %{},
  variants: [],
  variants_num: 0,
  wald_criterion: %{}
}

iex> %Descisionex.PaymentMatrix{} |> Descisionex.PaymentMatrix.set_generalized_additional_value(0)
** (ArgumentError) Generalized additional value incorrect (number range must be from 0.1 to 0.9)
Link to this function

set_hurwitz_additional_value(data, value)

View Source

Set Hurwitz additional value for payment matrix (range from 0.1 to 0.9), defaults to 0.5.

examples

Examples

iex> %Descisionex.PaymentMatrix{} |> Descisionex.PaymentMatrix.set_hurwitz_additional_value(0.3)
%Descisionex.PaymentMatrix{
  bayes_criterion: %{},
  generalized_additional_value: 0.5,
  generalized_criterion: %{},
  hurwitz_additional_value: 0.3,
  hurwitz_criterion: %{},
  laplace_criterion: %{},
  matrix: [],
  maximax_criterion: %{},
  possible_steps: [],
  possible_steps_num: 0,
  probabilities: [],
  savage_criterion: %{},
  variants: [],
  variants_num: 0,
  wald_criterion: %{}
}

iex> %Descisionex.PaymentMatrix{} |> Descisionex.PaymentMatrix.set_hurwitz_additional_value(0)
** (ArgumentError) Hurwitz additional value incorrect (number range must be from 0.1 to 0.9)
Link to this function

set_probabilities(data, probabilities)

View Source

Set probabilities for states of nature (must sum to 1.0). Required for Bayes criterion.

examples

Examples

iex> %Descisionex.PaymentMatrix{matrix: [[1, 2], [3, 4]]} |> Descisionex.PaymentMatrix.set_probabilities([0.4, 0.6])
%Descisionex.PaymentMatrix{
  bayes_criterion: %{},
  generalized_additional_value: 0.5,
  generalized_criterion: %{},
  hurwitz_additional_value: 0.5,
  hurwitz_criterion: %{},
  laplace_criterion: %{},
  matrix: [[1, 2], [3, 4]],
  maximax_criterion: %{},
  possible_steps: [],
  possible_steps_num: 0,
  probabilities: [0.4, 0.6],
  savage_criterion: %{},
  variants: [],
  variants_num: 0,
  wald_criterion: %{}
}

iex> %Descisionex.PaymentMatrix{} |> Descisionex.PaymentMatrix.set_probabilities([])
** (ArgumentError) Probabilities must be not empty!

iex> %Descisionex.PaymentMatrix{} |> Descisionex.PaymentMatrix.set_probabilities([0.3, 0.3])
** (ArgumentError) Probabilities must sum to 1.0!

Set steps (strategies/decisions) for payment matrix.

examples

Examples

iex> %Descisionex.PaymentMatrix{} |> Descisionex.PaymentMatrix.set_steps(["some", "steps"])
%Descisionex.PaymentMatrix{
  bayes_criterion: %{},
  generalized_additional_value: 0.5,
  generalized_criterion: %{},
  hurwitz_additional_value: 0.5,
  hurwitz_criterion: %{},
  laplace_criterion: %{},
  matrix: [],
  maximax_criterion: %{},
  possible_steps: ["some", "steps"],
  possible_steps_num: 2,
  probabilities: [],
  savage_criterion: %{},
  variants: [],
  variants_num: 0,
  wald_criterion: %{}
}
Link to this function

set_variants(data, variants)

View Source

Set variants (states of nature) for payment matrix.

examples

Examples

iex> %Descisionex.PaymentMatrix{} |> Descisionex.PaymentMatrix.set_variants(["some", "variants"])
%Descisionex.PaymentMatrix{
  bayes_criterion: %{},
  generalized_additional_value: 0.5,
  generalized_criterion: %{},
  hurwitz_additional_value: 0.5,
  hurwitz_criterion: %{},
  laplace_criterion: %{},
  matrix: [],
  maximax_criterion: %{},
  possible_steps: [],
  possible_steps_num: 0,
  probabilities: [],
  savage_criterion: %{},
  variants: ["some", "variants"],
  variants_num: 2,
  wald_criterion: %{}
}