Page 1 of 1

Status quo as the current/reference policy

Posted: Sun Sep 07, 2025 7:17 pm
by adrihout
Hello,

I am working on a study aimed at determining farmers' preferences toward agricultural policy changes.

In my previous work, I have generally dealt with private goods, where the status quo option corresponds to opting out. In this study, however, the status quo represents the reference/actual policy scenario, and I have a question regarding this setup.

We plan to use an unlabeled design that presents policy scenarios: two changing alternatives and one status quo alternative. The design includes five dummy-coded qualitative attributes (each with three levels) and one attribute representing the subsidy farmers would receive. This subsidy attribute has five levels: -20, -10, 0, +10, +20, reflecting the fact that a policy scenario could lead either to a decrease or an increase in farmers’ subsidies in percentage terms.

My question concerns how to specify the status quo alternative. For all qualitative attributes, the status quo is represented by the reference level. However, for the subsidy attribute (SUPP), the status quo is fixed at 0, that is, the middle level.

We then generated the following design:
Design
;alts = A*, B*, SQ
;rows = 15
;eff = (mnl,d)
;model:
U(A) = b_RD50.dummy[0|0] * RD50[2,1,0]
+ b_FULL.dummy[0|0] * FULL[2,1,0]
+ b_RELH.dummy[0|0] * RELH[2,1,0]
+ b_INV75.dummy[0|0] * INV75[2,1,0]
+ b_ECOS.dummy[0|0] * ECOS[2,1,0]
+ b_SUPP * SUPP[-20,-10,0,10,20]
/
U(B) = b_RD50 * RD50[2,1,0]
+ b_FULL * FULL[2,1,0]
+ b_RELH * RELH_B[2,1,0]
+ b_INV75 * INV75[2,1,0]
+ b_ECOS * ECOS[2,1,0]
+ b_SUPP * SUPP[-20,-10,0,10,20]
/
U(SQ) = b0[0] + b_SUPPSQ * SUPPSQ[0]
$

When we run the design, we receive the following warning:

“Warning: No valid design has been found after 1000 evaluations. There may be a problem with the specification of the design. A common problem is that the choice probabilities are too extreme (close to 1 and 0), perhaps because some or all of the prior values are too large. Also, it is generally a good idea to start with a simple design (MNL, non-Bayesian), then add complexity. If you press stop, a design will be reported, which may assist in diagnosing the problem.”

I suspect this is caused by the term “SUPPSQ * SUPPSQ[0]”. Indeed, when I remove it, the warning message disappears.

May I kindly ask for your advice on which approach would be more appropriate to follow, whether, (1) to include in the design the information about the "0" status quo level (as we initially did, though it produces the warning message), or (2) to omit this information in the design and instead account for it during the model estimation phase.

Thank you very much in advance for your kind support.

Best regards,
Andreas Drichoutis

Re: Status quo as the current/reference policy

Posted: Mon Sep 08, 2025 5:23 pm
by Michiel Bliemer
Your script is almost correct, assuming that your last level for all categorical variables is the reference/base level (and hence it becomes zero in the status quo alternative).

You need to replace the parameter b_suppsq with b_supp because this is a generic parameter across all alternatives (you cannot estimate an alternative-specific parameter for an attribute with a fixed level if you also include the constant b0 because this would essentially create two constants in the same utility function).

Michiel

Re: Status quo as the current/reference policy

Posted: Mon Sep 08, 2025 11:43 pm
by adrihout
Dear Michiel,

Thank you very much for your prompt reply. Yes, in the case of the categorical variables, the last level is the reference/base level that is always equal to 0 in the status quo.

Thanks for the advice about the SUPP variable, we ran the following code and it works very well!

Design
;alts = A*, B*, SQ
;rows = 15
;eff = (mnl,d)
;model:
U(A) = b_RD50.dummy[0|0] * RD50[2,1,0]
+ b_FULL.dummy[0|0] * FULL[2,1,0]
+ b_RELH.dummy[0|0] * RELH[2,1,0]
+ b_INV75.dummy[0|0] * INV75[2,1,0]
+ b_ECOS.dummy[0|0] * ECOS[2,1,0]
+ b_SUPP * SUPP[-20,-10,0,10,20]
/
U(B) = b_RD50 * RD50[2,1,0]
+ b_FULL * FULL[2,1,0]
+ b_RELH * RELH_B[2,1,0]
+ b_INV75 * INV75[2,1,0]
+ b_ECOS * ECOS[2,1,0]
+ b_SUPP * SUPP[-20,-10,0,10,20]
/
U(SQ) = b0[0] + b_SUPP* SUPPSQ[0]
$

Best,
Andreas

Re: Status quo as the current/reference policy

Posted: Thu Sep 11, 2025 7:37 pm
by Michiel Bliemer
Just one comment; when you use zero priors for a numerical attribute in an efficient design, you will usually get comparisons between the outer and inner levels only. So in your case, for alternatives A and B, your supp attributes will have comparisons (0,0), (-10,10) and (-20,20). Simply because this is optimally efficient. But this may not be desirable.

So when using zero priors, I would recommend dummy coding ALL attributes, including numerical attributes. So your script would then become:

Code: Select all

Design
;alts = A*, B*, SQ
;rows = 15
;eff = (mnl,d)
;model:
U(A) = b_RD50.dummy[0|0] * RD50[2,1,0]
+ b_FULL.dummy[0|0] * FULL[2,1,0]
+ b_RELH.dummy[0|0] * RELH[2,1,0]
+ b_INV75.dummy[0|0] * INV75[2,1,0]
+ b_ECOS.dummy[0|0] * ECOS[2,1,0]
+ b_SUPP.dummy[0|0|0|0] * SUPP[-20,-10,10,20,0]
/
U(B) = b_RD50 * RD50
+ b_FULL * FULL
+ b_RELH * RELH
+ b_INV75 * INV75
+ b_ECOS * ECOS
+ b_SUPP * SUPP
/
U(SQ) = b0[0]
$
Alternatively, you could use the script below, which uses the modified Federov algorithm. But this algorithm does not guarantee attribute level balance. There is not much advantage in using the script below when using zero priors, but with non-zero priors it could avoid dominant alternatives also with respect to the status quo alternative.

Code: Select all

Design
;alts = A*, B*, SQ*
;rows = 15
;eff = (mnl,d)
;alg = mfederov
;require:
SQ.RD50 = 0,
SQ.FULL = 0,
SQ.RELH = 0,
SQ.INV75 = 0,
SQ.ECOS = 0,
SQ.SUPP = 0
;model:
U(A) = b_RD50.dummy[0|0] * RD50[2,1,0]
+ b_FULL.dummy[0|0] * FULL[2,1,0]
+ b_RELH.dummy[0|0] * RELH[2,1,0]
+ b_INV75.dummy[0|0] * INV75[2,1,0]
+ b_ECOS.dummy[0|0] * ECOS[2,1,0]
+ b_SUPP.dummy[0|0|0|0] * SUPP[-20,-10,0,10,20]
/
U(B) = b_RD50 * RD50
+ b_FULL * FULL
+ b_RELH * RELH
+ b_INV75 * INV75
+ b_ECOS * ECOS
+ b_SUPP * SUPP
/
U(SQ) = b0[0]
+ b_RD50 * RD50
+ b_FULL * FULL
+ b_RELH * RELH
+ b_INV75 * INV75
+ b_ECOS * ECOS
+ b_SUPP * SUPP
$
Michiel