Learn R Programming

parsec (version 1.2.0)

FOD: Fuzzy First Order Domninance analysis through partial orders

Description

The function FOD provide the Fuzzy First Order Dominance described in Fattore and Arcagni (forthcoming).

Usage

FFOD(profiles, ...)
# S3 method for wprof
FFOD(profiles,
    distributions = as.data.frame(profiles$freq),
    lambda = do.call(
        getlambda, as.list(names(profiles$profiles))
    ), ...
)

Arguments

profiles

an object of class wprof.

distributions

a data.frame of frequencies/weights where the columns correspond to the different distributions and the rows the profiles. The profiles have to be ordered as same as in profiles.

lambda

object of class incidence describing a partial order of the importance of the indicators. By default all the indicators are considered incomparable.

any of above.

Value

An object of class FODposet containing:

delta

matrix of the overall dominance degrees.

mintr.delta

matrix of the min-transitive fuzzy relation.

global.approx

mean relative variation of the min-transitive closure from the dominance degrees.

global.approx.corr

mean relative variation of the min-transitive closure from the dominance degrees, corrected without considering the diagonals of the matrices.

cell.approx

matrix of absolute variations between the dominance degrees matrix and the min-transitive fuzzy relation.

posets.ind

data.frame to analyse the partial orders generated from the min-transitive fuzzy relation with different alpha-cuts. For each poset are provided: the cardinality, the number comparabilities, the number of incomparabilities and their ci.ratio.

eqv.classes

list of boolean matrices indicating for each alpha-cut how the initial distributions are grouped. Groups are reported by rows and the initial distributions by columns. If the element of the matrix is TRUE then the distribution of the corresponding column is contained in the group of the corresponding row.

covers

list of objects of class cover representing the cover matrices of the poset generated by each alpha-cut.

Details

The function requires the profiles structure through the object profiles of class wprof. Moreover it is necessary to provide the frequency distributions of the profiles. They can be defined by the argument distributions of class data.frame.

Note that the rownames of the distributions match the rownamens of the profiles. If not, a warning is provided that suggest to control if the order of the frequencies correspond to the profiles one.

Through the object lambda it is possible to define a structure of importance of the indicators that compose the profiles.

References

Fattore M., Arcagni A. (forthcoming), F-FOD: Fuzzy First Order Dominance analysis and populations ranking over ordinal multi-indicator systems

Examples

Run this code
# NOT RUN {
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
# }

Run the code above in your browser using DataLab