| Title: | Aggregation Operators and Preordered Sets |
|---|---|
| Description: | Tools supporting multi-criteria and group decision making, including variable number of criteria, by means of aggregation operators, spread measures, fuzzy logic connectives, fusion functions, and preordered sets. Possible applications include, but are not limited to, quality management, scientometrics, software engineering, etc. |
| Authors: | Marek Gagolewski [aut, cre] (ORCID: <https://orcid.org/0000-0003-0637-6028>), Anna Cena [ctb] (ORCID: <https://orcid.org/0000-0001-8697-5383>) |
| Maintainer: | Marek Gagolewski <[email protected]> |
| License: | LGPL (>= 3) |
| Version: | 0.2.4 |
| Built: | 2026-05-13 08:16:38 UTC |
| Source: | https://github.com/gagolews/agop |
Keywords: aggregation, bibliometrics, scientometrics, scientific impact, webometrics, preorders, binary relations, means, OWA, OWMax, OWMin, Hirsch's h-index, Egghe's g-index, variance, spread, decision making, fuzzy logic.
Acknowledgments: The development of the package in March-June 2013 was partially supported by the European Union from the resources of the European Social Fund, Project PO KL “Information technologies: Research and their interdisciplinary applications”, agreement UDA-POKL.04.01.01-00-051/10-00.
Marek Gagolewski [aut,cre],
Anna Cena [ctb]
This functions determines if two vectors have a common ordering permutation.
check_comonotonicity(x, y, incompatible_lengths = NA)check_comonotonicity(x, y, incompatible_lengths = NA)
x |
numeric vector |
y |
numeric vector |
incompatible_lengths |
single logical value,
value to return iff lengths of |
Two vectors x, y of equal length are comonotonic,
if and only if there exists a permutation such that
and
.
Thus, orders x and y simultaneously.
Equivalently, x and y are comonotonic,
iff for every i,j.
If there are missing values in x or y, the function
returns NA.
Currently, the implemented algorithm has time complexity.
Returns a single logical value.
Grabisch M., Marichal J.-L., Mesiar R., Pap E., Aggregation functions, Cambridge University Press, 2009.
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Other binary_relations:
pord_nd(),
pord_spread(),
pord_weakdom(),
rel_graph(),
rel_is_antisymmetric(),
rel_is_asymmetric(),
rel_is_cyclic(),
rel_is_irreflexive(),
rel_is_reflexive(),
rel_is_symmetric(),
rel_is_total(),
rel_is_transitive(),
rel_reduction_hasse()
Computes the D2OWA operator, i.e., the normalized L2 distance between a numeric vector and an OWA operator.
d2owa_checkwts(w) d2owa(x, w = rep(1/length(x), length(x)))d2owa_checkwts(w) d2owa(x, w = rep(1/length(x), length(x)))
w |
numeric vector of the same length as |
x |
numeric vector to be aggregated |
D2OWA is a symmetric spread measure.
It is defined as
d2owa(x) == sqrt(mean((x-owa(x,w))^2)).
Not all weights, however, generate a proper function of this kind;
d2owa_checkwts may be used to check that.
For d2owa, if w is not appropriate, an error is thrown.
w is automatically normalized so that its elements sum up to 1.
For d2owa, a single numeric value is returned.
On the other hand, d2owa_checkwts returns a single logical value.
Gagolewski M., Spread measures and their relation to aggregation functions, European Journal of Operational Research 241(2), 2015, pp. 469-477. doi:10.1016/j.ejor.2014.08.034
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Yager R.R., On ordered weighted averaging aggregation operators in multicriteria decision making, IEEE Transactions on Systems, Man, and Cybernetics 18(1), 1988, pp. 183-190.
Finds the maximum likelihood estimator of the Discretized Pareto Type-II distribution's
shape parameter and scale parameter .
dpareto2_estimate_mle( x, k0 = 1, s0 = 1, kmin = 1e-04, smin = 1e-04, kmax = 100, smax = 100 )dpareto2_estimate_mle( x, k0 = 1, s0 = 1, kmin = 1e-04, smin = 1e-04, kmax = 100, smax = 100 )
x |
a non-negative numeric vector |
k0, s0
|
initial points for the L-BFGS-B method |
kmin, kmax
|
lower and upper bound for the shape parameter |
smin, smax
|
lower and upper bound for the scale parameter |
Note that the maximum of the likelihood function might not exist for some input vectors. This estimator may have a large mean squared error.
Returns a numeric vector with the following named components:
k - estimated parameter of shape
s - estimated parameter of scale
or c(NA, NA) if the maximum of the likelihood function
could not be found.
Other DiscretizedPareto2:
rdpareto2()
Performs an approximate Anderson-Darling goodness-of-fit test, which verifies the null hypothesis: Data follow an exponential distribution.
exp_test_ad(x)exp_test_ad(x)
x |
a non-negative numeric vector of data values |
Sample size should be not less than 3. Missing values
are removed from x before applying the procedure.
The p-value is approximate: its distribution has been estimated by taking 2500000 MC samples. For performance and space reasons, the estimated distribution is recreated by a spline interpolation on a fixed number of points. As a result, the resulting p-value distribution might not necessarily be uniform for p>>0.5.
A list of the class htest is returned,
just like in many other testing methods,
see, e.g., ks.test.
Anderson T.W., Darling D.A., A Test of Goodness-of-Fit, Journal of the American Statistical Association 49, 1954, pp. 765-769.
Other Tests:
pareto2_test_ad(),
pareto2_test_f()
Various fuzzy implications Each of these is a fuzzy logic generalization of the classical implication operation.
fimplication_minimal(x, y) fimplication_maximal(x, y) fimplication_kleene(x, y) fimplication_lukasiewicz(x, y) fimplication_reichenbach(x, y) fimplication_fodor(x, y) fimplication_goguen(x, y) fimplication_goedel(x, y) fimplication_rescher(x, y) fimplication_weber(x, y) fimplication_yager(x, y)fimplication_minimal(x, y) fimplication_maximal(x, y) fimplication_kleene(x, y) fimplication_lukasiewicz(x, y) fimplication_reichenbach(x, y) fimplication_fodor(x, y) fimplication_goguen(x, y) fimplication_goedel(x, y) fimplication_rescher(x, y) fimplication_weber(x, y) fimplication_yager(x, y)
x |
numeric vector with elements in |
y |
numeric vector of the same length as |
A function
is a fuzzy implication if for all it holds:
(a) if , then ;
(b) if , then ;
(c) ;
(d) ;
(e) .
The minimal fuzzy implication is given by
iff or , and 0 otherwise.
The maximal fuzzy implication is given by
iff and , and 1 otherwise.
The Kleene-Dienes fuzzy implication is given by .
The Lukasiewicz fuzzy implication is given by .
The Reichenbach fuzzy implication is given by .
The Fodor fuzzy implication is given by
iff , and otherwise.
The Goguen fuzzy implication is given by
iff , and otherwise.
The Goedel fuzzy implication is given by
iff , and otherwise.
The Rescher fuzzy implication is given by
iff , and otherwise.
The Weber fuzzy implication is given by
iff , and otherwise.
The Yager fuzzy implication is given by
iff and , and otherwise.
Numeric vector of the same length as x and y.
The ith element of the resulting vector gives the result
of calculating I(x[i], y[i]).
Klir G.J, Yuan B., Fuzzy sets and fuzzy logic. Theory and applications, Prentice Hall PTR, New Jersey, 1995.
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Other fuzzy_logic:
fnegation_yager(),
tconorm_minimum(),
tnorm_minimum()
Various fuzzy negations. Each of these is a fuzzy logic generalization of the classical negation operation.
fnegation_yager(x) fnegation_classic(x) fnegation_minimal(x) fnegation_maximal(x)fnegation_yager(x) fnegation_classic(x) fnegation_minimal(x) fnegation_maximal(x)
x |
numeric vector with elements in |
A function
is a fuzzy implication if for all it holds:
(a) if , then ;
(b) ;
(c) .
The classic fuzzy negation is given by .
The Yager fuzzy negation is given by .
The minimal fuzzy negation is given by iff
, and otherwise.
The maximal fuzzy negation is given by
iff , and otherwise.
Numeric vector of the same length as x.
The ith element of the resulting vector gives the result
of calculating N(x[i]).
Klir G.J, Yuan B., Fuzzy sets and fuzzy logic. Theory and applications, Prentice Hall PTR, New Jersey, 1995.
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Other fuzzy_logic:
fimplication_minimal(),
tconorm_minimum(),
tnorm_minimum()
Given a sequence of non-negative numbers ,
where for ,
the -index (Egghe, 2006) for is defined as
if and , or otherwise.
index_g(x) index.g(x) # same as index_g(x), deprecated alias index_g_zi(x)index_g(x) index.g(x) # same as index_g(x), deprecated alias index_g_zi(x)
x |
a non-negative numeric vector |
index.g is a (deprecated) alias for index_g.
Note that index_g is not a zero-insensitive impact function,
see Examples section. index_g_zi is its zero-sensitive variant:
it assumes that the aggregated vector is padded with zeros.
If a non-increasingly sorted vector is given, the function has O(n) run-time.
For historical reasons, this function is also available via an alias,
index.g [but its usage is deprecated].
a single numeric value
Egghe L., Theory and practise of the g-index, Scientometrics 69(1), 2006, pp. 131-152.
Mesiar R., Gagolewski M., H-index and other Sugeno integrals: Some defects and their compensation, IEEE Transactions on Fuzzy Systems 24(6), 2016, pp. 1668-1672. doi:10.1109/TFUZZ.2016.2516579
Gagolewski M., Mesiar R., Monotone measures and universal integrals in a uniform framework for the scientific impact assessment problem, Information Sciences 263, 2014, pp. 166-174. doi:10.1016/j.ins.2013.12.004
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Other impact_functions:
index_h(),
index_lp(),
index_maxprod(),
index_rp(),
index_w(),
pord_weakdom()
sapply(list(c(9), c(9,0), c(9,0,0), c(9,0,0,0)), index_g) # not a zero-sensitive agopsapply(list(c(9), c(9,0), c(9,0,0), c(9,0,0,0)), index_g) # not a zero-sensitive agop
Given a sequence of non-negative numbers ,
where for ,
the -index (Hirsch, 2005) for is defined as
if and , or otherwise.
index_h(x) index.h(x) # same as index_h(x), deprecated aliasindex_h(x) index.h(x) # same as index_h(x), deprecated alias
x |
a non-negative numeric vector |
If a non-increasingly sorted vector is given, the function has O(n) run-time.
For historical reasons, this function is also available via an alias,
index.h [but its usage is deprecated].
See index_rp and owmax for natural generalizations.
The h-index is the same as the discrete Sugeno integral of x
w.r.t. the counting measure (see Torra, Narukawa, 2008).
a single numeric value
Hirsch J.E., An index to quantify individual's scientific research output, Proceedings of the National Academy of Sciences 102(46), 2005, pp. 16569-16572.
Mesiar R., Gagolewski M., H-index and other Sugeno integrals: Some defects and their compensation, IEEE Transactions on Fuzzy Systems 24(6), 2016, pp. 1668-1672. doi:10.1109/TFUZZ.2016.2516579
Gagolewski M., Mesiar R., Monotone measures and universal integrals in a uniform framework for the scientific impact assessment problem, Information Sciences 263, 2014, pp. 166-174. doi:10.1016/j.ins.2013.12.004
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Sugeno M., Theory of fuzzy integrals and its applications, PhD thesis, Tokyo Institute of Technology, 1974.
Torra V., Narukawa Y., The h-index and the number of citations: Two fuzzy integrals, IEEE Transactions on Fuzzy Systems 16(3), 2008, pp. 795-797.
Other impact_functions:
index_g(),
index_lp(),
index_maxprod(),
index_rp(),
index_w(),
pord_weakdom()
authors <- list( # a list of numeric sequences # (e.g. citation counts of the articles # written by some authors) "A" =c(23,21,4,2,1,0,0), "B" =c(11,5,4,4,3,2,2,2,2,2,1,1,1,0,0,0,0), "C" =c(53,43,32,23,14,13,12,8,4,3,2,1,0) ) index_h(authors$A) sapply(authors, index_h)authors <- list( # a list of numeric sequences # (e.g. citation counts of the articles # written by some authors) "A" =c(23,21,4,2,1,0,0), "B" =c(11,5,4,4,3,2,2,2,2,2,1,1,1,0,0,0,0), "C" =c(53,43,32,23,14,13,12,8,4,3,2,1,0) ) index_h(authors$A) sapply(authors, index_h)
Given a sequence of non-negative numbers ,
where for ,
the -index for equals to
if , or otherwise.
Note that if , then
where is the index proposed in (Kosmulski, 2007),
see index_maxprod.
Moreover, this index corresponds to the Shilkret integral
of w.r.t. some monotone measure,
cf. (Gagolewski, Debski, Nowakiewicz, 2013).
For the definition of the -index for we refer
to (Gagolewski, Grzegorzewski, 2009a).
index_lp(x, p = Inf, projection = prod) index.lp(x, p = Inf, projection = prod) # deprecated aliasindex_lp(x, p = Inf, projection = prod) index.lp(x, p = Inf, projection = prod) # deprecated alias
x |
a non-negative numeric vector |
p |
index order, |
projection |
function |
The -index, by definition, is not an impact function, as
it produces 2 numeric values. Thus, it should be projected to one dimension.
However, you may set the projection argument
to identity so as to obtain the 2-dimensional index
If a non-increasingly sorted vector is given, the function has O(n) run-time
for any , see (Gagolewski, Debski, Nowakiewicz, 2013).
For historical reasons, this function is also available via an alias,
index.lp [but its usage is deprecated].
result of projection(c())
Gagolewski M., Grzegorzewski P., A geometric approach to the construction of scientific impact indices, Scientometrics 81(3), 2009a, pp. 617-634.
Gagolewski M., Debski M., Nowakiewicz M., Efficient Algorithm for Computing Certain Graph-Based Monotone Integrals: the lp-Indices, In: Mesiar R., Bacigal T. (Eds.), Proc. Uncertainty Modelling, STU Bratislava, ISBN:978-80-227-4067-8, 2013, pp. 17-23.
Kosmulski M., MAXPROD - A new index for assessment of the scientific output of an individual, and a comparison with the h-index, Cybermetrics 11(1), 2007.
Shilkret, N., Maxitive measure and integration, Indag. Math. 33, 1971, pp. 109-116.
Other impact_functions:
index_g(),
index_h(),
index_maxprod(),
index_rp(),
index_w(),
pord_weakdom()
x <- runif(100, 0, 100) index.lp(x, Inf, identity) # two-dimensional value, can not be used # directly in the analysis index.lp(x, Inf, prod) # the MAXPROD-index (one-dimensional) [default]x <- runif(100, 0, 100) index.lp(x, Inf, identity) # two-dimensional value, can not be used # directly in the analysis index.lp(x, Inf, prod) # the MAXPROD-index (one-dimensional) [default]
Given a sequence of non-negative numbers ,
where for ,
the MAXPROD-index (Kosmulski, 2007) for is defined as
index_maxprod(x)index_maxprod(x)
x |
a non-negative numeric vector |
If a non-increasingly sorted vector is given, the function has O(n) run-time.
The MAXPROD index is the same as the discrete Shilkret integral of x
w.r.t. the counting measure.
See index_lp for a natural generalization.
a single numeric value
Kosmulski M., MAXPROD - A new index for assessment of the scientific output of an individual, and a comparison with the h-index, Cybermetrics 11(1), 2007.
Mesiar R., Gagolewski M., H-index and other Sugeno integrals: Some defects and their compensation, IEEE Transactions on Fuzzy Systems 24(6), 2016, pp. 1668-1672. doi:10.1109/TFUZZ.2016.2516579
Gagolewski M., Mesiar R., Monotone measures and universal integrals in a uniform framework for the scientific impact assessment problem, Information Sciences 263, 2014, pp. 166-174. doi:10.1016/j.ins.2013.12.004
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Other impact_functions:
index_g(),
index_h(),
index_lp(),
index_rp(),
index_w(),
pord_weakdom()
Given a sequence of non-negative numbers ,
where for ,
the -index for equals to
if , or otherwise.
That is, it is equivalent to a particular OWMax operator,
see owmax.
For the definition of the -index for we refer
to (Gagolewski, Grzegorzewski, 2009).
index_rp(x, p = Inf) index.rp(x, p = Inf) # same as index_rp(x, p), deprecated aliasindex_rp(x, p = Inf) index.rp(x, p = Inf) # same as index_rp(x, p), deprecated alias
x |
a non-negative numeric vector |
p |
index order, |
Note that if are integers, then
where is the -index (Hirsch, 2005) and
where is the -index (Woeginger, 2008),
see index_h and index_w.
If a non-increasingly sorted vector is given, the function has O(n) run-time.
For historical reasons, this function is also available via an alias, index.rp
[but its usage is deprecated].
a single numeric value
Gagolewski M., Grzegorzewski P., A geometric approach to the construction of scientific impact indices, Scientometrics 81(3), 2009, pp. 617-634.
Hirsch J.E., An index to quantify individual's scientific research output, Proceedings of the National Academy of Sciences 102(46), 2005, pp. 16569-16572.
Woeginger G.J., An axiomatic characterization of the Hirsch-index, Mathematical Social Sciences 56(2), 2008, pp. 224-232.
Other impact_functions:
index_g(),
index_h(),
index_lp(),
index_maxprod(),
index_w(),
pord_weakdom()
x <- runif(100, 0, 100); index.rp(x); # the r_oo-index floor(index.rp(x)); # the h-index index.rp(floor(x), 1); # the w-indexx <- runif(100, 0, 100); index.rp(x); # the r_oo-index floor(index.rp(x)); # the h-index index.rp(floor(x), 1); # the w-index
Given a sequence of non-negative numbers ,
where for ,
the -index (Woeginger, 2008) for is defined as
index_w(x)index_w(x)
x |
a non-negative numeric vector |
If a non-increasingly sorted vector is given, the function has O(n) run-time.
See index_rp for a natural generalization.
a single numeric value
Woeginger G. J., An axiomatic characterization of the Hirsch-index. Mathematical Social Sciences 56(2), 2008, pp. 224-232.
Other impact_functions:
index_g(),
index_h(),
index_lp(),
index_maxprod(),
index_rp(),
pord_weakdom()
Computes the Weighted Arithmetic Mean or the Ordered Weighted Averaging aggregation operator.
owa(x, w = rep(1/length(x), length(x))) wam(x, w = rep(1/length(x), length(x)))owa(x, w = rep(1/length(x), length(x))) wam(x, w = rep(1/length(x), length(x)))
x |
numeric vector to be aggregated |
w |
numeric vector of the same length as |
The OWA operator is given by
where denotes the -th smallest
value in x.
The WAM operator is given by
If the elements in w do not sum up to , then
they are normalized and a warning is generated.
Both functions by default return the ordinary arithmetic mean.
Special cases of OWA include the trimmed mean (see mean)
and Winsorized mean.
There is a strong, well-known connection between the OWA operators and the Choquet integrals.
These functions return a single numeric value.
Choquet G., Theory of capacities, Annales de l'institut Fourier 5, 1954, pp. 131-295.
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Yager R.R., On ordered weighted averaging aggregation operators in multicriteria decision making, IEEE Transactions on Systems, Man, and Cybernetics 18(1), 1988, pp. 183-190.
Other aggregation_operators:
owmax()
Computes the (Ordered) Weighted Maximum/Minimum.
owmax(x, w = rep(Inf, length(x))) owmin(x, w = rep(-Inf, length(x))) wmax(x, w = rep(Inf, length(x))) wmin(x, w = rep(-Inf, length(x)))owmax(x, w = rep(Inf, length(x))) owmin(x, w = rep(-Inf, length(x))) wmax(x, w = rep(Inf, length(x))) wmin(x, w = rep(-Inf, length(x)))
x |
numeric vector to be aggregated |
w |
numeric vector of the same length as |
The OWMax operator is given by
where denotes the -th smallest
value in x.
The OWMin operator is given by
The WMax operator is given by
The WMin operator is given by
OWMax and WMax by default return the greatest value in x
and OWMin and WMin - the smallest value in x.
Classically, it is assumed that if we aggregate
vectors with elements in , then
the largest weight for OWMax should be equal to
and the smallest for OWMin should be equal to .
There is a strong connection between the OWMax/OWMin operators and the Sugeno integrals w.r.t. some monotone measures. Additionally, it may be shown that the OWMax and OWMin classes are equivalent.
Moreover, index_h for integer data
is a particular OWMax operator.
These functions return a single numeric value.
Dubois D., Prade H., Testemale C., Weighted fuzzy pattern matching, Fuzzy Sets and Systems 28, 1988, pp. 313-331.
Dubois D., Prade H., Semantics of quotient operators in fuzzy relational databases, Fuzzy Sets and Systems 78(1), 1996, pp. 89-93.
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Sugeno M., Theory of fuzzy integrals and its applications, PhD thesis, Tokyo Institute of Technology, 1974.
Other aggregation_operators:
owa()
Finds the maximum likelihood estimator of the Pareto Type-II distribution's
shape parameter and, if not given explicitly,
scale parameter .
pareto2_estimate_mle( x, s = NA_real_, smin = 1e-04, smax = 20, tol = .Machine$double.eps^0.25 )pareto2_estimate_mle( x, s = NA_real_, smin = 1e-04, smax = 20, tol = .Machine$double.eps^0.25 )
x |
a non-negative numeric vector |
s |
a-priori known scale parameter, |
smin |
lower bound for the scale parameter |
smax |
upper bound for the scale parameter |
tol |
the desired accuracy (convergence tolerance) |
Note that if is not given, then
the maximum of the likelihood function might not exist
for some input vectors. This estimator may have a large mean squared error.
Consider using pareto2_estimate_mmse.
For known , the estimator is unbiased.
Returns a numeric vector with the following named components:
k - estimated parameter of shape
s - estimated (or known, see the s argument) parameter of scale
or c(NA, NA) if the maximum of the likelihood function
could not be found.
Other Pareto2:
pareto2_estimate_mmse(),
pareto2_test_ad(),
pareto2_test_f(),
rpareto2()
Finds the MMS estimator of the Pareto Type-II distribution parameters using the Bayesian method (and the R code) developed by Zhang and Stevens (2009).
pareto2_estimate_mmse(x)pareto2_estimate_mmse(x)
x |
a non-negative numeric vector |
Returns a numeric vector with the following named components:
k - estimated parameter of shape,
s - estimated parameter of scale.
Zhang J., Stevens M.A., A New and Efficient Estimation Method for the Generalized Pareto Distribution, Technometrics 51(3), 2009, pp. 316-325.
Other Pareto2:
pareto2_estimate_mle(),
pareto2_test_ad(),
pareto2_test_f(),
rpareto2()
Performs an approximate Anderson-Darling goodness-of-fit test, which verifies the null hypothesis: Data follow a Pareto-Type II distribution.
pareto2_test_ad(x, s = 1)pareto2_test_ad(x, s = 1)
x |
a non-negative numeric vector of data values |
s |
the known scale parameter, |
We know that if follows a Pareto-Type II distribution
with shape parameter , then follows an
exponential distribution with parameter .
Thus, this function transforms the input vector,
and performs the same steps as exp_test_ad.
A list of the class htest is returned,
see exp_test_ad.
Other Pareto2:
pareto2_estimate_mle(),
pareto2_estimate_mmse(),
pareto2_test_f(),
rpareto2()
Other Tests:
exp_test_ad(),
pareto2_test_f()
Performs the F-test for the equality of shape parameters
of two samples from Pareto type-II distributions with known
and equal scale parameters, .
pareto2_test_f( x, y, s, alternative = c("two.sided", "less", "greater"), significance = NULL )pareto2_test_f( x, y, s, alternative = c("two.sided", "less", "greater"), significance = NULL )
x |
a non-negative numeric vector |
y |
a non-negative numeric vector |
s |
the known scale parameter, |
alternative |
indicates the alternative hypothesis and must be one of
|
significance |
significance level, |
Given two samples i.i.d.
and i.i.d.
this test verifies the null hypothesis
against two-sided or one-sided alternatives, depending
on the value of alternative.
It is based on the test statistic
which, under , follows the Snedecor's F distribution with
degrees of freedom.
Note that for , then dominates stochastically.
If significance is not NULL, then
the list of class power.htest with the following components is yield in result:
statistic - the value of the test statistic.
result - either FALSE (accept null hypothesis) or TRUE (reject).
alternative - a character string describing the alternative hypothesis.
method - a character string indicating what type of test was performed.
data.name - a character string giving the name(s) of the data.
Otherwise, the list of class htest with the following components is yield in result:
statistic the value of the test statistic.
p.value the p-value of the test.
alternative a character string describing the alternative hypothesis.
method a character string indicating what type of test was performed.
data.name a character string giving the name(s) of the data.
Other Pareto2:
pareto2_estimate_mle(),
pareto2_estimate_mmse(),
pareto2_test_ad(),
rpareto2()
Other Tests:
exp_test_ad(),
pareto2_test_ad()
Draws a step function that represents a numeric vector
with elements in .
plot_producer( x, type = c("left.continuous", "right.continuous", "curve"), extend = FALSE, add = FALSE, pch = 1, col = 1, lty = 1, lwd = 1, cex = 1, col.steps = col, lty.steps = 2, lwd.steps = 1, xlab = "", ylab = "", main = "", xmarg = 10, xlim = c(0, length(x) * 1.2), ylim = c(a, max(x)), a = 0, ... )plot_producer( x, type = c("left.continuous", "right.continuous", "curve"), extend = FALSE, add = FALSE, pch = 1, col = 1, lty = 1, lwd = 1, cex = 1, col.steps = col, lty.steps = 2, lwd.steps = 1, xlab = "", ylab = "", main = "", xmarg = 10, xlim = c(0, length(x) * 1.2), ylim = c(a, max(x)), a = 0, ... )
x |
non-negative numeric vector |
type |
character; |
extend |
logical; should the plot be extended infinitely to the right?
Defaults to |
add |
logical; indicates whether to start a new plot, |
pch, col, lty, lwd, cex, xmarg
|
graphical parameters |
col.steps, lty.steps, lwd.steps
|
graphical parameters, used only
for |
ylim, xlim, xlab, ylab, main, ...
|
additional graphical parameters,
see |
a |
single numeric value |
In agop, a vector can be represented by a
step function defined for and given by:
(for type == 'right.continuous')
or for
(for type == 'left.continuous', the default)
or by a curve interpolating the points ,
, , ,
..., .
Here, denotes the
-th smallest value in .
In bibliometrics, a step function of one of the two above-presented types is called a citation function.
For historical reasons, this function is also available via its alias,
plot.citfun [but its usage is deprecated].
nothing interesting
john_s <- c(11,5,4,4,3,2,2,2,2,2,1,1,1,0,0,0,0) plot_producer(john_s, main="Smith, John", col="red")john_s <- c(11,5,4,4,3,2,2,2,2,2,1,1,1,0,0,0,0) plot_producer(john_s, main="Smith, John", col="red")
Checks whether a numeric vector of arbitrary length is (weakly) dominated (elementwise) by another vector of the same length.
pord_nd(x, y, incompatible_lengths = NA)pord_nd(x, y, incompatible_lengths = NA)
x |
numeric vector with nonnegative elements |
y |
numeric vector with nonnegative elements |
incompatible_lengths |
single logical value,
value to return iff lengths of |
We say that a numeric vector x
of length
is weakly dominated by y
of length
iff
and
for all it holds
.
This relation is a preorder: it is reflexive (see rel_is_reflexive)
and transitive (see rel_is_transitive),
but not necessarily total (see rel_is_total).
See rel_graph for a convenient function
to calculate the relationship between all pairs of elements
of a given set.
Such a preorder is tightly related to classical aggregation functions: each aggregation function is a morphism between weak-dominance-preordered set of vectors and the set of reals equipped with standard linear ordering.
Returns a single logical value
indicating whether x is weakly
dominated by y.
Grabisch M., Marichal J.-L., Mesiar R., Pap E., Aggregation functions, Cambridge University Press, 2009.
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Other binary_relations:
check_comonotonicity(),
pord_spread(),
pord_weakdom(),
rel_graph(),
rel_is_antisymmetric(),
rel_is_asymmetric(),
rel_is_cyclic(),
rel_is_irreflexive(),
rel_is_reflexive(),
rel_is_symmetric(),
rel_is_total(),
rel_is_transitive(),
rel_reduction_hasse()
This function determines whether one numeric vector has not greater spread than the other
pord_spread(x, y, incompatible_lengths = NA)pord_spread(x, y, incompatible_lengths = NA)
x |
numeric vector |
y |
numeric vector of the same length as |
incompatible_lengths |
single logical value,
value to return iff lengths of |
We say that x of size
is of no greater spread than y
iff for all such
that it holds .
Such a preorder is used in the definition of
a spread measure (see Gagolewski, 2015).
Note that the class of dispersion functions includes
e.g. the sample variance (see var),
standard veriation (see sd),
range (see range and then diff),
interquartile range (see IQR),
median absolute deviation (see mad).
The function returns a single logical value,
which states whether x has no greater
spread than y
Gagolewski M., Spread measures and their relation to aggregation functions, European Journal of Operational Research 241(2), 2015, pp. 469–477.
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Other binary_relations:
check_comonotonicity(),
pord_nd(),
pord_weakdom(),
rel_graph(),
rel_is_antisymmetric(),
rel_is_asymmetric(),
rel_is_cyclic(),
rel_is_irreflexive(),
rel_is_reflexive(),
rel_is_symmetric(),
rel_is_total(),
rel_is_transitive(),
rel_reduction_hasse()
Checks whether a given numeric vector of arbitrary length is (weakly) dominated by another vector, possibly of different length, in terms of (sorted) elements' values and their number.
pord_weakdom(x, y)pord_weakdom(x, y)
x |
numeric vector with nonnegative elements |
y |
numeric vector with nonnegative elements |
We say that a numeric vector x
of length
is weakly dominated by y
of length
iff
and
for all it holds
.
This relation is a preorder: it is reflexive (see rel_is_reflexive)
and transitive (see rel_is_transitive),
but not necessarily total (see rel_is_total).
See rel_graph for a convenient function
to calculate the relationship between all pairs of elements
of a given set.
Note that this dominance relation gives the same value for all permutations of input vectors' element. Such a preorder is tightly related to symmetric impact functions: each impact function is a morphism between weak-dominance-preordered set of vectors and the set of reals equipped with standard linear ordering (see Gagolewski, Grzegorzewski, 2011 and Gagolewski, 2013).
Returns a single logical value
indicating whether x is weakly
dominated by y.
Gagolewski M., Grzegorzewski P., Possibilistic Analysis of Arity-Monotonic Aggregation Operators and Its Relation to Bibliometric Impact Assessment of Individuals, International Journal of Approximate Reasoning 52(9), 2011, pp. 1312-1324.
Gagolewski M., Scientific Impact Assessment Cannot be Fair, Journal of Informetrics 7(4), 2013, pp. 792-802.
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Other binary_relations:
check_comonotonicity(),
pord_nd(),
pord_spread(),
rel_graph(),
rel_is_antisymmetric(),
rel_is_asymmetric(),
rel_is_cyclic(),
rel_is_irreflexive(),
rel_is_reflexive(),
rel_is_symmetric(),
rel_is_total(),
rel_is_transitive(),
rel_reduction_hasse()
Other impact_functions:
index_g(),
index_h(),
index_lp(),
index_maxprod(),
index_rp(),
index_w()
Probability mass function, cumulative distribution function,
quantile function, and random generation for the
Discretized Pareto Type-II distribution with shape
parameter and scale parameter .
[TO DO: rewrite in C, add NA handling, add working qdpareto2()]
rdpareto2(n, k = 1, s = 1) pdpareto2(q, k = 1, s = 1, lower.tail = TRUE) qdpareto2(p, k = 1, s = 1, lower.tail = TRUE) ddpareto2(x, k = 1, s = 1)rdpareto2(n, k = 1, s = 1) pdpareto2(q, k = 1, s = 1, lower.tail = TRUE) qdpareto2(p, k = 1, s = 1, lower.tail = TRUE) ddpareto2(x, k = 1, s = 1)
n |
integer; number of observations |
k |
vector of shape parameters, |
s |
vector of scale parameters, |
lower.tail |
logical; if |
p |
vector of probabilities |
x, q
|
vector of quantiles |
If ,
then ,
where has ordinary Pareto Type-II
distribution, see ppareto2.
numeric vector;
ddpareto2 gives the probability mass function,
pdpareto2 gives the cumulative distribution function,
qdpareto2 calculates the quantile function,
and rdpareto2 generates random deviates.
Other distributions:
rpareto2()
Other DiscretizedPareto2:
dpareto2_estimate_mle()
Returns a binary relation that represents results
of comparisons with pord
of all pairs of elements in x.
We have ret[i,j] == pord(x[[i]], x[[j]], ...).
rel_graph(x, pord, ...)rel_graph(x, pord, ...)
x |
list with elements to compare, preferably named |
pord |
a function with two arguments, returning a single Boolean value,
e.g., |
... |
additional arguments passed to |
Returns a square logical matrix.
dimnames of the matrix correspond
to names of x.
Other binary_relations:
check_comonotonicity(),
pord_nd(),
pord_spread(),
pord_weakdom(),
rel_is_antisymmetric(),
rel_is_asymmetric(),
rel_is_cyclic(),
rel_is_irreflexive(),
rel_is_reflexive(),
rel_is_symmetric(),
rel_is_total(),
rel_is_transitive(),
rel_reduction_hasse()
A binary relation is antisymmetric, iff
for all we have
and .
rel_is_antisymmetric(R)rel_is_antisymmetric(R)
R |
an object coercible to a 0-1 (logical) square matrix, representing a binary relation on a finite set. |
rel_is_antisymmetric finds out if a given binary relation
is antisymmetric. Missing values in R may result in NA.
Also, check out rel_closure_symmetric
for the symmetric closure of R.
rel_is_antisymmetric returns
a single logical value.
Other binary_relations:
check_comonotonicity(),
pord_nd(),
pord_spread(),
pord_weakdom(),
rel_graph(),
rel_is_asymmetric(),
rel_is_cyclic(),
rel_is_irreflexive(),
rel_is_reflexive(),
rel_is_symmetric(),
rel_is_total(),
rel_is_transitive(),
rel_reduction_hasse()
A binary relation is asymmetric, iff
for all we have
.
rel_is_asymmetric(R)rel_is_asymmetric(R)
R |
an object coercible to a 0-1 (logical) square matrix, representing a binary relation on a finite set. |
Note that an asymmetric relation is necessarily irreflexive,
compare rel_is_irreflexive.
rel_is_asymmetric finds out if a given binary relation
is asymmetric. Missing values in R may result in NA.
Also, check out rel_closure_symmetric
for the symmetric closure of R.
rel_is_asymmetric returns
a single logical value.
Other binary_relations:
check_comonotonicity(),
pord_nd(),
pord_spread(),
pord_weakdom(),
rel_graph(),
rel_is_antisymmetric(),
rel_is_cyclic(),
rel_is_irreflexive(),
rel_is_reflexive(),
rel_is_symmetric(),
rel_is_total(),
rel_is_transitive(),
rel_reduction_hasse()
A binary relation is cyclic, iff
its transitive closure is not antisymmetric.
Note that may be reflexive and still acyclic,
i.e., loops in are not taken into account.
rel_is_cyclic(R)rel_is_cyclic(R)
R |
an object coercible to a 0-1 (logical) square matrix, representing a binary relation on a finite set. |
rel_is_cyclic has time complexity,
where is the number of rows in R
(the implemented algorithm currently verifies whether a depth-first search-based
topological sorting is possible).
Missing values in R always result in NA.
rel_is_cyclic returns
a single logical value.
Other binary_relations:
check_comonotonicity(),
pord_nd(),
pord_spread(),
pord_weakdom(),
rel_graph(),
rel_is_antisymmetric(),
rel_is_asymmetric(),
rel_is_irreflexive(),
rel_is_reflexive(),
rel_is_symmetric(),
rel_is_total(),
rel_is_transitive(),
rel_reduction_hasse()
A binary relation is irreflexive
(or antireflexive), iff
for all we have .
rel_is_irreflexive(R)rel_is_irreflexive(R)
R |
an object coercible to a 0-1 (logical) square matrix, representing a binary relation on a finite set. |
rel_is_irreflexive finds out if a given binary relation
is irreflexive. The function just checks whether all elements
on the diagonal of R are zeros,
i.e., it has time complexity,
where is the number of rows in R.
Missing values on the diagonal may result in NA.
When dealing with a graph's loops,
i.e., elements related to themselves, you may be interested
in finding a reflexive closure,
see rel_closure_reflexive,
or a reflexive reduction,
see rel_reduction_reflexive.
rel_is_irreflexive returns
a single logical value.
Other binary_relations:
check_comonotonicity(),
pord_nd(),
pord_spread(),
pord_weakdom(),
rel_graph(),
rel_is_antisymmetric(),
rel_is_asymmetric(),
rel_is_cyclic(),
rel_is_reflexive(),
rel_is_symmetric(),
rel_is_total(),
rel_is_transitive(),
rel_reduction_hasse()
A binary relation is reflexive, iff
for all we have .
rel_is_reflexive(R) rel_closure_reflexive(R) rel_reduction_reflexive(R)rel_is_reflexive(R) rel_closure_reflexive(R) rel_reduction_reflexive(R)
R |
an object coercible to a 0-1 (logical) square matrix, representing a binary relation on a finite set. |
rel_is_reflexive finds out if a given binary relation
is reflexive. The function just checks whether all elements
on the diagonal of R are non-zeros,
i.e., it has time complexity,
where is the number of rows in R.
Missing values on the diagonal may result in NA.
A reflexive closure of a binary relation ,
determined by rel_closure_reflexive,
is the minimal reflexive superset of .
A reflexive reduction of a binary relation ,
determined by rel_reduction_reflexive,
is the minimal subset of ,
such that the reflexive closures of and are equal
i.e., the largest irreflexive relation contained in .
The rel_closure_reflexive and
rel_reduction_reflexive functions
return a logical square matrix. dimnames
of R are preserved.
On the other hand, rel_is_reflexive returns
a single logical value.
Other binary_relations:
check_comonotonicity(),
pord_nd(),
pord_spread(),
pord_weakdom(),
rel_graph(),
rel_is_antisymmetric(),
rel_is_asymmetric(),
rel_is_cyclic(),
rel_is_irreflexive(),
rel_is_symmetric(),
rel_is_total(),
rel_is_transitive(),
rel_reduction_hasse()
A binary relation is symmetric, iff
for all we have .
rel_is_symmetric(R) rel_closure_symmetric(R)rel_is_symmetric(R) rel_closure_symmetric(R)
R |
an object coercible to a 0-1 (logical) square matrix, representing a binary relation on a finite set. |
rel_is_symmetric finds out if a given binary relation
is symmetric. Any missing value behind the diagonal results in NA.
The symmetric closure of a binary relation ,
determined by rel_closure_symmetric,
is the smallest symmetric binary relation that contains .
Here, any missing values in R result in an error.
The rel_closure_symmetric function
returns a logical square matrix. dimnames
of R are preserved.
On the other hand, rel_is_symmetric returns
a single logical value.
Other binary_relations:
check_comonotonicity(),
pord_nd(),
pord_spread(),
pord_weakdom(),
rel_graph(),
rel_is_antisymmetric(),
rel_is_asymmetric(),
rel_is_cyclic(),
rel_is_irreflexive(),
rel_is_reflexive(),
rel_is_total(),
rel_is_transitive(),
rel_reduction_hasse()
A binary relation is total
(or strong complete), iff
for all , we have or .
rel_is_total(R) rel_closure_total_fair(R)rel_is_total(R) rel_closure_total_fair(R)
R |
an object coercible to a 0-1 (logical) square matrix, representing a binary relation on a finite set. |
Note that each total relation is also reflexive,
see rel_is_reflexive.
rel_is_total determines if a given binary relation
R is total.
The algorithm has time complexity,
where is the number of rows in R.
If R[i,j] and R[j,i] is NA
for some , then the functions outputs NA.
The problem of finding a total closure or reduction is not well-defined in general.
When dealing with preorders, however, the following
closure may be useful, see (Gagolewski, 2013).
Fair totalization of , performed by
rel_closure_total_fair, is the minimal superset of
such that if not and not
then and .
Even if R is transitive, the resulting relation
might not necessarily fulfil this property.
If you want a total preorder,
call rel_closure_transitive afterwards.
Missing values in R are not allowed and result in an error.
rel_is_total returns a single logical value.
rel_closure_reflexive returns a logical square matrix.
dimnames of R are preserved.
Gagolewski M., Scientific Impact Assessment Cannot be Fair,
Journal of Informetrics 7(4), 2013, pp. 792-802.
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Other binary_relations:
check_comonotonicity(),
pord_nd(),
pord_spread(),
pord_weakdom(),
rel_graph(),
rel_is_antisymmetric(),
rel_is_asymmetric(),
rel_is_cyclic(),
rel_is_irreflexive(),
rel_is_reflexive(),
rel_is_symmetric(),
rel_is_transitive(),
rel_reduction_hasse()
A binary relation is transitive, iff
for all , , we have and
.
rel_is_transitive(R) rel_closure_transitive(R) rel_reduction_transitive(R)rel_is_transitive(R) rel_closure_transitive(R) rel_reduction_transitive(R)
R |
an object coercible to a 0-1 (logical) square matrix, representing a binary relation on a finite set. |
rel_is_transitive finds out if a given binary relation
is transitive. The algorithm has time complexity,
pessimistically, where
is the number of rows in R.
If R contains missing values behind the diagonal,
the result will be NA.
The transitive closure of a binary relation ,
determined by rel_closure_transitive,
is the minimal superset of such that it is transitive.
Here we use the well-known Warshall algorithm (1962),
which runs in time.
The transitive reduction,
see (Aho et al. 1972), of an acyclic binary relation ,
determined by rel_reduction_transitive,
is a minimal unique subset of ,
such that the transitive closures of and are equal.
The implemented algorithm runs in time.
Note that a transitive reduction of a reflexive relation
is also reflexive. Moreover, some kind of transitive reduction
(not necessarily minimal) is also determined in
rel_reduction_hasse – it is useful for
drawing Hasse diagrams.
The rel_closure_transitive and
rel_reduction_transitive functions
return a logical square matrix. dimnames
of R are preserved.
On the other hand, rel_is_transitive returns
a single logical value.
Aho A.V., Garey M.R., Ullman J.D., The Transitive Reduction of a Directed Graph, SIAM Journal on Computing 1(2), 1972, pp. 131-137.
Warshall S., A theorem on Boolean matrices, Journal of the ACM 9(1), 1962, pp. 11-12.
Other binary_relations:
check_comonotonicity(),
pord_nd(),
pord_spread(),
pord_weakdom(),
rel_graph(),
rel_is_antisymmetric(),
rel_is_asymmetric(),
rel_is_cyclic(),
rel_is_irreflexive(),
rel_is_reflexive(),
rel_is_symmetric(),
rel_is_total(),
rel_reduction_hasse()
This function computes the reflexive reduction and a kind of transitive reduction which is useful for drawing Hasse diagrams.
rel_reduction_hasse(R)rel_reduction_hasse(R)
R |
an object coercible to a 0-1 (logical) square matrix, representing a binary relation on a finite set. |
The input matrix might not necessarily be acyclic/asymmetric, i.e.,
it may represent any totally preordered set (which induces an equivalence
relation on the underlying preordered set).
The implemented algorithm runs in time
and first determines the transitive closure of .
If an irreflexive is given, then the transitive closures
of and of the resulting matrix are identical.
Moreover, if is additionally acyclic, then this function
is equivalent to rel_reduction_transitive.
The rel_reduction_hasse function
returns a logical square matrix. dimnames
of R are preserved.
Other binary_relations:
check_comonotonicity(),
pord_nd(),
pord_spread(),
pord_weakdom(),
rel_graph(),
rel_is_antisymmetric(),
rel_is_asymmetric(),
rel_is_cyclic(),
rel_is_irreflexive(),
rel_is_reflexive(),
rel_is_symmetric(),
rel_is_total(),
rel_is_transitive()
## Not run: # Let ord be a total preorder (a total and transitive binary relation) # === Plot the Hasse diagram of ord === # === requires the igraph package === library("igraph") hasse <- graph.adjacency(rel_reduction_transitive(ord)) plot(hasse, layout=layout.fruchterman.reingold(hasse, dim=2)) ## End(Not run)## Not run: # Let ord be a total preorder (a total and transitive binary relation) # === Plot the Hasse diagram of ord === # === requires the igraph package === library("igraph") hasse <- graph.adjacency(rel_reduction_transitive(ord)) plot(hasse, layout=layout.fruchterman.reingold(hasse, dim=2)) ## End(Not run)
Density, cumulative distribution function,
quantile function, and random generation for the
Pareto Type-II (Lomax)
distribution with shape
parameter and scale parameter .
[TO DO: rewrite in C, add NA handling]
rpareto2(n, k = 1, s = 1) ppareto2(q, k = 1, s = 1, lower.tail = TRUE) qpareto2(p, k = 1, s = 1, lower.tail = TRUE) dpareto2(x, k = 1, s = 1)rpareto2(n, k = 1, s = 1) ppareto2(q, k = 1, s = 1, lower.tail = TRUE) qpareto2(p, k = 1, s = 1, lower.tail = TRUE) dpareto2(x, k = 1, s = 1)
n |
integer; number of observations |
k |
vector of shape parameters, |
s |
vector of scale parameters, |
lower.tail |
logical; if |
p |
vector of probabilities |
x, q
|
vector of quantiles |
If ,
then .
The c.d.f. for is given by
and the density by
numeric vector;
dpareto2 gives the density,
ppareto2 gives the cumulative distribution function,
qpareto2 calculates the quantile function,
and rpareto2 generates random deviates.
Other distributions:
rdpareto2()
Other Pareto2:
pareto2_estimate_mle(),
pareto2_estimate_mmse(),
pareto2_test_ad(),
pareto2_test_f()
Various t-conorms. Each of these is a fuzzy logic generalization of the classical alternative operation.
tconorm_minimum(x, y) tconorm_product(x, y) tconorm_lukasiewicz(x, y) tconorm_drastic(x, y) tconorm_fodor(x, y)tconorm_minimum(x, y) tconorm_product(x, y) tconorm_lukasiewicz(x, y) tconorm_drastic(x, y) tconorm_fodor(x, y)
x |
numeric vector with elements in |
y |
numeric vector of the same length as |
A function
is a t-conorm if for all it holds:
(a) ;
(b) if , then ;
(c) ;
(d) .
The minimum t-conorm is given by .
The product t-conorm is given by .
The Lukasiewicz t-conorm is given by .
The drastic t-conorm is given by iff
, and otherwise.
The Fodor t-conorm is given by
iff , and otherwise.
Numeric vector of the same length as x and y.
The ith element of the resulting vector gives the result
of calculating S(x[i], y[i]).
Klir G.J, Yuan B., Fuzzy sets and fuzzy logic. Theory and applications, Prentice Hall PTR, New Jersey, 1995.
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Other fuzzy_logic:
fimplication_minimal(),
fnegation_yager(),
tnorm_minimum()
Various t-norms. Each of these is a fuzzy logic generalization of the classical conjunction operation.
tnorm_minimum(x, y) tnorm_product(x, y) tnorm_lukasiewicz(x, y) tnorm_drastic(x, y) tnorm_fodor(x, y)tnorm_minimum(x, y) tnorm_product(x, y) tnorm_lukasiewicz(x, y) tnorm_drastic(x, y) tnorm_fodor(x, y)
x |
numeric vector with elements in |
y |
numeric vector of the same length as |
A function
is a t-norm if for all it holds:
(a) ;
(b) if , then ;
(c) ;
(d) .
The minimum t-norm is given by .
The product t-norm is given by .
The Lukasiewicz t-norm is given by .
The drastic t-norm is given by iff
, and otherwise.
The Fodor t-norm is given by
iff , and otherwise.
Numeric vector of the same length as x and y.
The ith element of the resulting vector gives the result
of calculating T(x[i], y[i]).
Klir G.J, Yuan B., Fuzzy sets and fuzzy logic. Theory and applications, Prentice Hall PTR, New Jersey, 1995.
Gagolewski M., Data Fusion: Theory, Methods, and Applications, Institute of Computer Science, Polish Academy of Sciences, 2015, 290 pp. isbn:978-83-63159-20-7
Other fuzzy_logic:
fimplication_minimal(),
fnegation_yager(),
tconorm_minimum()