Social Inequity in Transportation System
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
## ABOUT THE MODEL
This is a transport mode choice behavior. The idea is simple. It is evident that public transportations are developed to reduce transport cost, which in result generates additional income for the user (agents). The interesting part of this phenomenon is what do agents do with the additional income?
Common mode-choice models developed under the assumption that one will behave rationally to maximize her utility. We argued that this model failed to address two key factors: additional income and local interaction. It is evident that most, if not all, public transportation aims to reduce transport cost, which in result generates additional income. Moreover, the use of additional income is highly affected by agent’s social interaction and, obviously, people interacts with each other within their social networks. Therefore, the possible existence of a phase in which people purchase automobile because of the additional income and social prestige is an attractive proposition. In simpler words, there is a long-term effect that public transportation could actually become the cause of traffic congestion.
This model is an agent-based model of artificial agents who lives in an artificial world of patches. Each agent occupies a single patch and interact with theier neighbors. They will then update their state, either purchasing a car or using public transportation, according to a probability function. The higher the difference between an agent’s wealth to her neighbors’, the higher the probability of the agent to purchase a car.
## MODEL OUTPUT
Our model suggests that transportation system is an ever-moving system of three states: transit-oriented, automobile-oriented, and equilibrium. Moreover, the model also shows inverse relation between the state of the system and its social implications. Transit-oriented system is widely known to favor the poor over the rich. However, our model shows that by favoring the poor, it encourages people to view automobile much more prestigious than public transport. Therefore, prestige-driven behavior emerged, hence automobile-oriented system arises. Additionally, the model could also be viewed as a generalized form of the conventional model. The model shows that rational behavior and utility maximization only occurs when purchasing automobiles is considered costly, thus, functionality and degree of necessity becomes critical.
**NOTE:**
To produce this output, you need to use the _Behavior Space_ from the _Tools_ option.
> What needs to be done:
>
> - set FARE = 0
> - set THRESHOLD = 0
> - vary BUY-PRICE from 0.0 to 5.0 (actually, there is nothing interesting happening from BUY-PRICE >= 3.5)
> - set REPETITION = 100
> - compute average value for each output:
> - number of turtles who buy a car
> - number of turtles who use public transportation
> - car profile
> - public transportation profile
> - plot in a graph (I suggest you to make two graphs)
> - BUY-PRICE (x-axis) vs number of turtles who buy a car (y-axis-1) and number of turtles who use public transportation (y-axis-2)
> - BUY-PRICE (x-axis) vs car profile (y-axis-1) and public transportation profile (y-axis-2)
## MODEL PROPERTIES
Each agent has these properties
> **FARE** = the cost of using public transport mode
> **DEPRECIATION** = the decline of the value of a car over time
> **THRESHOLD** = perceived utility of using public transport mode
> **AGE-REMAINING** = agent's remaining life
> **RISK-BUY** = agent's risk aversion of buying a car
> **RISK-SELL** = agent's tolerance toward selling her car
> **CURRENT-ASSET** = agent's asset at time t (excluding car ownership)
> **LIVING-COST** = agent's average cost of living
> **INCOME** = agent's average income
> **WEALTH** = agent's total economic asset (including car ownership)
> **OWN-CAR** = agent's car ownership
> **ABILITY-TO-BUY** = agent's ability to purchase a new car
> **PROBABILITY-TO-BUY** = agent's probability to buy a new car
> **AVERAGE-ASSET** = average asset value of agent's neighbors (including the agent itself). Imagine the agent ask herself "What kind of pattern emerged if I live in this neighborhood?"
> **UTILITY-OF-BUYING-A-CAR** = perceived benefit of buying and/or having a car
## THE BASIC IDEA OF THE MODEL
The basic rule is agents will have to choose between using public transportation or buying an automobile which is as follows:
>**if** expected utility of purchasing a car is less than the perceived utility of using public transportation **then** use public transportation, **otherwise** purchase a car
## MODEL INITIALIZATION (SETUP PROCEDURE)
First, in the initialization (Setup), we create the environment (world), the agents, and its properties:
**Step 1** set world wraps vertically and horizontally
**Step 2** set global variables
> ```
> set depreciation 0.9
> ```
**Step 3** set patches pcolor to grey
> ```
> ask patches [ set pcolor grey]
> ```
**Step 4** sprout one agent in every patch
> ```
> ask patches [ sprout 1]
> ```
**Step 5** set agents' properties
> ```
> ask turtles [
> set age-remaining (10 + random 60)
> set risk-buy 1.5
> set risk-sell precision random-float 1.0 2
> set current-asset precision random-float 1.0 2
> set living-cost precision random-float 1.0 2
> set wealth current-asset
> set income precision (random-float 1.0) 2
> set own-car 0]]
> ```
**Step 6** display agent
> ```
> ask turtles [
> set shape "circle"
> set size 1
>
> ifelse (own-car = 1)
> [ set color 94]
> [ ifelse (current-asset < fare)
> [set color 98]
> [set color 96]]
> ```
## INTERACTION RULES AND ITERATION PROCESS (GO PROCEDURE)
After we initialize all the components of the model, then we setup the interaction rules (Go):
**Step 1** set maximum iteration at TICKS = 300
> ```
> if ticks >= 300 [ stop]
> ```
**Step 2** if the Agent already have a car (depends randomly on the initialization), she will have to decide if she wants to keep the car or sell the car
> ```
> ifelse (CURRENT-CAR-VALUE < RISK-SELL * BUY-PRICE)[
> [ sell-car]
> [ keep-car]]
> ```
**Step 2.a** if she decided to sell her car (sell-car)
> ```
> set OWN-CAR OWN-CAR - 1
> let SELL-PRICE (0.1 + random-float 0.61) * BUY-PRICE
> set WEALTH (CURRENT-ASSET + SELL-PRICE - CURRENT-CAR-VALUE)
> set CURRENT-ASSET (CURRENT-ASSET + INCOME + SELL-PRICE - LIVING-COST)
> set CURRENT-CAR-VALUE ""
> ```
**Step 2.B** if she decided to keep her car (keep-car)
> ```
> set OWN-CAR OWN-CAR
> set CURRENT-CAR-VALUE (DEPRECIATION * CURRENT-CAR-VALUE)
> set WEALTH CURRENT-ASSET + CURRENT-CAR-VALUE
> set CURRENT-ASSET (CURRENT-ASSET + INCOME - CAR-COST - LIVING-COST)
> ```
**Step 3** if the agent does not have a car (depends randomly on the initialization) then she will have to decide whether she wants to use the public transportation or buy a car
> ```
> set ABILITY-TO-BUY CURRENT-ASSET RISK-BUY * BUY-PRICE
> ```
**Step 3.a** compute her ability to buy a car
> ```
> set ABILITY-TO-BUY CURRENT-ASSET RISK-BUY * BUY-PRICE
> ```
**Step 3.b** compute her probability to buy a car
> ```
> set PROBABILITY-TO-BUY 1 - exp (- (CURRENT-ASSET - AVERAGE-ASSET))
> ```
**Step 3.c** compute her expected utility of purchasing a car
> ```
> set UTILITY-OF-BUYING-A-CAR ABILITY-TO-BUY * PROBABILITY-TO-BUY
> ```
**Step 3.d** compare her expected utility of purchasing a car with the perceived utility of using public transportation and update her state
> ```
> ifelse (UTILITY-OF-BUYING-A-CAR < THRESHOLD) [
> [ use-public-transport]
> [ buy-car]]
> ```
**Step 3.d.1** if she decided to use public transportation (use-public-transport)
> ```
> set OWN-CAR OWN-CAR
> set WEALTH CURRENT-ASSET
> set CURRENT-ASSET (CURRENT-ASSET + INCOME - PUBLIC-TRANSPORT-FARE - LIVING-COST)
> ```
**Step 3.d.2** if she decided to buy a car (buy-car)
> ```
> set OWN-CAR OWN-CAR + 1
> set CURRENT-CAR-VALUE (DEPRECIATION * BUY-PRICE)
> set WEALTH (CURRENT-ASSET + CURRENT-CAR-VALUE)
> set CAR-COST 0.3 * BUY-PRICE
> set CURRENT-ASSET (CURRENT-ASSET + INCOME - BUY-PRICE - LIVING-COST)
> ```
**Step 4** display agents
**Step 5** update agent's life
> ```
> set AGE-REMAINING AGE-REMAINING - 1
> if (WEALTH <= FARE) or (AGE-REMAINING <= 0) [
> [ reset agent properties]
> ```
## HOW TO USE IT
The FARE slider controls how much an agent should pay to use a public transportation mode
The BUY-PRICE slider controls how much an agent should pay to purchase a new car
The THRESHOLD slider controls the critical point of agent's decision making by comparing agent's UTILITY-OF-BUYING-A-CAR to the THRESHOLD value. A value of UTILITY-OF-BUYING-A-CAR less than THRESHOLD will result in agent buying a car and a value of UTILITY-OF-BUYING-A-CAR greater than or equal to THRESHOLD will result in agent using public transportation.
The # OF CAR monitor shows how many of agents buy a car
The # OF PUBLIC monitor shows how many of agents use public transportation
CAR PROFILE monitor shows the prestige value of buying a car
PUBLIC PROFILE monitor shows the prestige value of using public transportation
## THINGS TO NOTICE
With parameters FARE and THRESHOLD fixed at 0, there is two critical value of BUY-PRICE that switches the state of the system.
- BUY-PRICE approximately at 0.4 marks the system changing from public transport dominant to car user dominant
- BUY-PRICE approximately at 2.5 marks the system changing from car user dominant to public transport dominant
## THINGS TO TRY
Try to vary the parameters (FARE, BUY-PRICE, THRESHOLD) using the sliders to see different simulation results
## CREDITS AND REFERENCES
The PROBABILITY-TO-BUY function is adopted from Modeling Civil Violence: An Agent-based computational approach (Epstein, 2002) which also accesible in Rebellion.nlogo in the _Models Library_
Comments and Questions
globals [ depreciation ] turtles-own [ age-remaining wealth current-asset income living-cost ability-to-buy probability-to-buy utility-of-buying-a-car own-car car-cost current-car-value risk-buy risk-sell ] ;; Initialization to setup clear-all ;; clear the world set depreciation 0.9 ;; set depreciation value of car ask patches [ set pcolor grey sprout 1 ;; create turtles on every patch ] ask turtles [ set age-remaining (10 + random 60) set risk-buy 1.5 ;; set turtles braveness of taking risk to buy a car set risk-sell precision random-float 1.0 2 ;; set turtles braveness of taking risk to sell her car set current-asset precision random-float 1.0 2 ;; set turtles asset [0,1] set living-cost precision random-float 1.0 2 set wealth current-asset set income precision (random-float 1.0) 2 ;; set turtles income [0,1] uniformly distributed set own-car 0 ;; all turtles do not have car in the beginning display-agent ] reset-ticks end ;; Start Simulation to go if ticks >= 300 [ stop] ask turtles [ ifelse (own-car = 1) [ ifelse (current-car-value < risk-sell * buy-price ) [ sell-car] [ keep-car] ] [ let average-asset ((sum [current-asset] of turtles-on neighbors + current-asset) / (count turtles-on neighbors + 1)) set ability-to-buy (current-asset - risk-buy * buy-price) set probability-to-buy (1 - exp (- (current-asset - average-asset))) ifelse probability-to-buy < 0 [ set probability-to-buy 0] [ set probability-to-buy probability-to-buy] set utility-of-buying-a-car ability-to-buy * probability-to-buy ifelse (utility-of-buying-a-car < threshold) ;; threshold = utility of not buying a car i.e utility of using public transportation [ use-public-transport] [ buy-car] ] set age-remaining (age-remaining - 1) if (wealth <= fare) or (age-remaining <= 0) [ ;; agent died and new agent is born i.e reset agent properties set age-remaining (10 + random 60) set risk-sell precision random-float 1.0 2 set current-asset precision random-float 1.0 2 set living-cost precision random-float 1.0 2 set wealth current-asset set income precision (random-float 1.0) 2 set own-car 0 ] ] ask turtles [display-agent] tick end to sell-car set own-car own-car - 1 let sell-price (0.1 + random-float 0.61) * buy-price set wealth (current-asset + sell-price - current-car-value) set current-asset (current-asset + income + sell-price - living-cost) set current-car-value "" end to keep-car set own-car own-car set current-car-value (depreciation * current-car-value) set wealth current-asset + current-car-value set current-asset (current-asset + income - car-cost - living-cost) end to use-public-transport set own-car own-car set wealth current-asset set current-asset (current-asset + income - fare - living-cost) end to buy-car set own-car own-car + 1 set current-car-value (depreciation * buy-price) set wealth (current-asset + current-car-value) set car-cost 0.3 * buy-price set current-asset (current-asset + income - buy-price - living-cost) end to display-agent set shape "circle" set size 1 ifelse (own-car = 1) [ set color 94] [ ifelse (current-asset < fare) [set color 98] [set color 96] ] end
There is only one version of this model, created over 7 years ago by Gillmar Betara.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Social Inequity in Transportation System.png | preview | Preview for 'Social Inequity in Transportation System' | over 7 years ago, by Gillmar Betara | Download |
This model does not have any ancestors.
This model does not have any descendants.
Antonio Paez
Zip file corrupted (Question)
The files cannot be extracted, I would appreciate some help.
Posted almost 4 years ago
Gillmar Betara
the file is ok
Hi, thx for the interest are you sure it cannot be extracted? because I have no problem downloading and extracting it
Posted almost 4 years ago
Antonio Paez
Zip file corrupted
Pretty sure that it cannot be extracted, and it may be an issue with the site. Is there another way to get these files? Perhaps you could email?
Posted almost 4 years ago