Labelled Experiment with Two Status Quo

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Labelled Experiment with Two Status Quo

Postby arfawikurdhi » Wed May 22, 2019 12:38 am

Dear Prof. Bliemer, Prof. Collins, Prof. Johnr and Ngene users

I am working on a labelled experiment (4 products/alternatives) with the following properties:
- 4 alternatives (two alternatives (refurbished product brand A and B) + 2 status quo/SQ (new product brand A and B))
- 2 atributes:
- price attribute for two alternative (refurbished product) with 10 levels (25, 50, 100, 150, 200, 250, 300, 350, 400, 450)
- product condition attribute for two alternative (refurbished product) with two levels (refurbished, used)
- The two status quo have fixed price (500)

The objective is to estimate the demand function regarding the choice between the new and refurbished products and
the two different brands. I am going to fit the choice data to a latent class multinomial logit (MNL) model and to calculate
the average partworth utilities for price to each segments. I want to observe the differences between segments with respect
to sensitivity to price and the existence of a segment that has quality sensitivy (the smaller the refurbished product price,
the respondents utilities decline).

I need your advices and/or suggestions what should be considered in designing the problem in Ngene.
I am thinking of using dummy for the 9 price levels to each brand. So the two brands will have different dummy, since
the respondents may have different price sensitivity for different brand. What is the minimum choice sets?

Thank you so much in advance to the Ngene community
Arfa
arfawikurdhi
 
Posts: 7
Joined: Tue May 21, 2019 4:21 am
Location: The Netherland

Re: Labelled Experiment with Two Status Quo

Postby Michiel Bliemer » Wed May 22, 2019 11:12 am

It is difficult answering your questions without fully understanding the model that you intend to estimate. I do not understand the difference between the two status quo alternatives and I do not fully understand the attributes in each alternative. Could you please formulate your utility functions using Ngene syntax?

I think that 10 levels for price is a lot, is there a reason why you are using so many levels?

Minimum number of choice tasks depends on the number of parameters you are estimating, which should come out of your utility functions.

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

Re: Labelled Experiment with Two Status Quo

Postby arfawikurdhi » Wed May 22, 2019 1:38 pm

Below is the script of my D-efficient design:

Design
;alts= pdt1, pdt2, pdt3, pdt4
;rows=20
;eff = (mnl,d)
;model:
U(pdt1)=b1[0.05]+b2[0.1]*condition[0,1]+b3.dummy[0.001|0.0015|0.002|0.0025|0.003|0.0025|0.002|0.0015|0.001]*pricereb[450,400,350,300,250,200,150,100,50,25]/
U(pdt2)=b2*condition[0,1]+b5.dummy[0.0015|0.002|0.0025|0.003|0.0035|0.003|0.0025|0.002|0.0015]*pricereb[450,400,350,300,250,200,150,100,50,25]/
U(pdt3)=b6[0.0001]*pricenew[500]/
U(pdt4)=b7[0.0001]*pricenew[500]
$

The reason why i am using 10 prices for refurbished products because i want to observe are there exists a subset of respondents where for a decrease in price of refurbished product below a certain level does not necessarily translate into an increase in the likelihood of purchase. The respondents may be quality-conscious consumers who perceive low-priced remanufactured products as being of low quality and choose to purchase new product.

The two status quo alternative have different brands, let say Iphone and Samsung smartphone. They have the same specification and the same fixed price.

Thank you very much!
arfawikurdhi
 
Posts: 7
Joined: Tue May 21, 2019 4:21 am
Location: The Netherland

Re: Labelled Experiment with Two Status Quo

Postby Michiel Bliemer » Wed May 22, 2019 5:24 pm

So you have two brands, brand A and brand B.
The brand is an attribute of the alternative and its value is represented through the alternative-specific constant b1.
You did not specify brand value for pdt3 and pdt4, so if pdt3 is also brand A then it needs to have the same constant b1, i.e. b1+b6*pricenew.

You are estimating 23 coefficients with 4 alternatives, which means that you need at minimum 8 choice tasks to satisfy the degrees of freedom (number of choice tasks * (alternatives - 1) should be great than or equal to the number of coefficients you are estimating). Further, you need each attribute level to appear at least once for your dummy coded coefficients to be estimable, so for that you need at least 10.

I was able to run the syntax with 11 choice tasks, see below. However, this will not give you enough variation in your data and the D-error will be quite high, so your suggestion of 20 sounds reasonable.

Design
;alts= pdt1, pdt2, pdt3, pdt4
;rows=11
;eff = (mnl,d)
;model:
U(pdt1)=b1[0.05]+b2[0.1]*condition[0,1]+b3.dummy[0.001|0.0015|0.002|0.0025|0.003|0.0025|0.002|0.0015|0.001]*pricereb[450,400,350,300,250,200,150,100,50,25]/
U(pdt2)=b2*condition[0,1]+b5.dummy[0.0015|0.002|0.0025|0.003|0.0035|0.003|0.0025|0.002|0.0015]*pricereb[450,400,350,300,250,200,150,100,50,25]/
U(pdt3)=b1+b6[0.0001]*pricenew[500]/
U(pdt4)=b7[0.0001]*pricenew[500]
$

Note that estimating dummy coded variables will not be an easy, you will likely need a very large sample size to get so many dummy coefficients statistically significant. I think that it is better to use a continuous utility function and not a discrete one since cost is a continuous variable. You can still estimate nonlinear effects, e.g. you can include cost in model estimation as b*log(cost) or a*cost + b*cost^2 where you estimate a quadratic relationship. Ngene does not know log or squares, but you can simply take a nonlinear transportation of the price values, i.e. if you want to use b3*ln(price) then you use pricereb[3.21, 3.91, 4.60, 5.01, ...], where ln(25)=3.21, etc. This would significantly reduce the number of parameters that you are estimating and you can still estimate many different functional relationships afterwards in model estimation, you are not bound to the specific nonlinear shape you use for your design in Ngene.

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

Re: Labelled Experiment with Two Status Quo

Postby arfawikurdhi » Thu May 23, 2019 1:22 am

Dear Prof. Bliemer

Thank you so much for your willingness to help and let me learn from you. I am using model estimation
a*discount + b*discount^2
to estimate a quadratic relationship.

I am working on a labelled experiment (4 products/alternatives) with the following properties:
- 4 alternatives (two alternatives (refurbished product brand A and B) + 2 status quo/SQ (new product brand A and B))
- 2 atributes:
- discount attribute (price discount of new product price) for two alternative (refurbished product) with 10 levels (10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 95%)
- product condition attribute for two alternative (refurbished product) with two levels (refurbished, used)
- The two status quo have fixed price (500)

Here is the new syntax

Design
;alts= pdt1, pdt2, pdt3, pdt4
;rows=16
;eff = (mnl,d)
;model:
U(pdt1)=b1[0.5]+b2[2.5]*condition[0,1]+b31[-1.5]*discountreb[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.95]*discountreb[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.95]+b32[1.2]*discountreb[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.95]/
U(pdt2)=b2*condition[0,1]+b41[-1.5]*discountreb*discountreb+b42[1.75]*discountreb/
U(pdt3)=b1+b6[0.004]*pricenew[500]/
U(pdt4)=b7[0.005]*pricenew[500]
$

Why i cannot add different constant (let say b5) on product 2 and 4?
Error: The model has constants specified for all alternatives.

The objective: I want to fit the choice data to latent class MNL and to estimate partworth utilities for each segment. let say there are 4 segments:
PARTWORTH UTILITIES
-------------------------------------------segment 1---segment 2---segment 3---segment 4
Product 1 (Brand A Refurbished)
Product 2 (Brand B Refurbished)
Product 3 (Brand A New)
Product 4 (Brand B New)
Discount = 10%
Discount = 20%
Discount = 30%
Discount = 40%
Discount = 50%
Discount = 60%
Discount = 70%
Discount = 80%
Discount = 90%
Discount = 95%
Condition = Refurbished
Condition = Used

Can the design (including the number of choice sets) be used to achieve the objective?
Thank you very much

King regards
Arfa
arfawikurdhi
 
Posts: 7
Joined: Tue May 21, 2019 4:21 am
Location: The Netherland

Re: Labelled Experiment with Two Status Quo

Postby Michiel Bliemer » Thu May 23, 2019 9:52 am

The utility functions would give you conditional market shares between two brands only and between refurbished. For unconditional market shares you would need to add all brands and also an opt-out alternative.

You cannot add constants to all utility functions since one alternative since utilities are relative, so utilities 1,2,3,4 would give the same result are utilities 5,6,7,8, therefore one or more alternatives need to be normalised. Since pricenew is also a constant, you cannot add too many constants since they will not all be identifiable. I was only able to add in total 2 alternative-specific constants (ASCs) to your utility function as otherwise it is overdefined.

Further, I think that you need to use an interaction term between discount and price.

Finally, I suggest using ;rows multiples of 10 so you can keep attribute level balance. You can add ;block to create a blocking column.

I can help you with Ngene syntax questions but the utility functions you will need to define yourself since there are many ways of formulating them for each study. You need to make sure that all coefficients are identifiable. There are some good books and courses on choice modelling if you feel unsure.

Below the syntax that may help you further. Note that I have removed all priors since they should be chosen with care (and preferably come from a pilot study):

Code: Select all
Design
;alts = brandA_refurb, brandB_refurb, brandA_new, brandB_new
;rows = 20
;block = 2
;eff = (mnl,d)
;model:
U(brandA_refurb) = ascA_refurb
                 + condition*condition[0,1]
                 + discount_linearA*discountreb[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.95]*pricenew[500]
                 + discount_quadraticA*discountreb*discountreb*pricenew /
U(brandB_refurb) = condition*condition
                 + discount_linearB*discountreb*pricenew       
                 + discount_quadraticB*discountreb*discountreb*pricenew /
U(brandA_new)    = ascA_new
                   price*pricenew/
U(brandB_new)    = price*pricenew
$
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: Labelled Experiment with Two Status Quo

Postby arfawikurdhi » Tue Jun 25, 2019 9:05 pm

Dear Prof. Bliemer

I do not understand the following part

U(brandA_new) = ascA_new
price*pricenew/

Should it be "ascA_new+price*pricenew/"?

So the parameters to be estimated are:
ascA_refurb
condition
discount_linearA
discount_quadraticA
discount_linearB
discount_quadraticB
ascA_new
Is this correct? Thank you very much in advance.

Thank you.
arfawikurdhi
 
Posts: 7
Joined: Tue May 21, 2019 4:21 am
Location: The Netherland

Re: Labelled Experiment with Two Status Quo

Postby Michiel Bliemer » Wed Jun 26, 2019 9:21 am

Yes there should be a +, sorry.
Yes those parameters are estimated, including "price". You can see all parameters mentioned when you open the design and look at the row for "Prior". Note that constants will only show up if you add ;con to the syntax, which also optimises on the constants, which I think you want to do.

So the new syntax would become:
Code: Select all
Design
;alts = brandA_refurb, brandB_refurb, brandA_new, brandB_new
;rows = 20
;block = 2
;eff = (mnl,d)
;con
;model:
U(brandA_refurb) = ascA_refurb
                 + condition*condition[0,1]
                 + discount_linearA*discountreb[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.95]*pricenew[500]
                 + discount_quadraticA*discountreb*discountreb*pricenew /
U(brandB_refurb) = condition*condition
                 + discount_linearB*discountreb*pricenew       
                 + discount_quadraticB*discountreb*discountreb*pricenew /
U(brandA_new)    = ascA_new
                 + price*pricenew/
U(brandB_new)    = price*pricenew
$


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

Re: Labelled Experiment with Two Status Quo

Postby arfawikurdhi » Mon Aug 05, 2019 7:20 pm

Dear Prof. Bliemer

For different survey, I would like to generate choice sets with different new product prices.
Could you please take a look at the following syntax.

Design
;alts = brandA_refurb, brandB_refurb, brandA_new, brandB_new
;rows = 20
;block = 2
;eff = (mnl,d)
;con
;model:
U(brandA_refurb) = ascA_refurb
+ condition*condition[0,1]
+ discount_linearA*discountreb[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.95]*pricenewA[600]
+ discount_quadraticA*discountreb*discountreb*pricenewA /
U(brandB_refurb) = condition*condition
+ discount_linearB*discountreb*pricenewB[480]
+ discount_quadraticB*discountreb*discountreb*pricenewB /
U(brandA_new) = ascA_new
+ priceA*pricenewA/
U(brandB_new) = priceB*pricenewB
$

Thank you very much for your help.

Kindly regards,
Arfa
arfawikurdhi
 
Posts: 7
Joined: Tue May 21, 2019 4:21 am
Location: The Netherland

Re: Labelled Experiment with Two Status Quo

Postby Michiel Bliemer » Mon Aug 05, 2019 8:33 pm

The parameters in the utility functions that you specified cannot be estimated, some of the parameters are not identifiable. This is not an issue with Ngene but rather with your utility specification. Please make sure that you formulate an identifiable choice model (I will have to refer to literature on this, I am no expert).

If Ngene returns a finite D-error, then your model is identifiable. If you run your syntax, Ngene gives an Undefined (infinite) D-error. In your case, this is due to the fact that ascA_new is a constant, but also priceA*pricenewA is a constant. You can see that there is an issue with estimating both ascA_new and priceA by looking at the AVC matrix of the design, which shows you that both parameters have essentially infinite variances.

Therefore, you will need to remove alternative-specific constant ascA_new. This will lead to an identifiable model again, but you will have to verify whether this model makes behavioural sense and whether it answers your research questions, I cannot answer these questions for you.

Best wishes,
Michiel
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Next

Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 5 guests

cron