% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/VIKOR.R
\name{vikor.mvrank}
\alias{vikor.mvrank}
\alias{vikor.matrix}
\alias{vikor}
\alias{print.vikor}
\title{Rank treatments across all outcomes using the VišeKriterijumska Optimizacija
I Kompromisno Rešenje (VIKOR) multi-criteria decision analysis method}
\usage{
\method{vikor}{mvrank}(x, weights = NULL, v = 0.5, ...)

\method{vikor}{matrix}(x, weights = NULL, v = 0.5, ...)

vikor(x, ...)

\method{print}{vikor}(x, digits = 4, ...)
}
\arguments{
\item{x}{An object of class \code{\link{mvrank}} or a matrix.}

\item{weights}{Outcome weights. The weights should always sum to 1. If not
then they are standardized. If NULL, the function will assume equal outcome
weights.}

\item{v}{A scalar from 0 to 1 interpreted as the weight of the decision
making process. Following guidance from the multi-criteria decision
analysis field it is set to 0.5.}

\item{\dots}{Additional arguments (ignored).}

\item{digits}{A numeric specifying the number of digits to print the
ranking matrix Q.}
}
\value{
The function returns a 'vikor' object. This consists of three ranking lists
which are the following:
\itemize{
\item A ranking list Q referring to the ranking when balancing both each
  treatment's overall and worst performance. This is the main ranking list
  of the method. 
\item A ranking list S referring to the ranking in terms of each treatment's
  overall performance.
\item A ranking list R referring to the ranking in terms of penalising each
  treatment's worst performance.
}
In addition to the ranking lists, the function also evaluates the necessary
conditions defined by the VIKOR method and returns a message indicating the
set of compromise solutions.
}
\description{
This function employs the VišeKriterijumska Optimizacija I Kompromisno
Rešenje (VIKOR) method to analyze all outcome-specific ranking lists.
It provides both an amalgamated ranking list and guidance on
which treatments correspond to the best compromise solutions.
}
\details{
This function takes a single mandatory argument, which is either an object
of class \code{\link{mvrank}} or a matrix. It then uses the multi-criteria
decision analysis method VišeKriterijumska Optimizacija I Kompromisno
Rešenje (VIKOR) to produce an amalgamated ranking list across
all outcomes (Opricovic & Tzeng, 2004).

The standard VIKOR approach is applied when the \code{method} argument is
set to \code{"sucra"} or \code{"pBV"} in \code{\link{mvrank}}.

A fuzzy VIKOR method (Opricovic, 2011) is applied when outcome-specific
rankings are expressed in terms of median ranks and 95\% credible intervals.
The latter is possible when the \code{\link{mvrank}} object is created with
\code{method = "ranks"}.

In both cases, the final ranking list is calculated based on treatments
common across all outcomes. Treatments not present across all outcomes are
excluded internally.

Using the argument 'weights' the users can specify the weight that each
outcome should have in the decision making process. For each outcome this
argument should have a value from 0 to 1 while the sum of all outcome
weights should be 1. If the sum of all weights is not 1, then these are
internally standardize to achieve this. The standardized weight values
are returned as a message to the user. Finally, if NULL then equal weights
are assumed across all outcomes.

The argument 'v' specifies the weight of the decision making process.
The VIKOR method is a compromise programming approach that aims to balance
between each treatments overall and worst performance across all outcomes.
The balance between these two criteria is achieved using the parameter 'v'
which takes values from 0 to 1. Values close to 1 will give more weight to
the treatment's overall performance while values close to 0 will give more
weight to penalize the treatment's worst performance. The most common
choice of 'v' is typically 0.5 (default also here), thereby allowing for a
balanced decision making between treatment's overall and worst performance.
}
\examples{
# Locate file "mvnma_examples.rda" with mvnma() results
.fname <- system.file("extdata/mvnma_examples.rda", package = "mvnma")
load(.fname)

# Print the results of a bivariate network meta-analysis
mvnma12

# Rank treatments using SUCRAs
ranks12 <- mvrank(mvnma12, method = "sucra",
  small.values = c("undes", "undes"))
ranks12

# Get the best compromise solution across the efficacy outcomes
vikor(ranks12)

# Use larger weight for response than remission
vikor(ranks12, weights = c(0.6, 0.3))

}
\references{
Opricovic S, Tzeng GH (2004):
Compromise solution by MCDM methods: A comparative analysis of VIKOR and
TOPSIS.
\emph{European Journal of Operational Research},
\bold{156}, 445--55

Opricovic S (2011):
Fuzzy VIKOR with an application to water resources planning. 
\emph{Expert Systems with Applications}, 
\bold{38}, 12983--90
}
