Implicit Partial Profile Designs

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Implicit Partial Profile Designs

Postby Jack H » Mon Jan 08, 2024 1:53 am

Hi Michiel and Ngene team,

I'm designing a partial profile choice experiment in Ngene and trying to generate an implicit partial profile design where only 7 of the 10 total attributes are shown to respondents (i.e. the other three attributes are omitted). I used the spreadsheet Michiel previously provided on this forum to generate the candidate set and added a 0 level to each attribute.

This is the syntax:

Design
;alts = CountryA*, CountryB*
;rows = 12
;eff = (mnl,d)
;alg = mfederov(candidates = Implicit_Aid_10.csv)
;model:
U(CountryA) = b1 * size[0,1,2,3,4] +
b2 * reason[0,1,2,3,4] +
b3 * condition[0,1,2] +
b4 * sex[0,1,2] +
b5 * age[0,1,2,3,4] +
b6 * aidamount[0,1,2,3] +
b7 * aidtype[0,1,2,3.4] +
b8 * effectiveness[0,1,2,3,4] +
b9 * cost[0,1,2,3,4] +
b10 * flex[0,1,2,3] /
U(CountryB) = b1 * size +
b2 * reason +
b3 * condition +
b4 * sex +
b5 * age +
b6 * aidamount +
b7 * aidtype +
b8 * effectiveness +
b9 * cost +
b10 * flex
$

My questions are:

1. Should I have added a zero as a level for each attribute, or should I just ensure that the attributes start at zero. For example, our attribute size has four levels so I added a zero, but re-reading the manual it looks like I should just include four levels and ensure that it begins at zero (which would be change the above levels for size to [0,1,2,3] in the above syntax.

2. I cannot seem to generate a design output that merges the cells with the same levels (like with the 'number of stars', 'wifi included', and 'pool available' levels in the top figure of Figure 8.23 in the manual). I understand that the syntax above is aiming for implicit partial profiles- but I do not understand how to generate these explicit partial profiles. Are you able to provide any guidance?

3. In trying to generate implicit partial profiles, the above syntax follows what is included on p. 177 of the manual. However, the output still shows all 10 attributes, rather than the 7 that I want it to. Is there a way to edit the syntax (or associated candidate set) so that the output appears like Figure 8.26 in the manual?

I really appreciate your help.

Jack
Jack H
 
Posts: 2
Joined: Wed Nov 29, 2023 2:15 pm

Re: Implicit Partial Profile Designs

Postby Michiel Bliemer » Mon Jan 08, 2024 9:14 am

First of all, if your attributes are categorical, you will need to use dummy or effects coding. For example, b3.dummy[0|0] * condition[1,2,0], where 0 is the base level. With dummy coded variables, you would be estimating many more parameters and hence the number of rows in the design needs to increase.

To answer your questions, partial profiles are essentially profiles where one or more attributes have overlapping attribute levels. In your case, you would ensure that 3 out of 10 attributes have overlapping levels in your candidate set. This means that you do NOT have to introduce an additional level in your design, you should merely ensure overlap. So instead of adding a level 0, you can use any levels, even [1,2,3,4]. For an implicit partial profile design, you could use the base level in dummy coding to indicate overlap with categorical variables, and you could include an additional level of 0 for numerical attributes and use this to indicate overlap. But you should only add a 0 level for numerical variables, never for categorical variables, as in the latter case it would change the number of parameters you are estimating.

With explicit partial profiles, you still show the overlapping levels. With implicit partial profiles, you omit the overlapping attributes. Figures 8.23 and 8.26 illustrate how you could show the choice tasks in the survey instrument, e.g. in SurveyEngine, Qualtrics, etc. Ngene is only used to generate the design with overlapping attributes. For example, the way I implement an implicit partial profile design in SurveyEngine is as follows: For each attribute, I create an additional level, say level 5, and give it an empty field. Then each time I see overlapping attribute levels in the design, I replace their levels with 5. Then in the choice tasks the attribute levels are shown as empty as in Figure 8.26. To show choice tasks as in Figure 8.23, you may need to pay SurveyEngine or Qualtrics to do a bit of Javascript programming. What SurveyEngine also allows you to do is to change the colour of attribute levels when they are overlapping. So instead of merging them into a single cell, you could colour them gray. This is what I generally do with explicit partial profile designs.

So to summarise, you first generate your design, in which some attribute will have overlap.
Then you transfer this design into your survey instrument, which is where you will format what the choice tasks look like. With implicit partial profiles, you simply create an additional level in the survey instrument that shows an empty field and manually replace the overlapping levels in the design with the number of this additional level. With explicit partial profiles, you keep the design as is, but you can automatically show levels in gray (or another colour) when they are overlapping.

Michiel
Michiel Bliemer
 
Posts: 1730
Joined: Tue Mar 31, 2009 4:13 pm

Re: Implicit Partial Profile Designs

Postby Jack H » Thu Jan 11, 2024 10:11 pm

Thanks Michiel- I appreciate your detailed reply. I understand that the formatting of the questions is a post-design issue.

You are correct that my attributes are categorical, so I have introduced dummy coding in the following syntax and removed the zeros I had added from the utility functions and the candidate set. However, when I try to run the syntax, Ngene seems to crash. Note I do not yet have priors, and have adjusted the degrees of freedom from 12 to 24 as required by Ngene.

Design
;alts = CountryA*, CountryB*
;rows = 24
;eff = (mnl,d)
;alg = mfederov(candidates = Implicit_Aid_10.csv)
;model:
U(CountryA) = b1.dummy[0|0|0] * size[1,2,3,4] +
b2.dummy[0|0|0] * reason[1,2,3,4] +
b3.dummy[0] * condition[1,2] +
b4.dummy[0] * sex[1,2] +
b5.dummy[0|0|0] * age[1,2,3,4] +
b6.dummy[0|0] * aidamount[1,2,3] +
b7.dummy[0|0|0] * aidtype[1,2,3,4] +
b8.dummy[0|0|0] * effectiveness[1,2,3,4] +
b9.dummy[0|0|0] * cost[1,2,3,4] +
b10.dummy[0|0] * flex[1,2,3] /
U(CountryB) = b1 * size +
b2 * reason +
b3 * condition +
b4 * sex +
b5 * age +
b6 * aidamount +
b7 * aidtype +
b8 * effectiveness +
b9 * cost +
b10 * flex
$

Are you able to advise where I might be going wrong?

Thanks,

Jack
Jack H
 
Posts: 2
Joined: Wed Nov 29, 2023 2:15 pm

Re: Implicit Partial Profile Designs

Postby Michiel Bliemer » Fri Jan 12, 2024 9:16 am

First of all, 24 rows is the absolute minimum you need since you have 24 parameters. In practice, 24 rows is not enough to reliably estimate so many parameters, I suggest you use at least 48 rows in your design. You can always block the design or randomly choose a subset to show to each respondent.

The script runs fine without the candidate set, so the issue seems to be with your candidate set. Please make sure that all attribute levels appear in your candidate set, so for size you need that levels 1, 2, 3, and 4 all appear at sufficient levels in your design. Further, please make sure that no other levels appear in your design, so a value of 0 would cause issues because it is not an allowable level in the utility function.

Michiel
Michiel Bliemer
 
Posts: 1730
Joined: Tue Mar 31, 2009 4:13 pm


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 36 guests