View Source Descisionex.PaymentMatrix (Descisionex v1.0.0)
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
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: %{}
}
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}
}
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: %{}
}
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: %{}
}
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: %{}
}
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: %{}
}
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: %{}
}
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}
}
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)
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)
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: %{}
}
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: %{}
}