Interpreting ASC differences as WTP for substitution between alternatives in WTP space
Posted: 27 May 2025, 01:36
Dear all,
I’m working with a choice experiment that includes two alternatives (product A and product B), plus an opt-out (no purchase) option. Each product is described by two attributes: *price* and a *binary characteristic* (e.g., a product feature that is either present or not).
We are particularly interested in assessing the *level of substitution* between products A and B. One idea we’re exploring is to estimate a mixed multinomial logit model in the WTP space, using the following specification:
apollo_beta=c(asc_A_mu = 0, asc_A_sig = 0,
asc_B_mu = 0, asc_B_sig = 0,
lambda_mu =-1, lambda_sig= 0,
char_mu = 0, char_sig = 0)
apollo_draws = list(
interDrawsType = "mlhs",
interNDraws = 1000,
interNormDraws = c("draws_asc_A","draws_asc_B",
"draws_lambda",
"draws_char")
)
apollo_randCoeff = function(apollo_beta, apollo_inputs){
randcoeff = list()
randcoeff[["asc_A"]] = asc_A_mu + _asc_A_sig * draws_asc_A
randcoeff[["asc_B"]] = asc_B_mu + _asc_B_sig * draws_asc_B
randcoeff[["lambda"]] = -exp(lambda_mu + lambda_sig * draws_lambda)
randcoeff[["char"]] = char_mu + char_sig * draws_char
return(randcoeff)
}
And utility:
V = list()
V[["pA"]] = lambda * (price1 + asc_A + char * (char1 == 1))
V[["pB"]] = lambda * (price2 + asc_B + char * (char2 == 1))
V[["optout"]] = 0
Then, we interpret the *difference between the estimated alternative-specific constants (ASCs)* for A and B as the *willingness to pay (WTP) to keep product A instead of B*, using:
r
subs = apollo_deltaMethod(model, list(operation = "diff", parName1 = "asc_A", parName2 = "asc_B"))
We’d really appreciate your thoughts on this approach:
1. *Is this a valid interpretation* in the WTP space model—i.e., treating the ASC difference as a WTP for choosing A over B, holding all else constant?
2. Are there any *caveats or identification issues* we should keep in mind when interpreting ASC differences this way?
3. Would you recommend any *alternative or complementary approaches* for quantifying substitution between A and B (e.g., cross-elasticities or marginal rates of substitution)?
Many thanks for your time and insights!
Best regards,
I’m working with a choice experiment that includes two alternatives (product A and product B), plus an opt-out (no purchase) option. Each product is described by two attributes: *price* and a *binary characteristic* (e.g., a product feature that is either present or not).
We are particularly interested in assessing the *level of substitution* between products A and B. One idea we’re exploring is to estimate a mixed multinomial logit model in the WTP space, using the following specification:
apollo_beta=c(asc_A_mu = 0, asc_A_sig = 0,
asc_B_mu = 0, asc_B_sig = 0,
lambda_mu =-1, lambda_sig= 0,
char_mu = 0, char_sig = 0)
apollo_draws = list(
interDrawsType = "mlhs",
interNDraws = 1000,
interNormDraws = c("draws_asc_A","draws_asc_B",
"draws_lambda",
"draws_char")
)
apollo_randCoeff = function(apollo_beta, apollo_inputs){
randcoeff = list()
randcoeff[["asc_A"]] = asc_A_mu + _asc_A_sig * draws_asc_A
randcoeff[["asc_B"]] = asc_B_mu + _asc_B_sig * draws_asc_B
randcoeff[["lambda"]] = -exp(lambda_mu + lambda_sig * draws_lambda)
randcoeff[["char"]] = char_mu + char_sig * draws_char
return(randcoeff)
}
And utility:
V = list()
V[["pA"]] = lambda * (price1 + asc_A + char * (char1 == 1))
V[["pB"]] = lambda * (price2 + asc_B + char * (char2 == 1))
V[["optout"]] = 0
Then, we interpret the *difference between the estimated alternative-specific constants (ASCs)* for A and B as the *willingness to pay (WTP) to keep product A instead of B*, using:
r
subs = apollo_deltaMethod(model, list(operation = "diff", parName1 = "asc_A", parName2 = "asc_B"))
We’d really appreciate your thoughts on this approach:
1. *Is this a valid interpretation* in the WTP space model—i.e., treating the ASC difference as a WTP for choosing A over B, holding all else constant?
2. Are there any *caveats or identification issues* we should keep in mind when interpreting ASC differences this way?
3. Would you recommend any *alternative or complementary approaches* for quantifying substitution between A and B (e.g., cross-elasticities or marginal rates of substitution)?
Many thanks for your time and insights!
Best regards,