1 Introduction
2 Related work
Factor | System | Measuring methodology | Reported effect on user’s ride decision |
---|---|---|---|
Car ownership | Ride-hailing | Survey on urban and suburban populations (USA) | Ride-hailing users have higher personal car ownership compared to transit-only users. Users substitute their personal car driving by ride-hailing [19] |
Lifestyle, attitude towards public transport, perception of public transport, attachment to the car, individual characteristics (income, gender, environmental concerns) | Public transport | Interviews on the motivation and intention of individuals’ mode choice (Portugal) | Individual characteristics, lifestyle, and perception of the level of service affect the use of public transport [21] |
Gender, age, car ownership, household income | Rural DRT | System user survey (UK) | |
Car access, age, mobility-related disability | Rural DRT | System user survey (Germany) | Car ownership is negatively associated with the intention to use DRT, while the elderly and people with reduced mobility are positively associated [24] |
3 Kussbus service characteristics and performance analysis
3.1 Kussbus service characteristics
-
Operating policy Kussbus utilizes so-called “virtual stops” (i.e., optional bus stops within walking distance, e.g., less than 1 km.) to pool passengers into these stops near their origin/destination locations. The virtual stops are optimized based on historical ride-request data. To increase user convenience, the maximum journey time and maximum detour time are used for vehicle route planning. The service operates from 5:30 to 9:30 a.m. (Arlon \(\to\) Luxembourg) and from 4:00 to 7:00 p.m. (Luxembourg \(\to\) Arlon) on weekdays excluding public holidays.
-
Booking A reservation can be made in advance or at short notice via the smartphone application of Kussbus. Users input their origin, destination, and desired pick-up time. The app will display the nearest Kussbus stop on the app, and users can track the locations of Kussbus vehicles in real-time. Notifications are sent via the app to inform users of a bus approaching, as well as delays or changes in the vehicles’ routes.
-
Vehicle A mixed fleet of shuttles with 7, 16, and 19 seats are used. Based on the user’s booking information, historical ride data, and operational constraints, the operator decides which type of vehicles to use to minimize the daily operational costs.
-
Pricing Kussbus offers 6 free rides for new users to experience the service. Afterward, each ride costs 4.95 euros and a monthly subscription is also available. Note that the Kussbus ticket price is about twice the regular Luxembourg bus ticket fare in 2018.
3.2 Kussbus ride statistics and system performance
Category | Indicator | Mean | S.D | Min | Max |
---|---|---|---|---|---|
Kussbus ridership | Number of rides per week | 109.46 | 64.8 | 12.0 | 225.0 |
Number of rides per weekday | 23.7 | 13.7 | 2.0 | 59.0 | |
Service attributes | In-vehicle travel time (minute) | 49.2 | 11.4 | 10.0 | 116.1 |
Total walking distance (km) | 0.5 | 0.5 | 0.0 | 3.5 | |
Door-to-door travel time (minute) | 54.7 | 12.7 | 11.5 | 122.0 | |
Fare (euro) | 2.8 | 2.5 | 0.0 | 5.0 | |
Starting time of trips (morning) | 7h11 | 44.8 | 5h48 | 8h33 | |
Starting time of trips (afternoon) | 17h21 | 41.9 | 15h48 | 19h33 | |
Journey time of users’ alternatives | Car (minute) | 42.8 | 6.6 | 25.6 | 67.6 |
Public transport (minute) | 75.2 | 18.0 | 42.7 | 393.5 |
3.3 Public transport coverage in the study area
4 User’s next ride occurrence modeling and prediction
4.1 Factors affecting users’ next ride occurrence
Variable | Definition | Levels | % |
---|---|---|---|
Occurrence_nr | Category of user’s next ride occurrence | \(\le 1\) day | 71.8 |
\(2-7\) days | 19.4 | ||
\(\ge 7\) days | 5.6 | ||
Not utilize anymore | 3.2 | ||
OD_pair | Class of user’s origin–destination pair | od_pair 1 (Arlon-Limpersberg) | 7.1 |
od_pair 2 (Habay to Luxembourg) | 2.2 | ||
od_pair 3 (Arlon-Kirchberg) | 24.5 | ||
od_pair 4 (Arlon-Luxembourg) | 61.4 | ||
od_pair 5 (within Luxembourg) | 4.8 | ||
Is_morning | 1 if the ride is in the morning and 0 otherwise | 49.0 | |
Is_peak | 1 if the vehicle departure time is during peak hours and 0 otherwise | 70.0 | |
Is_august | 1 if the ride occurred in August and 0 otherwise | 20.5 | |
Is_holiday | 1 if the day after the ride is a public holiday and 0 otherwise | 19.4 | |
Is_first | 1 if the ride is a user’s first ride and 0 otherwise | 4.7 | |
T_Kussbus | User’s journey time using Kussbus | \(\le\) 41 | 23.9 |
\(>\) 41 and \(\le\) 52.1 | 43.2 | ||
\(>\) 52.1 and \(\le\) 64 | 22.8 | ||
\(>\) 64 | 10.1 | ||
T_diff | Journey time difference between Kussbus and a car (minutes) | \(\le\) 2.5 | 39.8 |
\(>\) 2.5 and \(\le\) 14.7 | 39.4 | ||
\(>\) 14.7 and \(\le\) 25.9 | 15.8 | ||
> 25.9 | 5.0 | ||
Walk_dist | Total walking distance between user’s origin/destination and Kussbus stops (km) | < 0.4 | 50.8 |
> 0.4 and \(\le\) 0.8 | 39.5 | ||
> 0.8 | 9.7 | ||
Is_free | 1 if this ride is free and 0 otherwise | 42.8 | |
Isfree_next_ride | 1 if the next ride is free and 0 otherwise | 41.2 |
4.2 BN for users’ next ride occurrence inference
1 | Input a set of variables \(X\) and the empirical ride data \(D\) |
---|---|
2 | Identify an expert \(B{N}_{expert}=(X,{A}_{expert})\) based on expert knowledge |
3 | Given \(B{N}_{expert}\) as the structural restrictions, utilize a bootstrap sampling approach from \(D\) to learn \(n\) plausible data-driven BN structures according to the score-based learning algorithms |
4 | Utilize a model averaging approach to select the robust arcs with a probability greater than a statistical significance threshold (0.5 or more). This significance threshold reflects the probability that the selected arcs belong to the true (unknown) structure |
5 | Refine the newly added arcs from Step 4 based on the domain knowledge to obtain a final BN. This step involves checking and adjusting the directions of these newly added arcs so that they are consistent with the causal/dependent effect between the connected nodes |
6 | Perform parameter learning to fit the data with maximum likelihood and obtain the local distributions associated with the nodes of the final BN |
4.3 Results
4.3.1 BN structure and parameter learning
-
The pickup and drop-off locations have a direct effect on users’ trip journey times.
-
The departure time influences users’ trip journey times, in particular during peak hours.
-
If a user utilizes the Kussbus service for their morning commute, they will likely use the service for their returning trip.
-
The fare of the next ride depends on the fare of the current ride, as Kussbus provides 6 free rides for each user.
-
The journey time difference between Kussbus and a car for the conducted trip is correlated to the Kussbus journey time.
Attribute/Parameter | Value | Attribute/Parameter | Value |
---|---|---|---|
Number of nodes | 12 | Score-based algorithm | Hill climbing |
Number of arcs | 15 | Log-likelihood | − 21,184.91 |
Number of samples using bootstrap resampling | 100 | BIC | − 26,288.7 |
Significance threshold | 0.5 | Parameter learning | Maximum likelihood estimates |
-
A user’s next ride occurrence is directly influenced by the commute time dissonance between the actual commute time using Kussbus and a user’s habitual commuting time by car. A user’s next ride decision is indirectly affected by the Kussbus commute time. The latter is determined by the user’s OD pair and departure time.
-
The walking distance to Kussbus stops measures the inconvenience a user experiences in using the service and affects their tendency to continue to use the service.
-
A user’s next ride occurrence is influenced by the fare (whether the next ride is free or not), which is determined by the current fare as Kussbus provides 6 free rides to its users.
-
The ‘Is_first’, ‘Is_morning’, ‘Is_holiday’, and ‘Is_august’ variables have a direct influence on whether a user’s next ride occurrence is within one day or over a longer horizon.
Category of user’s next ride occurrence | 2 to 7 days | \(\ge\) 7 days | Not utilize anymore | |||
---|---|---|---|---|---|---|
Variable | Coef | z-value | Coef | z-value | Coef | z-value |
T_Kussbus | 0.03 | 1.63 | − 0.02 | − 0.75 | − 0.05* | − 1.76 |
T_diff | − 0.04** | − 2.48 | 0.01 | 0.34 | 0.06** | 2.09 |
Walk_dist | 0.29** | 2.11 | 0.72*** | 4.43 | 0.72*** | 3.28 |
OD_pair | ||||||
Habay–Luxembourg | − 0.33 | − 0.67 | − 2.28** | − 2.14 | − 1.72** | − 2.06 |
Arlon–Kirchberg | 0.10 | 0.36 | − 1.32*** | − 3.87 | − 2.40*** | − 5.05 |
Arlon–Luxembourg | 0.01 | 0.04 | − 0.95*** | − 3.17 | − 1.69*** | − 4.73 |
within Luxembourg | 0.71 | 1.59 | − 19.12 | − 0.01 | 0.41 | 0.36 |
Is_peak | − 0.42*** | − 3.02 | − 0.63*** | − 3.21 | 0.004 | − 0.02 |
Isfree_next_ride | 0.04 | 0.19 | − 0.25 | − 0.93 | − 1.91*** | − 6.56 |
Subsidy | 0.36* | 1.94 | 0.63** | 2.28 | 19.89 | 0.02 |
Is_morning | − 3.49*** | − 17.19 | − 2.68*** | − 10.09 | − 1.69*** | − 4.89 |
Is_holiday | 2.82*** | 17.16 | 2.40*** | 10.8 | 1.38*** | 4.04 |
Is_august | − 0.04 | − 0.27 | − 0.19 | − 0.8 | − 0.08 | − 0.22 |
Is_first | 0.56 | 1.61 | 1.69*** | 4.99 | 2.14*** | 5.96 |
Constant | − 1.94** | − 2.52 | − 0.55 | − 0.52 | − 17.44 | − 0.02 |
N | 2783 | |||||
DF | 42 | |||||
Log-Likelihood | − 1634.79 | |||||
McFadden’s Pseudo R2 | 0.2893 | |||||
Likelihood-ratio test (Prob > χ2) | < 0.0001 |
4.3.2 Sensitivity analysis
Node | New evidence | Conditional probability distribution of the target node (Occurrence_nr), measured in % | |||
---|---|---|---|---|---|
< = 1 day | Between 2 and 7 days | more than 7 days | No further use | ||
T-diff (in minutes) | \(\le\) 2.5 | 75.1(5.1) | 16.9(− 2.7) | 5.3(− 1.01) | 2.7(− 1.35) |
\(>\) 2.5 and \(\le\) 14.7 | 67.8(− 2.2) | 21.9(2.3) | 6.8(0.49) | 3.5(− 0.55) | |
\(>\) 14.7 and \(\le\) 25.9 | 63.4(− 6.6) | 23(3.4) | 6.5(0.19) | 7.1(3.05) | |
> 25.9 | 64.5(− 5.5) | 15.6(− 4) | 10(3.69) | 9.9(5.85) | |
Is_first | Yes | 45.2(− 24.8) | 19.4(− 0.2) | 17.5(11.19) | 17.9(13.85) |
No | 71.3(1.3) | 19.6(0) | 5.8(− 0.51) | 3.4(− 0.65) | |
Is_free_next_ride | Yes | 73.6(3.6) | 19.2(− 0.4) | 5.8(− 0.51) | 1.4(− 2.65) |
No | 67.6(− 2.4) | 19.8(0.2) | 6.7(0.39) | 5.9(1.85) | |
Is_morning | Yes | 88(18) | 6(− 13.6) | 3.3(− 3.01) | 2.7(− 1.35) |
No | 52.8(− 17.2) | 32.6(13) | 9.2(2.89) | 5.4(1.35) |