| compute_function {utilityFunctionTools} | R Documentation | 
Computes a continuous and smooth utility function from the given utility points
Description
Computes a continuous and smooth utility function from the given utility points
Usage
compute_function(
  x,
  y,
  ids = NULL,
  mode = 1,
  penalty_order = 4,
  lambda_max = 10000,
  current_lambda = 1,
  ndx = 20,
  deg = 6,
  verbose = 0
)
Arguments
| x | a matrix or dataframe containing the certainty equivalents (x-values of utility points) for a given participant in each use case. | 
| y | can be a vector or a matrix representing the corresponding utility values (y-values of utility points). | 
| ids | a list containing the IDs of the participants. If not given, a list with IDs from 1 to n_observations will be created. | 
| mode | an integer between 0, 1, 2 representing the three possible modes: multiple imputation, optimal classification or 'weak' classification. Default is optimal classification (1). | 
| penalty_order | highest dimension (i.e., derivative) to penalize. Must be lower than deg. | 
| lambda_max | maximum lambda used for computing the optimal lambda. It is used only in multiple imputation (mode = 0) and optimal (mode = 1). The default value is 10000. | 
| current_lambda | lambda considered in the current iteration. Only used in multiple imputation (mode = 0) to create the combinations and as actual lambda value in 'weak' classification mode (mode = 2). The default value is 1. | 
| ndx | number of intervals to partition the distance between the lowest and highest x-values of the utility points. | 
| deg | degree of the B-spline basis. Determines the degree of the function to be estimated. If deg = 2, the estimated utility function will consist of quadratic functions. | 
| verbose | shows some information while the program is running. | 
Value
A smooth and continuous utility function.
Examples
x <- matrix(c(24.60938,34.76074,78.75,81.86035,128.5156, 
              7.109375,80.4248,113.75,115.083,135.0781, 
              3.828125,7.211914,8.75,124.1064,131.7969, 
              1.640625,2.084961,8.75,36.94824,98.98438), nrow = 4, ncol = 5, byrow = TRUE)
y <- c(0.25, 0.375, 0.5, 0.625, 0.75)
compute_function(x, y, verbose = 1)