dual response none modelling

This forum is for posts covering broader stated choice experimental design issues.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Re: dual response none modelling

Postby johnr » Tue Jan 31, 2023 5:49 pm

Hi Tom

You can either estimate it in Nlogit using a Nested Logit structure or you can use non-linear utility commands to do precisely what Michiel suggested.

If you use the Nested Logit model, you can place the different alternatives in whatever branch structure you like, so you could place the full choice in one branch and the restricted choice in the second, or you could place the hypothetical alternatives of both the full and unrestricted choices in one branch and the opt out in its own degenerative branch. This should be fairly straight forward to do, but then you cannot use other things such as random parameters.

If you use the non-linear command structure, it is a bit clunky, but it allows you to write out complex non-linear utility functions. An example I used to teach 100 years ago looked like this for 5 alternatives. It allows you to write out whatever utility function in the fn commands.

Nlrplogit
;lhs=choice,cset,Altij
;choices = pet,die,HEV,PEV,BEV
;start = 0,0,0,0,0,0,0,0,0,0,0
;labels = Income1,ASC1,ASC2,ASC3,ASC4,pr1,pr2,pr3,opcp,rge,emp
;fn1 = V1 = ASC1 + pr1*price + OPCp*OPC + RGE*RANGE + Emp*emiss1
;fn2 = V2 = ASC2 + pr1*price + OPCp*OPC + RGE*RANGE + Emp*emiss1
;fn3 = V3 = ASC3 + pr2*price + OPCp*OPC + exp(income1)*(RGE*RANGE + Emp*emiss1)
;fn4 = V4 = ASC4 + pr2*price + OPCp*OPC + exp(income1)*(RGE*RANGE + Emp*emiss1)
;fn5 = V5 = pr3*price + OPCp*OPC + RGE*RANGE + Emp*emiss1
;model:
U(pet) = V1 /
U(die) = V2 /
U(hev) = V3 /
U(pev) = V4 /
U(bev) = V5 $

Assuming the first two alternatives relate to the restricted choice and the last three to the full choice, you could have something like this

;fn1 = V1 = exp(scale)*(ASC1 + pr1*price + OPCp*OPC + RGE*RANGE + Emp*emiss1)
;fn2 = V2 = exp(scale)*(ASC2 + pr1*price + OPCp*OPC + RGE*RANGE + Emp*emiss1)
;fn3 = V3 = ASC3 + pr2*price + OPCp*OPC + RGE*RANGE + Emp*emiss1
;fn4 = V4 = ASC4 + pr2*price + OPCp*OPC + RGE*RANGE + Emp*emiss1
;fn5 = V5 = 0

As I said, a bit clunky, and it slows estimation time down considerably, but certainly can be done.
johnr
 
Posts: 168
Joined: Fri Mar 13, 2009 7:15 am

Re: dual response none modelling

Postby Michiel Bliemer » Tue Jan 31, 2023 7:33 pm

Thanks John for your detailed response.
Michiel Bliemer
 
Posts: 1705
Joined: Tue Mar 31, 2009 4:13 pm

Re: dual response none modelling

Postby TomS » Wed Feb 01, 2023 11:17 am

Thanks John and Michiel for your quick and very helpful replies.

I wonder if the nested logit approach is more straightforward. My understanding is that this is essentially the same approach as if one was combining RS and SP datasets, and I can employ the nested logit trick to achieve the normalisation.

If possible, I would be grateful for your help checking that I am going about this correctly.

To recap, I have used a dual-response format. The first choice is a forced choice between two unlabelled alternatives (Choice 1: Option A vs. Option B). The second choice is an unforced choice where respondents indicate whether they would really choose the option they selected in Choice 1 or opt-out (Choice 2: option selected in Choice 1 vs. opt-out). This was the setup allowed within the constraints of the Sawtooth survey platform used.

Given the unforced choice involves a binary between sticking with the option selected in Choice 1 or opting out, I have set up the unforced choice data so that there are 3 alternatives/rows (Option A, Option B, None). If the respondent selected to stick with the option selected in the forced choice (Choice 1), their unforced choice is shown as the relevant alternative from the related forced choice (i.e., with the attributes of either Option A or Option B, as relevant). If the respondent selected to opt-out, their unforced choice is the None alternative (no attributes).

ALTN is an indicator variable for the combined dataset, ranging from 1-5. 1-2 relate to the forced choice (FOptionA, FOptionB), 3-5 relate to the unforced choice (UOptionA, UOptionB, None). To allow estimation of the scale parameter, I have placed the forced alternatives in one branch, and the unforced in another.

Nlogit
;lhs = CHOICE, CSET, ALTN
;choices = FOptionA, FOptionB, UOptionA, UOptionB, None
;tree = FORCED(FOptionA, FOptionB), UNFORCED(UOptionA, UOptionB, None)
;ivset:(UNFORCED)=[1.0]
;ru2
;model:
U(FOptionA) = formapp*FORMAPP ? all parameters treated as generic
+ conssmal*CONSSMAL
+ consall*CONSALL
+ limmand*LIMMAND
+ amoaff*AMOAFF
+ loyspnd*LOYSPND
+ loycpt*LOYCPT /
U(FOptionB) = formapp*FORMAPP
+ conssmal*CONSSMAL
+ consall*CONSALL
+ limmand*LIMMAND
+ amoaff*AMOAFF
+ loyspnd*LOYSPND
+ loycpt*LOYCPT /
U(UOptionA) = formapp*FORMAPP
+ conssmal*CONSSMAL
+ consall*CONSALL
+ limmand*LIMMAND
+ amoaff*AMOAFF
+ loyspnd*LOYSPND
+ loycpt*LOYCPT /
U(UOptionB) = formapp*FORMAPP
+ conssmal*CONSSMAL
+ consall*CONSALL
+ limmand*LIMMAND
+ amoaff*AMOAFF
+ loyspnd*LOYSPND
+ loycpt*LOYCPT /
U(None) = none ? alternative-specific constant for opt-out alternative
$

At this stage, I am wanting to use my pilot data to obtain prior distributions for generating a Bayesian efficient design for the main study.

For the main study, I had been planning on using the error components panel model and latent class panel model. My understanding is that the ECM is essentially equivalent to the nested logit, so I should be able to use the same approach once I have the main study data? But I'm not sure about LCM?

Just wanting to check that this approach sounds reasonable and feasible given the nature of the data?

Thanks so much, Tom
TomS
 
Posts: 6
Joined: Fri Aug 19, 2022 12:25 pm

Re: dual response none modelling

Postby johnr » Wed Feb 01, 2023 8:09 pm

Hi Tom

You are correct in your thinking regarding the NL model and your code looks correct to me. You in effect have two different data sets, and you are testing whether you can pool them or not based on scale differences. This is one of the reasons people use the NL model.

With respect to the EC model, it does approximate the NL model in a roundabout way. The NL model assigns different error variances to alternatives within a common branch, whilst at the same time, correlating those same error variances. The EC model also does this for alternatives with a common error component. The error variance of a logit model is pi/6 ~ 1.6649. For alternatives with a common error component, the variances will be equal to 1.6649 + sigma^2 where sigma is the error component. The error terms also have a covariance equal to sigma^2, giving a correlation of sigma^2 / (1.6649 + sigma^2). Hence, it can approximate the same error structure of the NL model.

It is also possible to estimate a LCM with error components in Nlogit. I know this because I estimated the exact same model last week. Whilst in my case, the results weren't promising, at least I know it is possible to do. There are a few moving parts and tricks need to make it work, which I am happy to share if and when you ever decide you want to estimate such a model.

John
johnr
 
Posts: 168
Joined: Fri Mar 13, 2009 7:15 am

Re: dual response none modelling

Postby TomS » Wed Feb 01, 2023 8:45 pm

Hi John,

Thanks so much – I really appreciate your help and kind offer. I might check in with you if/when I get to the LCM :)

Tom
TomS
 
Posts: 6
Joined: Fri Aug 19, 2022 12:25 pm

Re: dual response none modelling

Postby TomS » Fri Feb 10, 2023 10:59 am

Hi John,

I came across your paper (Hensher et al. 2008, Journal of Transport Geography) on accounting for potential scale effects using the error components model: https://doi.org/10.1016/j.jtrangeo.2007.07.001

I'm unsure though how to specify this in NLOGIT for an EC model. Are you able to help me understand what commands I need to use please?

For example, in the NL model mentioned earlier, I used the following branch structure and normalised the UNFORCED branch to 1.0:

Nlogit
;lhs = CHOICE, CSET, ALTN
;choices = FOptionA, FOptionB, UOptionA, UOptionB, None
;tree = FORCED(FOptionA, FOptionB), UNFORCED(UOptionA, UOptionB, None)
;ivset:(UNFORCED)=[1.0]
;ru2

...

Many thanks,
Tom
TomS
 
Posts: 6
Joined: Fri Aug 19, 2022 12:25 pm

Re: dual response none modelling

Postby johnr » Fri Feb 10, 2023 12:28 pm

Hi Tom

You cannot do it through the NL model. The EC model is a different model completely. The point of the paper we were trying to make is that the EC model can approximate the NL model. In the NL model, the error terms of alternatives within the same branch are all equal, and the covariance terms are non-zero (hence the errors within branch are correlated). For alternatives in different branches, the error variances are different, and the covariances are zero. This is precisely what the EC model does also.

John
johnr
 
Posts: 168
Joined: Fri Mar 13, 2009 7:15 am

Previous

Return to Choice experiments - general

Who is online

Users browsing this forum: Google [Bot] and 4 guests

cron