| 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