Note
Go to the end to download the full example code.
Simultaneous hybrid choice model with ordered-probit indicators.
This example estimates a hybrid choice model where a latent variable, interpreted as a car-centric attitude, influences the utilities of a mode-choice model. The latent variable is described by a structural equation and is measured through several attitudinal indicators using ordered-probit measurement equations.
The model is estimated simultaneously: the measurement equations and the choice model are combined into one likelihood function. Because the latent variable is not observed, the likelihood is integrated by Monte Carlo simulation.
The script is organized with # %% markers. Each marker denotes the start
of a new cell when the example is later converted into a notebook. New cells are
introduced whenever a new concept is presented, so that the generated notebook
can be read progressively as a pedagogical example. The comments therefore
describe both the statistical role of each block and the pedagogical message of
the corresponding notebook cell.
Tested with Biogeme 3.3.3. Michel Bierlaire Sat Jun 13 2026, 15:13:40
from choice_latent_variables import (
generate_utility_functions,
)
from number_of_draws import NUMBER_OF_DRAWS
from optima import Choice, read_data
import biogeme.biogeme_logging as blog
from biogeme.biogeme import BIOGEME
from biogeme.expressions import (
Beta,
Draws,
MonteCarlo,
MultipleProduct,
MultipleSum,
OrderedProbit,
Variable,
exp,
log,
)
from biogeme.models import logit
from biogeme.results_processing import (
get_latex_estimated_parameters,
get_latex_general_statistics,
get_pandas_estimated_parameters,
)
logger = blog.get_screen_logger(level=blog.INFO)
Load the Optima data set.¶
The data set contains the observed mode choices, explanatory variables, and attitudinal indicators used in the hybrid choice model.
database = read_data()
Model parameters¶
The parameters are organized according to their role in the model: thresholds for the Likert-scale indicators, standard deviations of measurement errors, coefficients of the measurement equations, and coefficients of the structural equation of the latent variable.
likert_delta_0_log = Beta('likert_delta_0_log', -0.86, None, None, 0)
likert_delta_0 = exp(likert_delta_0_log)
likert_delta_1_log = Beta('likert_delta_1_log', -0.43, None, None, 0)
likert_delta_1 = exp(likert_delta_1_log)
measurement_Envir01_sigma = 1.0
measurement_Envir02_sigma_log = Beta(
'measurement_Envir02_sigma_log', 2.302585092994046, None, None, 0
)
measurement_Envir02_sigma = exp(measurement_Envir02_sigma_log)
measurement_Envir06_sigma_log = Beta(
'measurement_Envir06_sigma_log', 2.302585092994046, None, None, 0
)
measurement_Envir06_sigma = exp(measurement_Envir06_sigma_log)
measurement_LifSty07_sigma_log = Beta(
'measurement_LifSty07_sigma_log', 2.302585092994046, None, None, 0
)
measurement_LifSty07_sigma = exp(measurement_LifSty07_sigma_log)
measurement_Mobil03_sigma_log = Beta(
'measurement_Mobil03_sigma_log', 2.302585092994046, None, None, 0
)
measurement_Mobil03_sigma = exp(measurement_Mobil03_sigma_log)
measurement_Mobil05_sigma_log = Beta(
'measurement_Mobil05_sigma_log', 2.302585092994046, None, None, 0
)
measurement_Mobil05_sigma = exp(measurement_Mobil05_sigma_log)
measurement_Mobil08_sigma_log = Beta(
'measurement_Mobil08_sigma_log', 2.302585092994046, None, None, 0
)
measurement_Mobil08_sigma = exp(measurement_Mobil08_sigma_log)
measurement_Mobil09_sigma_log = Beta(
'measurement_Mobil09_sigma_log', 2.302585092994046, None, None, 0
)
measurement_Mobil09_sigma = exp(measurement_Mobil09_sigma_log)
measurement_Mobil10_sigma_log = Beta(
'measurement_Mobil10_sigma_log', 2.302585092994046, None, None, 0
)
measurement_Mobil10_sigma = exp(measurement_Mobil10_sigma_log)
measurement_coefficient_car_centric_attitude_Envir01 = -1.0
measurement_coefficient_car_centric_attitude_Envir02 = Beta(
'measurement_coefficient_car_centric_attitude_Envir02', 0.0, None, None, 0
)
measurement_coefficient_car_centric_attitude_Envir06 = Beta(
'measurement_coefficient_car_centric_attitude_Envir06', 0.0, None, None, 0
)
measurement_coefficient_car_centric_attitude_LifSty07 = Beta(
'measurement_coefficient_car_centric_attitude_LifSty07', 0.0, None, None, 0
)
measurement_coefficient_car_centric_attitude_Mobil03 = Beta(
'measurement_coefficient_car_centric_attitude_Mobil03', 0.0, None, None, 0
)
measurement_coefficient_car_centric_attitude_Mobil05 = Beta(
'measurement_coefficient_car_centric_attitude_Mobil05', 0.0, None, None, 0
)
measurement_coefficient_car_centric_attitude_Mobil08 = Beta(
'measurement_coefficient_car_centric_attitude_Mobil08', 0.0, None, None, 0
)
measurement_coefficient_car_centric_attitude_Mobil09 = Beta(
'measurement_coefficient_car_centric_attitude_Mobil09', 0.0, None, None, 0
)
measurement_coefficient_car_centric_attitude_Mobil10 = Beta(
'measurement_coefficient_car_centric_attitude_Mobil10', 0.0, None, None, 0
)
measurement_intercept_Envir01 = 0.0
measurement_intercept_Envir02 = Beta(
'measurement_intercept_Envir02', 0.0, None, None, 0
)
measurement_intercept_Envir06 = Beta(
'measurement_intercept_Envir06', 0.0, None, None, 0
)
measurement_intercept_LifSty07 = Beta(
'measurement_intercept_LifSty07', 0.0, None, None, 0
)
measurement_intercept_Mobil03 = Beta(
'measurement_intercept_Mobil03', 0.0, None, None, 0
)
measurement_intercept_Mobil05 = Beta(
'measurement_intercept_Mobil05', 0.0, None, None, 0
)
measurement_intercept_Mobil08 = Beta(
'measurement_intercept_Mobil08', 0.0, None, None, 0
)
measurement_intercept_Mobil09 = Beta(
'measurement_intercept_Mobil09', 0.0, None, None, 0
)
measurement_intercept_Mobil10 = Beta(
'measurement_intercept_Mobil10', 0.0, None, None, 0
)
struct_car_centric_attitude_car_oriented_parents = Beta(
'struct_car_centric_attitude_car_oriented_parents', 0.0, None, None, 0
)
struct_car_centric_attitude_high_education = Beta(
'struct_car_centric_attitude_high_education', 0.0, None, None, 0
)
struct_car_centric_attitude_intercept = Beta(
'struct_car_centric_attitude_intercept', 0.0, None, None, 0
)
struct_car_centric_attitude_low_education = Beta(
'struct_car_centric_attitude_low_education', 0.0, None, None, 0
)
struct_car_centric_attitude_sigma_log = Beta(
'struct_car_centric_attitude_sigma_log', 2.302585092994046, None, None, 0
)
struct_car_centric_attitude_sigma = exp(struct_car_centric_attitude_sigma_log)
struct_car_centric_attitude_top_manager = Beta(
'struct_car_centric_attitude_top_manager', 0.0, None, None, 0
)
struct_car_centric_attitude_used_to_go_to_school_by_car = Beta(
'struct_car_centric_attitude_used_to_go_to_school_by_car', 0.0, None, None, 0
)
Structural equation for the latent variable¶
The latent variable is represented as a normal random variable. Its mean is a linear function of observed socio-economic characteristics, and its standard deviation is estimated from the data.
mu_car_centric_attitude = (
struct_car_centric_attitude_intercept
+ struct_car_centric_attitude_top_manager * Variable('top_manager')
+ struct_car_centric_attitude_car_oriented_parents
* Variable('car_oriented_parents')
+ struct_car_centric_attitude_high_education * Variable('high_education')
+ struct_car_centric_attitude_low_education * Variable('low_education')
+ struct_car_centric_attitude_used_to_go_to_school_by_car
* Variable('used_to_go_to_school_by_car')
)
draw_car_centric_attitude = Draws(
'struct_car_centric_attitude_draws', draw_type='NORMAL_MLHS_ANTI'
)
car_centric_attitude = (
mu_car_centric_attitude
+ struct_car_centric_attitude_sigma * draw_car_centric_attitude
)
Threshold system for the ordered-probit indicators¶
The attitudinal indicators are coded on a five-point Likert scale. The ordered-probit model uses four thresholds to separate the five ordered response categories. The logarithmic parameterization of the threshold increments guarantees the required ordering. Threshold system: Likert scale
likert_tau_1 = -(likert_delta_0 + likert_delta_1)
likert_tau_2 = -likert_delta_0
likert_tau_3 = likert_delta_0
likert_tau_4 = likert_delta_0 + likert_delta_1
Measurement equations and ordered-probit likelihood terms¶
Each indicator is linked to the latent variable by a linear measurement equation. The probability of the observed ordinal answer is then computed with an ordered-probit model. Indicator: Envir01
mu_Envir01 = (
measurement_intercept_Envir01
+ measurement_coefficient_car_centric_attitude_Envir01 * car_centric_attitude
)
y_Envir01 = Variable('Envir01')
term_Envir01 = OrderedProbit(
eta=mu_Envir01 / measurement_Envir01_sigma,
cutpoints=[
likert_tau_1 / measurement_Envir01_sigma,
likert_tau_2 / measurement_Envir01_sigma,
likert_tau_3 / measurement_Envir01_sigma,
likert_tau_4 / measurement_Envir01_sigma,
],
y=y_Envir01,
categories=[1, 2, 3, 4, 5],
neutral_labels=[6, -1],
)
# Indicator: Envir02
mu_Envir02 = (
measurement_intercept_Envir02
+ measurement_coefficient_car_centric_attitude_Envir02 * car_centric_attitude
)
y_Envir02 = Variable('Envir02')
term_Envir02 = OrderedProbit(
eta=mu_Envir02 / measurement_Envir02_sigma,
cutpoints=[
likert_tau_1 / measurement_Envir02_sigma,
likert_tau_2 / measurement_Envir02_sigma,
likert_tau_3 / measurement_Envir02_sigma,
likert_tau_4 / measurement_Envir02_sigma,
],
y=y_Envir02,
categories=[1, 2, 3, 4, 5],
neutral_labels=[6, -1],
)
# Indicator: Envir06
mu_Envir06 = (
measurement_intercept_Envir06
+ measurement_coefficient_car_centric_attitude_Envir06 * car_centric_attitude
)
y_Envir06 = Variable('Envir06')
term_Envir06 = OrderedProbit(
eta=mu_Envir06 / measurement_Envir06_sigma,
cutpoints=[
likert_tau_1 / measurement_Envir06_sigma,
likert_tau_2 / measurement_Envir06_sigma,
likert_tau_3 / measurement_Envir06_sigma,
likert_tau_4 / measurement_Envir06_sigma,
],
y=y_Envir06,
categories=[1, 2, 3, 4, 5],
neutral_labels=[6, -1],
)
# Indicator: Mobil03
mu_Mobil03 = (
measurement_intercept_Mobil03
+ measurement_coefficient_car_centric_attitude_Mobil03 * car_centric_attitude
)
y_Mobil03 = Variable('Mobil03')
term_Mobil03 = OrderedProbit(
eta=mu_Mobil03 / measurement_Mobil03_sigma,
cutpoints=[
likert_tau_1 / measurement_Mobil03_sigma,
likert_tau_2 / measurement_Mobil03_sigma,
likert_tau_3 / measurement_Mobil03_sigma,
likert_tau_4 / measurement_Mobil03_sigma,
],
y=y_Mobil03,
categories=[1, 2, 3, 4, 5],
neutral_labels=[6, -1],
)
# Indicator: Mobil05
mu_Mobil05 = (
measurement_intercept_Mobil05
+ measurement_coefficient_car_centric_attitude_Mobil05 * car_centric_attitude
)
y_Mobil05 = Variable('Mobil05')
term_Mobil05 = OrderedProbit(
eta=mu_Mobil05 / measurement_Mobil05_sigma,
cutpoints=[
likert_tau_1 / measurement_Mobil05_sigma,
likert_tau_2 / measurement_Mobil05_sigma,
likert_tau_3 / measurement_Mobil05_sigma,
likert_tau_4 / measurement_Mobil05_sigma,
],
y=y_Mobil05,
categories=[1, 2, 3, 4, 5],
neutral_labels=[6, -1],
)
# Indicator: Mobil08
mu_Mobil08 = (
measurement_intercept_Mobil08
+ measurement_coefficient_car_centric_attitude_Mobil08 * car_centric_attitude
)
y_Mobil08 = Variable('Mobil08')
term_Mobil08 = OrderedProbit(
eta=mu_Mobil08 / measurement_Mobil08_sigma,
cutpoints=[
likert_tau_1 / measurement_Mobil08_sigma,
likert_tau_2 / measurement_Mobil08_sigma,
likert_tau_3 / measurement_Mobil08_sigma,
likert_tau_4 / measurement_Mobil08_sigma,
],
y=y_Mobil08,
categories=[1, 2, 3, 4, 5],
neutral_labels=[6, -1],
)
# Indicator: Mobil09
mu_Mobil09 = (
measurement_intercept_Mobil09
+ measurement_coefficient_car_centric_attitude_Mobil09 * car_centric_attitude
)
y_Mobil09 = Variable('Mobil09')
term_Mobil09 = OrderedProbit(
eta=mu_Mobil09 / measurement_Mobil09_sigma,
cutpoints=[
likert_tau_1 / measurement_Mobil09_sigma,
likert_tau_2 / measurement_Mobil09_sigma,
likert_tau_3 / measurement_Mobil09_sigma,
likert_tau_4 / measurement_Mobil09_sigma,
],
y=y_Mobil09,
categories=[1, 2, 3, 4, 5],
neutral_labels=[6, -1],
)
# Indicator: Mobil10
mu_Mobil10 = (
measurement_intercept_Mobil10
+ measurement_coefficient_car_centric_attitude_Mobil10 * car_centric_attitude
)
y_Mobil10 = Variable('Mobil10')
term_Mobil10 = OrderedProbit(
eta=mu_Mobil10 / measurement_Mobil10_sigma,
cutpoints=[
likert_tau_1 / measurement_Mobil10_sigma,
likert_tau_2 / measurement_Mobil10_sigma,
likert_tau_3 / measurement_Mobil10_sigma,
likert_tau_4 / measurement_Mobil10_sigma,
],
y=y_Mobil10,
categories=[1, 2, 3, 4, 5],
neutral_labels=[6, -1],
)
# Indicator: LifSty07
mu_LifSty07 = (
measurement_intercept_LifSty07
+ measurement_coefficient_car_centric_attitude_LifSty07 * car_centric_attitude
)
y_LifSty07 = Variable('LifSty07')
term_LifSty07 = OrderedProbit(
eta=mu_LifSty07 / measurement_LifSty07_sigma,
cutpoints=[
likert_tau_1 / measurement_LifSty07_sigma,
likert_tau_2 / measurement_LifSty07_sigma,
likert_tau_3 / measurement_LifSty07_sigma,
likert_tau_4 / measurement_LifSty07_sigma,
],
y=y_LifSty07,
categories=[1, 2, 3, 4, 5],
neutral_labels=[6, -1],
)
Conditional measurement likelihood¶
Conditional on a realization of the latent variable, the indicator likelihood is the product of the ordered-probit probabilities. The corresponding sum of logarithms is also constructed for later combination with the choice model.
conditional_measurement_likelihood = MultipleProduct(
[
term_Envir01,
term_Envir02,
term_Envir06,
term_LifSty07,
term_Mobil03,
term_Mobil05,
term_Mobil08,
term_Mobil09,
term_Mobil10,
]
)
conditional_log_likelihood = MultipleSum(
[
log(term)
for term in [
term_Envir01,
term_Envir02,
term_Envir06,
term_LifSty07,
term_Mobil03,
term_Mobil05,
term_Mobil08,
term_Mobil09,
term_Mobil10,
]
]
)
integrated_measurement_likelihood = MonteCarlo(conditional_measurement_likelihood)
Generate the choice utilities.¶
The latent variable is passed to the utility specification so that the car-centric attitude can directly influence the mode-choice probabilities.
latent_expressions = {'car_centric_attitude': car_centric_attitude}
utilities = generate_utility_functions(latent_expressions)
Conditional choice likelihood.¶
Given a realization of the latent variable, the probability of the observed mode choice is computed using the logit model.
conditional_choice_likelihood = logit(utilities, None, Choice)
Joint conditional likelihood.¶
The measurement component and the choice component are combined conditional on the latent variable. This expression is the joint contribution of one observation before integrating out the unobserved latent variable.
combined_conditional_likelihood = (
conditional_measurement_likelihood * conditional_choice_likelihood
)
Integrate over the latent variable.¶
The latent variable is unobserved, so the joint conditional likelihood must be integrated over its distribution. The integral is approximated by Monte Carlo simulation, and the logarithm of the simulated probability defines the log-likelihood used for estimation.
integrated_likelihood = MonteCarlo(combined_conditional_likelihood)
log_likelihood = log(integrated_likelihood)
Estimate the simultaneous model with Biogeme.¶
The dictionary groups parameters in the output tables according to their statistical role. Biogeme then estimates the model, or reloads existing results from the YAML file when available.
group_of_parmeters = {
'Structural equation': [
'struct_car_centric_attitude_intercept',
'struct_car_centric_attitude_top_manager',
'struct_car_centric_attitude_car_oriented_parents',
'struct_car_centric_attitude_high_education',
'struct_car_centric_attitude_low_education',
'struct_car_centric_attitude_used_to_go_to_school_by_car',
'struct_car_centric_attitude_sigma_log',
],
'Measurement equation: Envir02': [
'measurement_intercept_Envir02',
'measurement_coefficient_car_centric_attitude_Envir02',
'measurement_Envir02_sigma_log',
],
'Measurement equation: Envir06': [
'measurement_intercept_Envir06',
'measurement_coefficient_car_centric_attitude_Envir06',
'measurement_Envir06_sigma_log',
],
'Measurement equation: Mobil03': [
'measurement_intercept_Mobil03',
'measurement_coefficient_car_centric_attitude_Mobil03',
'measurement_Mobil03_sigma_log',
],
'Measurement equation: Mobil05': [
'measurement_intercept_Mobil05',
'measurement_coefficient_car_centric_attitude_Mobil05',
'measurement_Mobil05_sigma_log',
],
'Measurement equation: Mobil08': [
'measurement_intercept_Mobil08',
'measurement_coefficient_car_centric_attitude_Mobil08',
'measurement_Mobil08_sigma_log',
],
'Measurement equation: Mobil09': [
'measurement_intercept_Mobil09',
'measurement_coefficient_car_centric_attitude_Mobil09',
'measurement_Mobil09_sigma_log',
],
'Measurement equation: Mobil10': [
'measurement_intercept_Mobil10',
'measurement_coefficient_car_centric_attitude_Mobil10',
'measurement_Mobil10_sigma_log',
],
'Measurement equation: LifSty07': [
'measurement_intercept_LifSty07',
'measurement_coefficient_car_centric_attitude_LifSty07',
'measurement_LifSty07_sigma_log',
],
'Thresholds': ['likert_delta_0_log', 'likert_delta_1_log'],
}
biogeme = BIOGEME(
database,
log_likelihood,
number_of_draws=NUMBER_OF_DRAWS,
calculating_second_derivatives='never',
max_iterations=5_000,
group_of_parameters=group_of_parmeters,
)
biogeme.model_name = 'plot_h07_mode_lv_ordprobit_simult_generated'
yaml_file_name = f'saved_results/{biogeme.model_name}.yaml'
results = biogeme.estimate_or_load(yaml_file_name=yaml_file_name)
Biogeme parameters read from biogeme.toml.
Estimation results are read from saved_results/plot_h07_mode_lv_ordprobit_simult_generated.yaml. No estimation is performed.
Report the estimation results.¶
The compact summary gives the main diagnostics. The estimated parameters and general statistics are also exported as pandas and LaTeX tables, which is useful when preparing reports, slides, or scientific documents.
print(results.short_summary())
pandas_results = get_pandas_estimated_parameters(
estimation_results=results,
group_of_parameters=group_of_parmeters,
)
for group_name, pandas_table in pandas_results.items():
print(group_name if group_name else 'Estimated parameters')
print(pandas_table)
general_statistics = get_latex_general_statistics(estimation_results=results)
print(general_statistics)
estimated_parameters = get_latex_estimated_parameters(
estimation_results=results,
group_of_parameters=group_of_parmeters,
)
for group_name, latex_table in estimated_parameters.items():
print(group_name if group_name else 'Estimated parameters')
print(latex_table)
Results for model plot_h07_mode_lv_ordprobit_simult_generated
Nbr of parameters: 41
Sample size: 889
Excluded data: 0
Final log likelihood: -10533.2
Akaike Information Criterion: 21148.41
Bayesian Information Criterion: 21344.8
Structural equation
Name ... BHHH p-value
0 struct_car_centric_attitude_intercept ... 0.083893
1 struct_car_centric_attitude_top_manager ... 0.397310
2 struct_car_centric_attitude_car_oriented_parents ... 0.000934
3 struct_car_centric_attitude_high_education ... 0.000090
4 struct_car_centric_attitude_low_education ... 0.130403
5 struct_car_centric_attitude_used_to_go_to_scho... ... 0.857461
6 struct_car_centric_attitude_sigma_log ... 0.000579
[7 rows x 5 columns]
Measurement equation: Envir02
Name ... BHHH p-value
9 measurement_intercept_Envir02 ... 5.303095e-05
10 measurement_coefficient_car_centric_attitude_E... ... 4.440892e-16
11 measurement_Envir02_sigma_log ... 5.461177e-01
[3 rows x 5 columns]
Measurement equation: Envir06
Name ... BHHH p-value
12 measurement_intercept_Envir06 ... 3.264501e-08
13 measurement_coefficient_car_centric_attitude_E... ... 2.220446e-16
14 measurement_Envir06_sigma_log ... 3.579350e-03
[3 rows x 5 columns]
Measurement equation: Mobil03
Name ... BHHH p-value
18 measurement_intercept_Mobil03 ... 0.000047
19 measurement_coefficient_car_centric_attitude_M... ... 0.000096
20 measurement_Mobil03_sigma_log ... 0.101800
[3 rows x 5 columns]
Measurement equation: Mobil05
Name ... BHHH p-value
21 measurement_intercept_Mobil05 ... 4.904608e-04
22 measurement_coefficient_car_centric_attitude_M... ... 2.929445e-07
23 measurement_Mobil05_sigma_log ... 1.199670e-02
[3 rows x 5 columns]
Measurement equation: Mobil08
Name ... BHHH p-value
24 measurement_intercept_Mobil08 ... 4.207414e-02
25 measurement_coefficient_car_centric_attitude_M... ... 2.052946e-07
26 measurement_Mobil08_sigma_log ... 1.755760e-02
[3 rows x 5 columns]
Measurement equation: Mobil09
Name ... BHHH p-value
27 measurement_intercept_Mobil09 ... 1.330321e-06
28 measurement_coefficient_car_centric_attitude_M... ... 2.322587e-13
29 measurement_Mobil09_sigma_log ... 3.909916e-01
[3 rows x 5 columns]
Measurement equation: Mobil10
Name ... BHHH p-value
30 measurement_intercept_Mobil10 ... 0.083127
31 measurement_coefficient_car_centric_attitude_M... ... 0.046051
32 measurement_Mobil10_sigma_log ... 0.004236
[3 rows x 5 columns]
Measurement equation: LifSty07
Name ... BHHH p-value
15 measurement_intercept_LifSty07 ... 0.611869
16 measurement_coefficient_car_centric_attitude_L... ... 0.002000
17 measurement_LifSty07_sigma_log ... 0.035951
[3 rows x 5 columns]
Thresholds
Name Value BHHH std err. BHHH t-stat. BHHH p-value
7 likert_delta_0_log -2.476606 0.273277 -9.062629 0.000000
8 likert_delta_1_log -0.279120 0.151926 -1.837214 0.066178
Other parameters
Name Value ... BHHH t-stat. BHHH p-value
33 choice_scale_parameter 0.070034 ... 7.725972 1.110223e-14
34 choice_asc_pt -11.403019 ... -2.644522 8.180639e-03
35 choice_beta_time_pt -13.222719 ... -4.471160 7.779649e-06
36 choice_asc_car -0.245011 ... -0.066945 9.466256e-01
37 choice_beta_time_car -28.366538 ... -5.629729 1.804928e-08
38 choice_beta_car_centric_attitude_car 8.173794 ... 4.849345 1.238700e-06
39 choice_beta_dist_work -2.898595 ... -6.678530 2.413514e-11
40 choice_beta_dist_other_purposes -4.607782 ... -6.083006 1.179501e-09
[8 rows x 5 columns]
%% General statistics
\section{General statistics}
\begin{tabular}{ll}
Number of estimated parameters & 41 \\
Sample size & 889 \\
Excluded observations & 0 \\
Init log likelihood & -21722.51 \\
Final log likelihood & -10533.2 \\
Likelihood ratio test for the init. model & 22378.61 \\
Rho-square for the init. model & 0.515 \\
Rho-square-bar for the init. model & 0.513 \\
Akaike Information Criterion & 21148.41 \\
Bayesian Information Criterion & 21344.8 \\
Final gradient norm & 1.2211E-01 \\
Number of draws & 50000 \\
Draws generation time & 0:00:14.432400 \\
Types of draws & struct\_car\_centric\_attitude\_draws: NORMAL\_MLHS\_ANTI \\
Bootstrapping time & None \\
Algorithm & \verb$BFGS with trust region for simple bound constraints$ \\
Cause of termination & \verb$Relative gradient = 5.4e-06 <= 6.1e-06$ \\
Number of function evaluations & \verb$1504$ \\
Number of gradient evaluations & \verb$879$ \\
Number of hessian evaluations & \verb$0$ \\
Number of iterations & \verb$625$ \\
Optimization time & \verb$3:34:25.195618$ \\
Proportion of Hessian calculation & \verb$0/439 = 0.0%$ \\
Relative gradient & \verb$5.439e-06$ \\
\end{tabular}
Structural equation
\begin{tabular}{rlr@{.}lr@{.}lr@{.}lr@{.}l}
& & \multicolumn{2}{l}{} & \multicolumn{2}{l}{BHHH} & \multicolumn{4}{l}{} \\
Parameter & & \multicolumn{2}{l}{Coeff.} & \multicolumn{2}{l}{Asympt.} & \multicolumn{4}{l}{} \\
number & Description & \multicolumn{2}{l}{estimate} & \multicolumn{2}{l}{std. error} & \multicolumn{2}{l}{$t$-stat} & \multicolumn{2}{l}{$p$-value} \\
\hline
0 & struct\_car\_centric\_attitude\_intercept & -0&269 & 0&156 & -1&73 & 0&0839 \\
1 & struct\_car\_centric\_attitude\_top\_manager & 0&155 & 0&183 & 0&846 & 0&397 \\
2 & struct\_car\_centric\_attitude\_car\_oriented\_parents & 0&438 & 0&132 & 3&31 & 0&000934 \\
3 & struct\_car\_centric\_attitude\_high\_education & -0&647 & 0&165 & -3&92 & 8&98e-05 \\
4 & struct\_car\_centric\_attitude\_low\_education & 0&244 & 0&162 & 1&51 & 0&130 \\
5 & struct\_car\_centric\_attitude\_used\_to\_go\_to\_school\_by\_car & 0&128 & 0&715 & 0&180 & 0&857 \\
6 & struct\_car\_centric\_attitude\_sigma\_log & 0&292 & 0&0849 & 3&44 & 0&000579 \\
\end{tabular}
Measurement equation: Envir02
\begin{tabular}{rlr@{.}lr@{.}lr@{.}lr@{.}l}
& & \multicolumn{2}{l}{} & \multicolumn{2}{l}{BHHH} & \multicolumn{4}{l}{} \\
Parameter & & \multicolumn{2}{l}{Coeff.} & \multicolumn{2}{l}{Asympt.} & \multicolumn{4}{l}{} \\
number & Description & \multicolumn{2}{l}{estimate} & \multicolumn{2}{l}{std. error} & \multicolumn{2}{l}{$t$-stat} & \multicolumn{2}{l}{$p$-value} \\
\hline
9 & measurement\_intercept\_Envir02 & 0&837 & 0&207 & 4&04 & 5&30e-05 \\
10 & measurement\_coefficient\_car\_centric\_attitude\_Envir02 & -0&475 & 0&0585 & -8&11 & 4&44e-16 \\
11 & measurement\_Envir02\_sigma\_log & -0&111 & 0&184 & -0&604 & 0&546 \\
\end{tabular}
Measurement equation: Envir06
\begin{tabular}{rlr@{.}lr@{.}lr@{.}lr@{.}l}
& & \multicolumn{2}{l}{} & \multicolumn{2}{l}{BHHH} & \multicolumn{4}{l}{} \\
Parameter & & \multicolumn{2}{l}{Coeff.} & \multicolumn{2}{l}{Asympt.} & \multicolumn{4}{l}{} \\
number & Description & \multicolumn{2}{l}{estimate} & \multicolumn{2}{l}{std. error} & \multicolumn{2}{l}{$t$-stat} & \multicolumn{2}{l}{$p$-value} \\
\hline
12 & measurement\_intercept\_Envir06 & 1&39 & 0&252 & 5&53 & 3&26e-08 \\
13 & measurement\_coefficient\_car\_centric\_attitude\_Envir06 & -0&319 & 0&0385 & -8&29 & 2&22e-16 \\
14 & measurement\_Envir06\_sigma\_log & -0&480 & 0&165 & -2&91 & 0&00358 \\
\end{tabular}
Measurement equation: Mobil03
\begin{tabular}{rlr@{.}lr@{.}lr@{.}lr@{.}l}
& & \multicolumn{2}{l}{} & \multicolumn{2}{l}{BHHH} & \multicolumn{4}{l}{} \\
Parameter & & \multicolumn{2}{l}{Coeff.} & \multicolumn{2}{l}{Asympt.} & \multicolumn{4}{l}{} \\
number & Description & \multicolumn{2}{l}{estimate} & \multicolumn{2}{l}{std. error} & \multicolumn{2}{l}{$t$-stat} & \multicolumn{2}{l}{$p$-value} \\
\hline
18 & measurement\_intercept\_Mobil03 & 1&02 & 0&250 & 4&07 & 4&73e-05 \\
19 & measurement\_coefficient\_car\_centric\_attitude\_Mobil03 & -0&198 & 0&0508 & -3&90 & 9&55e-05 \\
20 & measurement\_Mobil03\_sigma\_log & 0&320 & 0&196 & 1&64 & 0&102 \\
\end{tabular}
Measurement equation: Mobil05
\begin{tabular}{rlr@{.}lr@{.}lr@{.}lr@{.}l}
& & \multicolumn{2}{l}{} & \multicolumn{2}{l}{BHHH} & \multicolumn{4}{l}{} \\
Parameter & & \multicolumn{2}{l}{Coeff.} & \multicolumn{2}{l}{Asympt.} & \multicolumn{4}{l}{} \\
number & Description & \multicolumn{2}{l}{estimate} & \multicolumn{2}{l}{std. error} & \multicolumn{2}{l}{$t$-stat} & \multicolumn{2}{l}{$p$-value} \\
\hline
21 & measurement\_intercept\_Mobil05 & 1&43 & 0&410 & 3&49 & 0&000490 \\
22 & measurement\_coefficient\_car\_centric\_attitude\_Mobil05 & -0&511 & 0&0997 & -5&13 & 2&93e-07 \\
23 & measurement\_Mobil05\_sigma\_log & 0&569 & 0&226 & 2&51 & 0&0120 \\
\end{tabular}
Measurement equation: Mobil08
\begin{tabular}{rlr@{.}lr@{.}lr@{.}lr@{.}l}
& & \multicolumn{2}{l}{} & \multicolumn{2}{l}{BHHH} & \multicolumn{4}{l}{} \\
Parameter & & \multicolumn{2}{l}{Coeff.} & \multicolumn{2}{l}{Asympt.} & \multicolumn{4}{l}{} \\
number & Description & \multicolumn{2}{l}{estimate} & \multicolumn{2}{l}{std. error} & \multicolumn{2}{l}{$t$-stat} & \multicolumn{2}{l}{$p$-value} \\
\hline
24 & measurement\_intercept\_Mobil08 & 0&247 & 0&121 & 2&03 & 0&0421 \\
25 & measurement\_coefficient\_car\_centric\_attitude\_Mobil08 & 0&423 & 0&0815 & 5&19 & 2&05e-07 \\
26 & measurement\_Mobil08\_sigma\_log & 0&510 & 0&215 & 2&37 & 0&0176 \\
\end{tabular}
Measurement equation: Mobil09
\begin{tabular}{rlr@{.}lr@{.}lr@{.}lr@{.}l}
& & \multicolumn{2}{l}{} & \multicolumn{2}{l}{BHHH} & \multicolumn{4}{l}{} \\
Parameter & & \multicolumn{2}{l}{Coeff.} & \multicolumn{2}{l}{Asympt.} & \multicolumn{4}{l}{} \\
number & Description & \multicolumn{2}{l}{estimate} & \multicolumn{2}{l}{std. error} & \multicolumn{2}{l}{$t$-stat} & \multicolumn{2}{l}{$p$-value} \\
\hline
27 & measurement\_intercept\_Mobil09 & 1&25 & 0&259 & 4&84 & 1&33e-06 \\
28 & measurement\_coefficient\_car\_centric\_attitude\_Mobil09 & -0&327 & 0&0446 & -7&33 & 2&32e-13 \\
29 & measurement\_Mobil09\_sigma\_log & -0&154 & 0&179 & -0&858 & 0&391 \\
\end{tabular}
Measurement equation: Mobil10
\begin{tabular}{rlr@{.}lr@{.}lr@{.}lr@{.}l}
& & \multicolumn{2}{l}{} & \multicolumn{2}{l}{BHHH} & \multicolumn{4}{l}{} \\
Parameter & & \multicolumn{2}{l}{Coeff.} & \multicolumn{2}{l}{Asympt.} & \multicolumn{4}{l}{} \\
number & Description & \multicolumn{2}{l}{estimate} & \multicolumn{2}{l}{std. error} & \multicolumn{2}{l}{$t$-stat} & \multicolumn{2}{l}{$p$-value} \\
\hline
30 & measurement\_intercept\_Mobil10 & 4&35 & 2&51 & 1&73 & 0&0831 \\
31 & measurement\_coefficient\_car\_centric\_attitude\_Mobil10 & 1&90 & 0&953 & 1&99 & 0&0461 \\
32 & measurement\_Mobil10\_sigma\_log & 1&57 & 0&549 & 2&86 & 0&00424 \\
\end{tabular}
Measurement equation: LifSty07
\begin{tabular}{rlr@{.}lr@{.}lr@{.}lr@{.}l}
& & \multicolumn{2}{l}{} & \multicolumn{2}{l}{BHHH} & \multicolumn{4}{l}{} \\
Parameter & & \multicolumn{2}{l}{Coeff.} & \multicolumn{2}{l}{Asympt.} & \multicolumn{4}{l}{} \\
number & Description & \multicolumn{2}{l}{estimate} & \multicolumn{2}{l}{std. error} & \multicolumn{2}{l}{$t$-stat} & \multicolumn{2}{l}{$p$-value} \\
\hline
15 & measurement\_intercept\_LifSty07 & -0&0496 & 0&0978 & -0&507 & 0&612 \\
16 & measurement\_coefficient\_car\_centric\_attitude\_LifSty07 & 0&156 & 0&0504 & 3&09 & 0&00200 \\
17 & measurement\_LifSty07\_sigma\_log & 0&465 & 0&222 & 2&10 & 0&0360 \\
\end{tabular}
Thresholds
\begin{tabular}{rlr@{.}lr@{.}lr@{.}lr@{.}l}
& & \multicolumn{2}{l}{} & \multicolumn{2}{l}{BHHH} & \multicolumn{4}{l}{} \\
Parameter & & \multicolumn{2}{l}{Coeff.} & \multicolumn{2}{l}{Asympt.} & \multicolumn{4}{l}{} \\
number & Description & \multicolumn{2}{l}{estimate} & \multicolumn{2}{l}{std. error} & \multicolumn{2}{l}{$t$-stat} & \multicolumn{2}{l}{$p$-value} \\
\hline
7 & likert\_delta\_0\_log & -2&48 & 0&273 & -9&06 & 0&00 \\
8 & likert\_delta\_1\_log & -0&279 & 0&152 & -1&84 & 0&0662 \\
\end{tabular}
Other parameters
\begin{tabular}{rlr@{.}lr@{.}lr@{.}lr@{.}l}
& & \multicolumn{2}{l}{} & \multicolumn{2}{l}{BHHH} & \multicolumn{4}{l}{} \\
Parameter & & \multicolumn{2}{l}{Coeff.} & \multicolumn{2}{l}{Asympt.} & \multicolumn{4}{l}{} \\
number & Description & \multicolumn{2}{l}{estimate} & \multicolumn{2}{l}{std. error} & \multicolumn{2}{l}{$t$-stat} & \multicolumn{2}{l}{$p$-value} \\
\hline
33 & choice\_scale\_parameter & 0&0700 & 0&00906 & 7&73 & 1&11e-14 \\
34 & choice\_asc\_pt & -11&4 & 4&31 & -2&64 & 0&00818 \\
35 & choice\_beta\_time\_pt & -13&2 & 2&96 & -4&47 & 7&78e-06 \\
36 & choice\_asc\_car & -0&245 & 3&66 & -0&0669 & 0&947 \\
37 & choice\_beta\_time\_car & -28&4 & 5&04 & -5&63 & 1&80e-08 \\
38 & choice\_beta\_car\_centric\_attitude\_car & 8&17 & 1&69 & 4&85 & 1&24e-06 \\
39 & choice\_beta\_dist\_work & -2&90 & 0&434 & -6&68 & 2&41e-11 \\
40 & choice\_beta\_dist\_other\_purposes & -4&61 & 0&757 & -6&08 & 1&18e-09 \\
\end{tabular}
Total running time of the script: (0 minutes 1.202 seconds)