linearmdcevFit

Purpose

Estimates parameters for the Multiple Discrete-Continuous Extreme Value (MDCEV) model using linear utility for the outside good. Supports input data and specification strings for consumption quantities and explanatory variables.

Format

beta_hat = linearMDCEVFit(fname, dvunordname, davunordname, ivmt, ivgt[, weight_var, varnam, varngam])
Parameters:
  • fname (string) – Path to the dataset.
  • dvunordname (string array) – Labels of dependent variables (consumption quantities). Must include the outside good as the first entry.
  • davunordname (string or string array) – Labels of price variables. Set to "none" if there is no price variation.
  • ivmt (string matrix) – Specification of independent variables (baseline utilities) for each alternative. Each row corresponds to an alternative, and each column to a variable.
  • ivgt (string matrix) – Specification of independent variables for translation (satiation) parameters for each alternative.
  • weight_var (string, default = "uno") – Optional input. Label of the weight variable in the dataset. If not provided, all observations are treated as equally weighted.
  • varnam (string vector, default = auto-generated from dvunordname and ivmt) – Optional input. Names of variables in the baseline utility specification.
  • varngam (string vector, default = auto-generated from dvunordname and ivgt) – Optional input. Names of variables in the translation specification.
Returns:

beta_hat (column vector) – Estimated model coefficients including baseline utility, translation, and scale parameters.

Remarks

  • This function supports weighted estimation if a column name is passed for weights.
  • The first good is treated as the outside good and normalized accordingly.
  • Internally, the model uses two maximum likelihood steps to first estimate and then refine the scale parameter.
  • Parameter names are optionally passed or auto-generated using variable specifications.

Examples

Estimate an MDCEV model with linear utility using tourism expenditure data:

// Set up the workspace
new;
cls;

// Load the libraries
library bhatlib, maxlik;

// Specify the dataset file
fname = __FILE_DIR $+ "WorkshopData_ToursimExp_rev.csv";

// Specify the dependent variables alternatives
string dvunordname = { "Transp" "Accomod" "FandB" "Shp" "Recr" };

// Specify avaialabaility restrictions
davunordname = "none";

/*
** Specify independent variables for baseline utility
** This string should contain:
**   - One row for each alternative
**   - One column for each independnet variable variable
*/
string ivmt = {
    "sero" "sero" "sero" "sero" "sero" "sero" "sero" "sero" "sero" "sero",
    "uno"  "sero" "sero" "sero" "urban" "sero" "sero" "sero" "stlt3" "st410",
    "sero" "uno"  "sero" "sero" "sero" "urban" "sero" "sero" "sero" "sero",
    "sero" "sero" "uno"  "sero" "sero" "sero" "urban" "sero" "sero" "sero",
    "sero" "sero" "sero" "uno"  "sero" "sero" "sero" "urban" "sero" "sero"
};

/*
** Specify independent variables for translation
*/
string ivgt = {
    "uno"  "sero" "sero" "sero" "sero" "sero" "sero" "sero" "sero" "sero" "sero" "sero" "sero",
    "sero" "uno"  "sero" "sero" "sero" "urban" "sero" "sero" "stlt3" "st410" "sero" "sero" "sero",
    "sero" "sero" "uno"  "sero" "sero" "sero" "urban" "sero" "sero" "sero"  "b51q11" "sero" "sero",
    "sero" "sero" "sero" "uno"  "sero" "sero" "sero" "urban" "sero" "sero" "sero"  "b51q11" "sero",
    "sero" "sero" "sero" "sero" "uno"  "sero" "sero" "sero" "sero" "sero" "sero"  "sero"  "b51q11"
};

// Estimate the model
beta_hat = linearMDCEVFit(fname, dvunordname, davunordname, ivmt, ivgt);

Source

bhatlib.src