Designing an experiment design with the support.CEs package: the first design (1)

Many of us apply discrete choice experiments (CE) to value non-market amenities. A crucial part of implementing a choice experiment is the design of the experiment itself. Today I will explore the functions made available by Aizaki (2012) to create a CE design.

Let me suppose that I am to implement a experimental design similar to Duran et al (2015), who implemented a CE about maritime cultural heritage. Duran et al (2015)’s experiment includes six attributes related with maritime cultural heritage with the following levels:

Attribute nameAttribute levels
Fishers’ knowledgeNumber of licenses for exclusive artisanal fishing reserves: 300, 600, 900
Fishing architectureAction to restore architecture in neighbourhoods: 5%, 40%, 75%
Traditional boatsNumber of councils with repaired traditional boats: 0, 37, 75
Fishers’ folkloreNumber of annual folklore festivals: 0, 1, 3
Other traditional knowledgePlaces for workshops for the public (places/visits): 50/0, 100/2500, 150/5000
Cost15, 30, 45, 60, 75, 90

I will use the same attributes and attribute levels.

After deciding on the attributes to be featured in a CE and their levels, we need to develop an experiment design which yields the most (statistical) information possible. By experimental design I mean the combination of attribute levels in alternatives that can be compared in one choice card. Making sure we have a good experimental design means that we get a lot of information from the way people make choices by choosing one alternative over another (Mariel et al., 2021). Information in the statistical sense means precision (i.e. narrow confidence intervals of the attribute parameters).

The most commonly used efficiency measure is to aim for a D-optimal design, i.e. so that “attributes that are common across alternatives are not allowed to take the same level in the design” (Mariel et al., 2021). The goal is to minimize the D-error (determinant of the matrix of the second-order derivatives of the log-likelihood function).

A widely used software for experimental designs in NGENE, but using this software comes at a high cost. So instead I want to explore how well the Aizaki (2012) performs, since this is a blog dedicated to R instead of NGENE. As far as I understand, Aizaki (2012) does not allow for D-optimal designs, but it is worth exploring what it can do.

To design choice experiments, Aizaki (2012) prepared three methods: the rotation and mix-and-match methods which create unlabeled CE designs, and the LMA methods for labeled CE designs. I will focus on unlabeled CE designs for now.

These methods’ functions have six arguments: attribute.names, candidate.array, nalternatives, nblocks, row.renames and randomize. attribute.names is fairly self-explanatory: it is a list of names of attributes and level. It is a way of defining the first attribute table I displayed in R.

attribute.names <- list(FISH_KNOW = c("300", "600", "900"), 
                        FISH_ARCH = c("5%", "40%", "75%"), 
                        TRAD_BOAT = c("0", "37", "75"),
                        FISH_FOLK = c("0","1","3"),
                        OTHE_KNOW = c("50/0", "100/2500", "150/5000"),
                        COST = c("15", "30", "45", "60", "75", "90"))

The nalternatives option defines the number of alternatives in a choice set. Let us suppose we want two alternatives and an opt-out in a choice card. The opt-out does not count when we define the number of alternatives, so we set it equal to two:

nalternatives = 2

The number of blocks is the subsets of CE questions in a CE survey. For now, I set this equal to 1:

nblocks = 1

When using the mix-and-match method, we set the argument randomize to TRUE (default), and FALSE when we implement instead the rotation method.

randomize = TRUE 

These arguments are enough for now to run the first experimental design. The code of design_1 is:

design_1 <- rotation.design(attribute.names = list(FISH_KNOW = c("300", "600", "900"), 
                                                    FISH_ARCH = c("5%", "40%", "75%"), 
                                                    TRAD_BOAT = c("0", "37", "75"),
                                                    FISH_FOLK = c("0","1","3"),
                                                    OTHE_KNOW = c("50/0", "100/2500", "150/5000"),
                                                    COST = c("15", "30", "45", "60", "75", "90")),
                            nalternatives = 2 ,
                            nblocks = 1 ,
                            randomize = TRUE )

This code yields the following output:

> design_1

Choice sets:
alternative 1 in each choice set
   BLOCK QES ALT FISH_KNOW FISH_ARCH TRAD_BOAT FISH_FOLK OTHE_KNOW COST
1      1   1   1       300       75%        37         3  100/2500   75
2      1   2   1       900       40%         0         1      50/0   75
3      1   3   1       600       75%         0         1  150/5000   60
4      1   4   1       600        5%         0         3  100/2500   90
5      1   5   1       300        5%        37         1  150/5000   30
6      1   6   1       600       40%        37         1  100/2500   15
7      1   7   1       600        5%        75         0  150/5000   75
8      1   8   1       300       40%         0         3  150/5000   45
9      1   9   1       300       75%        75         1      50/0   90
10     1  10   1       600       75%        37         0      50/0   45
11     1  11   1       900       40%        37         0  150/5000   90
12     1  12   1       900        5%        37         3      50/0   60
13     1  13   1       300       40%        75         0  100/2500   60
14     1  14   1       900       75%        75         3  150/5000   15
15     1  15   1       300        5%         0         0      50/0   15
16     1  16   1       900        5%        75         1  100/2500   45
17     1  17   1       600       40%        75         3      50/0   30
18     1  18   1       900       75%         0         0  100/2500   30

alternative 2 in each choice set
   BLOCK QES ALT FISH_KNOW FISH_ARCH TRAD_BOAT FISH_FOLK OTHE_KNOW COST
1      1   1   2       900       40%         0         1      50/0   90
2      1   2   2       600        5%         0         3  100/2500   15
3      1   3   2       600       40%        75         3      50/0   45
4      1   4   2       300        5%        37         1  150/5000   45
5      1   5   2       300        5%         0         0      50/0   30
6      1   6   2       600       40%        37         1  100/2500   30
7      1   7   2       300       40%         0         3  150/5000   60
8      1   8   2       600       75%         0         1  150/5000   75
9      1   9   2       600       75%        37         0      50/0   60
10     1  10   2       600        5%        75         0  150/5000   90
11     1  11   2       900       75%        75         3  150/5000   30
12     1  12   2       300       75%        37         3  100/2500   90
13     1  13   2       300       75%        75         1      50/0   15
14     1  14   2       900       75%         0         0  100/2500   45
15     1  15   2       900        5%        75         1  100/2500   60
16     1  16   2       900        5%        37         3      50/0   75
17     1  17   2       300       40%        75         0  100/2500   75
18     1  18   2       900       40%        37         0  150/5000   15

Candidate design:
   A B C D E F
1  1 2 3 1 2 4
2  1 1 2 2 3 2
3  2 1 1 3 2 6
4  2 3 1 2 3 4
5  3 2 1 2 1 5
6  2 1 3 1 3 5
7  3 3 1 1 2 2
8  3 2 2 1 3 6
9  3 1 2 3 1 4
10 1 2 1 3 3 3
11 1 1 1 1 1 1
12 3 3 3 3 3 1
13 1 3 2 3 2 5
14 1 3 3 2 1 6
15 2 2 2 2 2 1
16 2 2 3 3 1 2
17 3 1 3 2 2 3
18 2 3 2 1 1 3
class=design, type= oa 

Design information:
number of blocks = 1 
number of questions per block = 18 
number of alternatives per choice set = 2 
number of attributes per alternative = 6 

According to this design, the CE survey would need 18 choice sets. The first part of the code describes how alternative one varies in each choice set, and the second part of the output how alternative 2 varies. For example, in the 9th choice set, the choice card would look like this:

Alternative 1Alternative 2Status quo
300 licenses600 licenses
75% action75% action
75 councils37 councils
1 festival3 festivals
50 places/0 visits50 places/0 visits
90 EUR60 EURNo payment

The respondent is asked to make a choice among these options.

This is out first simple design. We still have to use this package to transform this design into choice cards, as well as improving the design. I will come back to this package and explore other features in future blog posts.

References:

Aizaki, H. (2012). Basic functions for supporting an implementation of choice experiments in R. Journal of statistical software50, 1-24.

ChoiceMetrics (2012). Ngene 1.2 User Manual & Reference Guide, Australia.

Durán, R., Farizo, B. A., & Vázquez, M. X. (2015). Conservation of maritime cultural heritage: A discrete choice experiment in a European Atlantic Region. Marine Policy51, 356-365.

Mariel, P., Hoyos, D., Meyerhoff, J., Czajkowski, M., Dekker, T., Glenk, K., … & Thiene, M. (2021). Environmental valuation with discrete choice experiments: Guidance on design, implementation and data analysis (p. 129). Springer Nature.

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s