FOD {parsec} | R Documentation |
Fuzzy First Order Domninance analysis on partial orders
Description
The function FOD
performs the Fuzzy First Order Dominance analysis described in Fattore and Arcagni (forthcoming).
Usage
FFOD(profiles, ...)
## S3 method for class 'wprof'
FFOD(profiles,
distributions = as.data.frame(profiles$freq),
lambda = do.call(
getlambda, as.list(names(profiles$profiles))
),
alpha = NULL, ...
)
Arguments
profiles |
an object of class |
distributions |
a |
lambda |
object of class |
alpha |
vector of values to cut the |
... |
any of above. |
Details
The function requires the set of profiles, through the object profiles
of class wprof
, and the corresponding frequencies, which can be defined by the argument distributions
of class data.frame
.
Notice that a warning is provided if the rownames
of the distributions do not match the rownamens
of the profiles.
Through poset lambda
, it is possible to provide (ordinal) information on the relative importance of the indicators in the multi-indicator system.
Value
An object of class FODposet
containing:
delta |
matrix of the overall dominance degrees. |
mintr.delta |
matrix of the min-transitive closure of matrix |
global.approx |
L1 distance between |
global.approx.corr |
L1 distance between |
cell.approx |
matrix of absolute differences between the elements of |
posets.ind |
|
eqv.classes |
list of boolean matrices specifying, for each alpha-cut, the equivalence classes of the input distributions. Equivalence classes are reported by rows and the initial distributions by columns. If element ij of the matrix is |
covers |
list of objects of class |
Author(s)
Fattore M., Arcagni A.
References
Fattore M., Arcagni A. (forthcoming), F-FOD: Fuzzy First Order Dominance analysis and populations ranking over ordinal multi-indicator systems.
Examples
v1 <- as.ordered(c("a", "b", "c", "d"))
v2 <- 1:3
prof <- var2prof(varmod = list(v1 = as.ordered(c("a", "b", "c", "d")), v2 = 1:3))
np <- nrow(prof$profiles)
k <- 10 # number of populations
set.seed(0)
populations <- as.data.frame(lapply(1:k, function(x) round(runif(np)*100)))
rownames(populations) <- rownames(prof$profiles)
names(populations) <- paste0("P", 1:k)
prof
populations
res <- FFOD(profiles = prof, distributions = populations)
res