Design for Nested MNL

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Design for Nested MNL

Postby NassarN » Fri Feb 18, 2022 10:53 am

Hi all


I'm trying to investigate some Nested models. So I want
- To force each choice set to propose at least 2 alternatives having the same 'Nest attribute'
Let's take for example the hotel case with Stars as nest
Design
;alts = hotel1, hotel2, hotel3, hotel4, None
;rows = 240
;block = 20
;eff = (mnl,d)
;alg = mfederov
;reject:
hotel1.stars <> hotel2.stars and hotel1.stars <> hotel3.stars and hotel1.stars <> hotel4.stars
and hotel2.stars <> hotel3.stars and hotel2.stars <> hotel4.stars and hotel3.stars <> hotel4.stars,

Such process is too slow. Is there some simplest way to build design for N-MNL?

Regards
Naji
NassarN
 
Posts: 8
Joined: Wed Feb 02, 2022 2:24 am

Re: Design for Nested MNL

Postby Michiel Bliemer » Fri Feb 18, 2022 11:12 am

I am not sure what you mean with a "nested model", do you mean "nested logit"? Ngene cannot optimise designs for the nested logit model.

From your description it looks like you want to create some attribute level overlap across alternatives. To do this in Ngene would indeed require a lot of constraints. The easiest way to do this is to create an external candidate set with allowable choice tasks that satisfy your requirements. It should not be too difficult to do this in Excel.

Step 1
Generate a random design with a large number of rows in Ngene, eg using:
;rows = 10000
;fact

Step 2
Create am external candidate set in Ngene format in Excel by copying this random design (including headers) and add a column on the left (give this column a header and fill the column with ones). In Excel, mark the rows that do not satisfy your overlap criterion and remove them from the spreadsheet. Save this spreadsheet, which contains choice tasks from which Ngene will be allowed to choose.

Step 3
Open the spreadsheet in Ngene.
Then run your syntax with the following:
;alg = mfederov(candidates = filename.xlsx)

I hope this helps.

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

Re: Design for Nested MNL

Postby NassarN » Fri Feb 18, 2022 8:57 pm

Thanks Michiel

The idea behind such overlap is to be able to estimate and test some Nested-Logit (example here : Stars as Branch)
Your approach helps avoiding invalid designs in NGene. I've also encountered time issues for this (transposing 8.10-11 manual examples)
I'm testing
;alg = mfederov(candidates = NestedModel.xlsx,stop=total(50000 iterations))
What is the 'best' levels for the number of candidates (rows in ExcelFile after removing undesired candidates, 2000 as for the default Mfederov ?) and for the number of iterations (50000 here)?

Naji
NassarN
 
Posts: 8
Joined: Wed Feb 02, 2022 2:24 am

Re: Design for Nested MNL

Postby Michiel Bliemer » Sat Feb 19, 2022 8:03 am

I generally find that using 1000 or 2000 candidates is sufficient for getting a good efficient design. Having more rows makes the algorithm much slower, although it allows it to find slightly more efficient designs. So it is a trade-off between runtime and efficiency.

I generally do not set a stopping criterion, I usually just observe whether the efficiency is still being improved and if no more efficient design is found after some time, I stop the search process. So I cannot really say what the best number of iterations would be.

Btw, nested logit is used for nesting alternatives, not for nesting attributes, so I am not exactly sure what you are trying to do but hopefully the external candidate process is useful for your use.

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


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 18 guests

cron