SimulateFuzzyNumber {FuzzySimRes}R Documentation

Simulate random fuzzy number.

Description

'SimulateFuzzyNumber' generates a single fuzzy number using the various random distributions based on the functions from the stats package.

Usage

SimulateFuzzyNumber(
  originalPD,
  parOriginalPD,
  incrCorePD,
  parIncrCorePD,
  suppLeftPD,
  parSuppLeftPD,
  suppRightPD,
  parSuppRightPD,
  knotNumbers = 0,
  type = "trapezoidal",
  ...
)

Arguments

originalPD

Name of the random generator used to create the "true origin" of fuzzy number (as defined in the stats package).

parOriginalPD

List of parameters required by the random generator used to create the "true origin" of a fuzzy number.

incrCorePD

Name of the random generator used to create the increases of the core of fuzzy number (as defined in the stats package).

parIncrCorePD

List of parameters required by the random generator used to create the increases of the core of trapezoidal number.

suppLeftPD

Name of the random generator used to create the increase of the left support of fuzzy number (as defined in the stats package).

parSuppLeftPD

List of parameters required by the random generator used to create the increase of the left support of fuzzy number.

suppRightPD

Name of the random generator used to create the increase of the right support of fuzzy number (as defined in the stats package).

parSuppRightPD

List of parameters required by the random generator used to create the increase of the right support of trapezoidal number.

knotNumbers

Number of the knots necessary to generate the output fuzzy number.

type

Type of the generated fuzzy number ("triangular", "trapezoidal", or "PLFN").

...

Possible parameters passed to other functions.

Details

The procedure randomly generates a fuzzy number (a triangular, trapezoidal, or PLFN one) with the originalPD, increases of its core, and increases of its support given by some random distributions. The names of the respective functions of these probability distributions should be in the form required by the stats package. For triangular fuzzy number, increasesRandomDist is not used. For both triangular and trapezoidal fuzzy numbers, knotNumbers is not used.

The "true origin" of the fuzzy number is independently drawn from the probability distribution using originalPD function from the stats package with the list of parameters defined by parOriginalPD. The same applies to the increases of the core (the function incrCorePD with the parameters parIncrCorePD is then used), the left increase of the support (the function suppLeftPD with the parameters parSuppLeftPD, respectively), and the right increase of the support (the function suppRightPD with the parameters parSuppRightPD, respectively).

Value

The output is given as a list of two values: original with "true origin" of the simulated fuzzy number generated from the probability distribution originalPD, and value – the simulated triangular, trapezoidal, or PLFN fuzzy number as in the FuzzyNumbers package.

References

Ban, A.I., Coroianu, L., Grzegorzewski, P. (2015) Fuzzy Numbers: Approximations, Ranking and Applications. Institute of Computer Sciences, Polish Academy of Sciences

Grzegorzewski, P., Romaniuk, M. (2022) Bootstrap methods for fuzzy data. Uncertainty and Imprecision in Decision Making and Decision Support: New Advances, Challenges, and Perspectives, pp. 28-47 Springer

Gagolewski, M., Caha, J. (2021) FuzzyNumbers Package: Tools to deal with fuzzy numbers in R. R package version 0.4-7, https://cran.r-project.org/web/packages=FuzzyNumbers

Parchami, A., Grzegorzewski, P., Romaniuk, M. (2024) Statistical simulations with LR random fuzzy numbers. Statistical Papers

See Also

SimulateSample for generation of the whole random fuzzy sample

Examples


# seed PRNG

set.seed(1234)

# generate triangular fuzzy number (the normal distribution for the "true origin",
# and two different uniform distribution for the increases of the support)

SimulateFuzzyNumber(originalPD="rnorm",parOriginalPD=list(mean=0,sd=1),
suppLeftPD="runif",parSuppLeftPD=list(min=0,max=0.6),
suppRightPD="runif", parSuppRightPD=list(min=0,max=0.6),
type="triangular")

# generate trapezoidal fuzzy number (the normal distribution for the "true origin",
# the exponential distribution for the increases of the core,
# and two different uniform distribution for the increases of the support)

SimulateFuzzyNumber(originalPD="rnorm",parOriginalPD=list(mean=0,sd=1),
incrCorePD="rexp", parIncrCorePD=list(rate=2),
suppLeftPD="runif",parSuppLeftPD=list(min=0,max=0.6),
suppRightPD="runif", parSuppRightPD=list(min=0,max=0.6),
type="trapezoidal")

# generate PLFN fuzzy number with two knots

SimulateFuzzyNumber(originalPD="rnorm",parOriginalPD=list(mean=0,sd=1),
incrCorePD="rexp", parIncrCorePD=list(rate=2),
suppLeftPD="runif",parSuppLeftPD=list(min=0,max=0.6),
suppRightPD="runif", parSuppRightPD=list(min=0,max=0.6),
knotNumbers = 2,
type="PLFN")



[Package FuzzySimRes version 0.4.0 Index]