RP/SP joint estimation in Apollo

RP/SP joint estimation in Apollo

Joint RP/SP estimation combines the anchoring power of real behaviour with the variation power of stated preference tasks. Apollo handles both data sources in a single model.

This article explains how to set up and estimate joint RP/SP models in Apollo using data exported from SurveyEngine's combined transport surveys, including scale normalisation and the Swait-Louviere test.

Knowledge Base -> Modelling & Analysis -> Transport

Why joint estimation is better than separate models

Estimating separate RP and SP models and comparing them misses the point. The power of combined RP/SP data is that the two datasets can be estimated simultaneously, with the RP data anchoring the parameter estimates and the SP data providing the variation needed to estimate parameters that are not identified in the RP data alone - such as the value of a new mode that does not yet exist.

Separate models cannot constrain parameters to be equal across the two datasets. Joint estimation imposes equality constraints (or tests them) while accounting for the difference in scale between RP and SP error terms.

How joint RP/SP estimation works

In a joint RP/SP model, the utility functions for RP and SP data share the same preference parameters but may have different scale parameters - the RP error term variance typically differs from the SP error term variance. The scale normalisation either fixes the RP scale to 1 and estimates the SP scale, or vice versa.

The Swait-Louviere test formally tests whether the RP and SP datasets are consistent with the same underlying preference structure. A significant test result indicates that the two datasets cannot be combined - the preferences revealed in stated choices are not consistent with revealed behaviour.

Apollo's built-in RP/SP estimation routines handle the scale normalisation automatically and provide the output needed for the Swait-Louviere test.


Estimating a joint RP/SP model in Apollo

Step 1: Export the combined dataset from SurveyEngine. The export includes RP mode choice observations and SP choice task observations in a single dataset, with a flag indicating whether each row is RP or SP data.

Step 2: Set up the Apollo model code. Specify the utility functions for RP and SP data. Parameters shared across RP and SP should use the same parameter names. The SP scale parameter (mu_SP) is estimated relative to the RP scale (fixed at 1).

Step 3: Specify the database structure for Apollo. The database argument must include the RP/SP indicator variable. Apollo's RP/SP estimation function handles the two data sources correctly when the indicator is specified.

Step 4: Run the Swait-Louviere test. After estimation, test whether the SP data can be combined with the RP data by comparing the joint model log-likelihood against the sum of separate RP and SP model log-likelihoods.

Step 5: Interpret the scale parameter. The SP scale parameter (mu_SP) estimates the ratio of RP to SP scale. Values close to 1 indicate similar variance in RP and SP error terms - the ideal case. Values substantially different from 1 indicate that the SP data is either more or less variable than the RP data.

Worked example - joint RP/SP for intercity rail

A joint RP/SP model of intercity travel mode choice uses 620 RP observations and 4,960 SP observations from 620 respondents × 8 choice tasks. The Swait-Louviere test is not significant (chi-squared = 4.2, df = 3, p = 0.24), confirming the two datasets are consistent with the same preference structure.

The SP scale parameter estimate is 0.76 (SE = 0.08), indicating that SP responses are slightly less consistent (more variable) than RP behaviour - consistent with the hypothesis that stated preferences are noisier than revealed preferences. The joint model produces a VoTT of £12.40/hour for leisure travel and £19.80/hour for business travel.


References


Ready to estimate your joint RP/SP model? Log in to SurveyEngine and export your combined dataset for Apollo.

Monthly. Annual. Procurement Friendly.
No obligation · 30-minute call

Or Contact us at support@surveyengine.com — we're glad to help.


Related articles


Scroll to Top