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] , Anna Cena [ctb] |
Maintainer: | Marek Gagolewski <[email protected]> |
License: | LGPL (>= 3) |
Version: | 0.2.4 |
Built: | 2024-11-06 04:25:54 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 i
th 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 i
th 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 agop
sapply(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 alias
index_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 alias
index_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 alias
index_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-index
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-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 i
th 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 i
th 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()