Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #61
    Hallo Arne,
    Can you explain about minimum number of nset, how many choice set should be there.

    Comment


    • #62
      First, thank you Arne for creating this very useful tool.

      I have a question regarding dominating choice alternatives. When I run the following code 5 out of the 12 choice tasks created contain strictly dominating alternatives.

      Code:
      matrix levmat = 3,3,3
      
      genfact, levels(levmat)
      
      matrix optout = J(1,3,1)
      
      matrix b = J(1,7,0)
      
      dcreate i.x1 i.x2 i.x3, nalt(2) nset(12) fixedalt(optout) bmat(b) asc(3) 
      
      blockdes block, nblock(2)
      
      list, separator(3) abbreviate(16)
      I have two questions:

      1. I noticed from your excellent presentation from the Nordic and Baltic Stata Users Group meeting on dcreate (https://www.stata.com/meeting/nordic...way16_hole.pdf) that your created choice sets on slide 20 also contain two dominating alternatives (choice_set 3 and 6), but I wonder if it can be prevented in dcreate? (The ngene manual states that in that program identical and dominating alternatives will be excluded.)
      2. I would prefer not to include any choice sets where one alternative dominates the other. I have tested to increase the number of levels and/or reduce the number of choice sets in nset(), but dominating alternatives remain. Suggestions I have seen are to remove dominating choice sets by hand, or to by hand change levels to remove dominance. What would be your recommendation?

      Again, thanks for a great program.

      Henrik

      Comment


      • #63
        Hi Henrik,

        Thanks for the feedback

        There is no option in dcreate for preventing dominant alternatives, but you can make it less likely by using non-zero priors when generating the design. Here is an example based on the code you provided:

        Code:
        matrix levmat = 3,3,3
        
        genfact, levels(levmat)
        
        matrix optout = J(1,3,1)
        
        matrix b = 0.5,1,0.5,1,0.5,1,-1
        
        dcreate i.x1 i.x2 i.x3, nalt(2) nset(12) fixedalt(optout) bmat(b) asc(3) 
        
        blockdes block, nblock(2)
        
        list, separator(3) abbreviate(16)
        Arne

        Comment


        • #64
          Hello Arne et al.,

          It seems as thought dcreate avoids overlap of attribute levels. I have used it to create various experimental designs, and no level is ever the same across a given attribute. Attribute level overlap however discourages the use of dominant strategies by the survey taker and can render simplifying strategies unnecessary, which significantly reduces nonattendance for survey respondents. Is there a way to use dcreate and create designs where attribute levels are the same in a given choice set?

          Example dcreate choice card for a shrimp product:
          SHRIMP A SHRIMP B
          Origin China US
          Wild caught label Yes No
          Sustainable label No Yes
          Price $7/pound $9/pound
          Is it ever possible for dcreate to provide the choice card as above but with the same price? For example Shrimp A and Shrimp B would both be $9/pound.

          Thank you,
          Jane
          Last edited by Jane Harrison; 02 Jan 2020, 12:48.

          Comment


          • #65
            Hi Jane,

            dcreate does not explicitly avoid overlap of attribute levels, but a design with no overlap is often the most efficient design (assuming that respondents do not use simplifying heuristics).

            You can make dcreate generate choice sets with overlap by including interaction effects in the design, e.g.:

            Code:
            matrix levmat = 2,2,2,4
            genfact, levels(levmat)
            matrix b = J(1,15,0)
            dcreate i.x1 i.x2 i.x3 i.x4 i.x1#i.x4 i.x2#i.x4 i.x3#i.x4, nalt(2) nset(32) bmat(b)
            This approach obviously requires a larger design as there are more effects to estimate, but you can block the design into the desired number of choice sets per respondent using the blockdes command.

            I hope this helps.

            Arne

            Comment


            • #66
              Dear Arne,

              Many thanks for your commands dcreate and mixlogit in STATA. They have been really useful. I had some questions regarding labelled choice experiments. You have mentioned before that for labelled choice experiments we need to use alternative specific constants (if I have not misunderstood). But if the attribute levels are specific to certain alternatives, so that we remove impossible values of attributes for certain labelled alternatives, then is it possible to design using the dcreate command? I saw such examples in transport choice studies.

              Also do you suggest while using mixlogit for labelled choice experiments to interact the asc with attribute parameters (because potentially coefficient for each attribute might differ across labelled alternatives)?

              Is it possible to design and analyse choice experiments where one attribute is relevant for only certain labelled alternatives and not for others (for example using fuel-efficiency as an attribute for a labelled choice experiment with "cycle" vs "diesel car" vs "petrol cars", where fuel-efficieny attribute not applicable for "cycle" alternative).

              I would be really grateful if you could help me with these questions.

              Many thanks
              Archisman

              Comment


              • #67
                Hello Archisman,
                I have the same question for a similar choice experiment. Were you able to solve the problem? Or does anyone have any idea how to proceed with such a design?

                Thanks in advance.

                Anna

                Comment


                • #68
                  Dear Arne,

                  Thank you for creating the dcreate command. I am using it for my master thesis and it has been very helpful!
                  I have one question about specifying the priors for an opt-out option. I have specified priors for my other attributes, but I do not know whether the prior for my opt-out option comes first or last in matrix b and which value it should have. For now, I have put the opt-out prior last and it has the value 0. Below is the syntax

                  matrix levmat = 3,3,3
                  genfact, levels(levmat)

                  matrix optout = J(1,3,1)
                  matrix b = -0.5, -1, -0.5, -1, 0.5, 1, 0
                  matrix V = 0.1*I(7)

                  dcreate i.x1 i.x2 i.x3, nalt(3) nset(9) fixedalt(optout) asc(4) bmat(b) vmat(V) seed(112)


                  Thank your in advance.

                  Best,
                  Jamila

                  Comment


                  • #69
                    Dear Jamila,

                    Good question - the prior for the opt-out comes last, as in your current syntax, but this could have been better documented in the help file. If you do not know which prior value to use for the opt-out setting it to zero sounds reasonable.

                    Best wishes,
                    Arne

                    Comment


                    • #70
                      Dear Arne,

                      I have been asked to help some colleagues with a study based on a factorial survey design using vignettes (I knew nothing about factorial surveys until two days ago). From what I can understand in my reading DCE are slightly different but I think the basic principles of factorial surveys and DCE are similar and dcreate is also able to generate an optimum design for a factorial survey? If, for example, the survey was composed of 5 factors with levels 2,2,3,3,3 (giving 2 x 2 x 3 x 3 x 3 = 108 possible vignettes) and I had settled on 6 sets/decks each containing 18 vignettes - would the following specification approximate what I need to find the optimal design (just checking I understand this correctly)?

                      Code:
                      clear
                      matrix levmat = 2,2,3,3,3
                      genfact, levels(levmat)
                      matrix b = J(1,8,0)
                      dcreate i.x1 i.x2 i.x3 i.x4 i.x5, nalt(18) nset(6) bmat(b)
                      Each choice_set is a 'set/deck' and alt a 'vignette' in factorial survey parlance.

                      Thank you,
                      Paul

                      Comment


                      • #71
                        Hi Paul,

                        I am not very familiar with factorial surveys using vignettes, but don't think dcreate can be used to generate efficient designs for such applications. If it can it is by accident as it was not designed for that purpose. Your example assumes that you will present respondents with 6 choice occasions, and ask them to choose one alternative out of 18 on each choice occasion, which I suspect is different to the question posed to respondents in the factorial survey.

                        Arne

                        Comment


                        • #72
                          Ok thanks Arne - I'll give it some more thought then.

                          I was looking for something to help me do this in Stata as I have seen at last one published paper using what seems to be an SAS equivalent for the same purpose (https://support.sas.com/techsup/tech...10mktblock.pdf)

                          Comment


                          • #73
                            Hi Arne,

                            Thank you for creating this very useful module. It's my first time using Stata and am trying to design a DCE. However, I have an issue here that I wish to get help for.

                            Here is my command:

                            matrix levmat = 3,3,3,3,3,3,5
                            genfact, levels(levmat)
                            list, separator(2)
                            matrix b = -0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0.5,0.5,0,0,-0.5,-0.5,-0.5,-0.5
                            matrix V = I(16)
                            dcreate i.x1 i.x2 i.x3 i.x4 i.x5 i.x6 i.x7, nalt(2) nset(32) bmat(b) vmat(v)
                            evaldes i.x1 i.x2 i.x3 i.x4 i.x5 i.x6 i.x7, bmat(b)

                            The first time I used these commands in June, it worked fine. But when I tried to re-run it now, it showed this error message after the dcreate command:

                            *: 3200 conformability error
                            <istmt>: - function returned error
                            r(3200);

                            Thank you for your time!

                            Comment


                            • #74
                              Hi Alene,

                              There is a typo in your command - it should be "vmat(V)" (i.e. capital V instead of lower case).

                              Arne

                              Comment


                              • #75
                                Dear Arne,

                                Thank you for your useful dcreate module.

                                Can we design a choice experiment with this package where each option has unique attributes? For example, option one has 4 attributes (x1,x2, x3,x4) each with 3 levels. option 2 has 4 attributes (x1,x2,Z1, Z2) each with 3 levels. The values of (x3,x4) are not applicable to the second option.

                                I checked the help function and there was no explanation about the feasibility of designing this scenario. I would be grateful if you can inform me about the feasibility of this application with the module.

                                Best,
                                Alireza

                                Comment

                                Working...
                                X