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 |
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 |
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 |
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 |
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")