| impute {relations} | R Documentation |
Impute relations
Description
Impute missing incidences in relations by averaging all possible completions within a specified family.
Usage
relation_impute(x, method = NULL, control = list(), ...)
Arguments
x |
an endorelation or an ensemble of endorelations. |
method |
character string specifying the method to be used (see
Details). If |
control |
named list of control arguments. Currently, only
|
... |
named list of control arguments, overriding the ones
in |
Details
Endorelations with missing elements (i.e., whose incidence is
NA) are imputed using one of the methods described as follows.
"omit"Missing incidences are replaced by zeros, i.e., the corresponding elements are removed from the graph.
"any/F"The incidences are replaced by arbitrary values suitable for family F, with possible values:
GGeneral (unrestricted) relations.
LLinear orders.
WWeak orders.
OPartial orders.
L,W, andOcan optionally be complemented by/firstor/lastto further restrict imputed elements to be placed on top or bottom of the given ordering."average/F"Computes the relation with average incidences, based on all possible completions as indicated for the
any/Fmethods. Note that these completions are not explicitly generated to compute the averages, and that the resulting relation will typically be fuzzy.
Value
If x is an ensemble or more than one solution is requested
using the n control argument: an ensemble
of endorelations. An endorelation otherwise.
Examples
## create a relation with a missing object
R <- ranking(1:2, 1:3)
print(R)
R <- as.relation(R)
## find all suitable completions within L
ens <- relation_impute(R, method = "any/L", n = "all")
lapply(ens, as.ranking)
if(require("Rgraphviz")) plot(ens)
## find 3 suitable partial orders
ens <- relation_impute(R, method = "any/O", n = 3)
lapply(ens, relation_incidence)
if(require("Rgraphviz")) plot(ens)
## compute average completion
R1 <- relation_impute(R, method = "average/O")
relation_incidence(R1)
## check correctness of averaging
R2 <- mean(relation_impute(R, "any/O", n = "all"))
stopifnot(all.equal(R1, R2))