Preventing Dominant Alternatives and MFederov Algorithm

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Preventing Dominant Alternatives and MFederov Algorithm

Postby acanakci » Wed Oct 16, 2024 9:10 pm

Hello,

When I add the line of;alg = mfederov to the following code, I cannot get a reasonable MNL D-Error value. Consequently, I get the following error: "The number of rows specified in the ';rows' property is greater than the size of the full factorial, which has 0 rows"; however, I get a reasonable MNL D-Error value without such an error when I do not add such a line (;alg = mfederov). Is there a default algorithm running when I do not specify it as mfederov?

I also wonder whether there is an eligible way of using continuous attributes in a DCE setting.

Code: Select all
Design
;alts = alt1*, alt2*
;rows = 100
;eff = (mnl, d)
;block = 20
;model:
U(Alt1) = b1.dummy[0.00001] * GuvenlikEkipmani[0,1] +
          b2.dummy[0.00001] * HavaDurumu[0,1] +
          b3.dummy[0.00001|0.00001] * TrafikYogunlugu[0,1,2] +
          b4.dummy[0.00001|0.00001] * Sigorta[0,1,2] +
          b5.dummy[0.00001] * DolaptanDolaba[0,1] +
          b6.dummy[0.00001|0.00001|0.00001] * CalismaSaatleri[0,1,2,3] +
          b7[0.00001] * BisikletYoluOrani[0:1] +
          b8[0.00001] * PaketBasinaMaliyet[40:160] +
          b9[0.00001] * KMBasinaMaliyet[20:60] +
          i1[0.00001] * GuvenlikEkipmani.dummy[1] * HavaDurumu.dummy[1] +
          i2[0.00001] * GuvenlikEkipmani.dummy[1] * BisikletYoluOrani +
          i3[0.00001] * GuvenlikEkipmani.dummy[1] * TrafikYogunlugu.dummy[1] +
          i4[0.00001] * GuvenlikEkipmani.dummy[1] * TrafikYogunlugu.dummy[2] +
          i5[0.00001] * GuvenlikEkipmani.dummy[1] * Sigorta.dummy[1] +
          i6[0.00001] * GuvenlikEkipmani.dummy[1] * Sigorta.dummy[2] +
          i10[0.00001] * BisikletYoluOrani * HavaDurumu.dummy[1] +
          i11[0.00001] * TrafikYogunlugu.dummy[1] * HavaDurumu.dummy[1] +
          i12[0.00001] * TrafikYogunlugu.dummy[2] * HavaDurumu.dummy[1] +
          i13[0.00001] * Sigorta.dummy[1] * HavaDurumu.dummy[1] +
          i14[0.00001] * Sigorta.dummy[2] * HavaDurumu.dummy[1] +
          i16[0.00001] * PaketBasinaMaliyet * HavaDurumu.dummy[1] +
          i17[0.00001] * KMBasinaMaliyet * HavaDurumu.dummy[1] +
          i18[0.00001] * BisikletYoluOrani * Sigorta.dummy[1] +
          i19[0.00001] * BisikletYoluOrani * Sigorta.dummy[2] +
          i20[0.00001] * BisikletYoluOrani * CalismaSaatleri.dummy[1] +
          i21[0.00001] * BisikletYoluOrani * CalismaSaatleri.dummy[2] +
          i22[0.00001] * BisikletYoluOrani * CalismaSaatleri.dummy[3] +
          i23[0.00001] * TrafikYogunlugu.dummy[1] * Sigorta.dummy[1] +
          i24[0.00001] * TrafikYogunlugu.dummy[1] * Sigorta.dummy[2] +
          i25[0.00001] * TrafikYogunlugu.dummy[2] * Sigorta.dummy[1] +
          i26[0.00001] * TrafikYogunlugu.dummy[2] * Sigorta.dummy[2] +
          i33[0.00001] * Sigorta.dummy[1] * CalismaSaatleri.dummy[1] +
          i34[0.00001] * Sigorta.dummy[1] * CalismaSaatleri.dummy[2] +
          i35[0.00001] * Sigorta.dummy[1] * CalismaSaatleri.dummy[3] +
          i36[0.00001] * Sigorta.dummy[2] * CalismaSaatleri.dummy[1] +
          i37[0.00001] * Sigorta.dummy[2] * CalismaSaatleri.dummy[2] +
          i38[0.00001] * Sigorta.dummy[2] * CalismaSaatleri.dummy[3] +
          i39[0.00001] * KMBasinaMaliyet * CalismaSaatleri.dummy[1] +
          i40[0.00001] * KMBasinaMaliyet * CalismaSaatleri.dummy[2] +
          i41[0.00001] * KMBasinaMaliyet * CalismaSaatleri.dummy[3] +
          i42[0.00001] * BisikletYoluOrani * TrafikYogunlugu.dummy[1] /

U(Alt2) = b1 * GuvenlikEkipmani +
          b2 * HavaDurumu +
          b3 * TrafikYogunlugu +
          b4 * Sigorta +
          b5 * DolaptanDolaba +
          b6 * CalismaSaatleri +
          b7 * BisikletYoluOrani +
          b8 * PaketBasinaMaliyet +
          b9 * KMBasinaMaliyet +
          i1 * GuvenlikEkipmani.dummy[1] * HavaDurumu.dummy[1] +
          i2 * GuvenlikEkipmani.dummy[1] * BisikletYoluOrani +
          i3 * GuvenlikEkipmani.dummy[1] * TrafikYogunlugu.dummy[1] +
          i4 * GuvenlikEkipmani.dummy[1] * TrafikYogunlugu.dummy[2] +
          i5 * GuvenlikEkipmani.dummy[1] * Sigorta.dummy[1] +
          i6 * GuvenlikEkipmani.dummy[1] * Sigorta.dummy[2] +
          i10 * BisikletYoluOrani * HavaDurumu.dummy[1] +
          i11 * TrafikYogunlugu.dummy[1] * HavaDurumu.dummy[1] +
          i12 * TrafikYogunlugu.dummy[2] * HavaDurumu.dummy[1] +
          i13 * Sigorta.dummy[1] * HavaDurumu.dummy[1] +
          i14 * Sigorta.dummy[2] * HavaDurumu.dummy[1] +
          i16 * PaketBasinaMaliyet * HavaDurumu.dummy[1] +
          i17 * KMBasinaMaliyet * HavaDurumu.dummy[1] +
          i18 * BisikletYoluOrani * Sigorta.dummy[1] +
          i19 * BisikletYoluOrani * Sigorta.dummy[2] +
          i20 * BisikletYoluOrani * CalismaSaatleri.dummy[1] +
          i21 * BisikletYoluOrani * CalismaSaatleri.dummy[2] +
          i22 * BisikletYoluOrani * CalismaSaatleri.dummy[3] +
          i23 * TrafikYogunlugu.dummy[1] * Sigorta.dummy[1] +
          i24 * TrafikYogunlugu.dummy[1] * Sigorta.dummy[2] +
          i25 * TrafikYogunlugu.dummy[2] * Sigorta.dummy[1] +
          i26 * TrafikYogunlugu.dummy[2] * Sigorta.dummy[2] +
          i33 * Sigorta.dummy[1] * CalismaSaatleri.dummy[1] +
          i34 * Sigorta.dummy[1] * CalismaSaatleri.dummy[2] +
          i35 * Sigorta.dummy[1] * CalismaSaatleri.dummy[3] +
          i36 * Sigorta.dummy[2] * CalismaSaatleri.dummy[1] +
          i37 * Sigorta.dummy[2] * CalismaSaatleri.dummy[2] +
          i38 * Sigorta.dummy[2] * CalismaSaatleri.dummy[3] +
          i39 * KMBasinaMaliyet * CalismaSaatleri.dummy[1] +
          i40 * KMBasinaMaliyet * CalismaSaatleri.dummy[2] +
          i41 * KMBasinaMaliyet * CalismaSaatleri.dummy[3] +
          i42 * BisikletYoluOrani * TrafikYogunlugu.dummy[1] $
acanakci
 
Posts: 28
Joined: Tue Jun 11, 2024 11:55 pm

Re: Preventing Dominant Alternatives and MFederov Algorithm

Postby Michiel Bliemer » Thu Oct 24, 2024 7:20 am

You need to specify a finite number of levels for both the default swapping algorithm and the modified Federov algorithm. Only the neldermead algorithm can handle a continuous range of values, but this algorithm is hardly ever used in experimental design and I strongly recommend that you choose a finite number of levels. For example, you can use:

b7[0.00001] * BisikletYoluOrani[0:1:0.1] +
b8[0.00001] * PaketBasinaMaliyet[40:160:1] +
b9[0.00001] * KMBasinaMaliyet[20:60:1] +

which has as format lower:upper:stepsize. So 40:160:1 will have levels 40, 41, 42, 43, ..., 160.

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 30 guests