The transition from gasoline-powered vehicles to plug-in electric vehicles (PEVs) presents a promising avenue for reducing greenhouse gas emissions. Spatial forecasts of PEV adoption are essential to facilitate this shift as they enable preparation for power grid adaptation. However, forecasting is hindered by the limited data availability at this early stage of adoption. Multiple model calibrations can match current adoption trends but yield divergent forecasts. By leveraging empirical data from places with leading adopters in the US, this study shows that taking into account the spatial and social structure linking potential PEV adopters leads to forecasts of only a third of the current predictions for 2050. Additionally, spatial social networks reproduce the temporal evolution of the empirical spatial auto-correlations over the last twelve years. At last, the study evaluates the potential impact of various PEV marketing campaigns under prevailing uncertainties, emphasizing the need to tailor strategies to network dynamics for effective PEV promotion.
In this work, we investigate how spatial social networks influence PEV adoption forecasts by comparing benchmark adoption models at different spatial scales. We first aggregate individual purchase records at state, county, and census tract levels, and then we fit the empirical adoption trends at different levels of spatial aggregation in Washington and California. To that end, we consider two versions of the Bass model: the original BM and the Social Network BM (SocNet BM). We find that before 2022, PEV adoption was primarily driven by individual choices rather than social influences, a dynamic which cannot continue. As a result, both models can be calibrated to fit data up to 2022, but including or excluding social network effects leads to a threefold difference in projections by 2050. We observe that SocNet BM characterizes the temporal evolution of spatial auto-correlation better than the State/County BM. Also, with limited data, a combination of parameter sets of SocNet BM can fit the current adoption trend but lead to very different forecasts. At last, we point out that promotion campaigns should be designed based on the understanding of spatial social network structure in the area of interest as the effectiveness of campaigns is tied to the local socio-demographical structure. Altogether, the study offers insights on the forecast based on early adopters that is valuable to planning power grid demand and the allocation of charging infrastructure. We use different datasets in this study: US Census Bureau American Community Survey, the California Plug-in Electric Vehicle Adopter Survey, and Electric Vehicle Title and Registration Activity (EVTRA) data the Clean Vehicle Rebate Project (CVRP) data.
Name | Geographical Coverage | Temporal Coverage | Geographical Resolution | Temporal Resolution |
---|---|---|---|---|
California Clean Vehicle Rebate Project data |
California | 2010~2024 | Census Tract | Day |
Electric Vehicle Title and Registration Activity |
Washington | 2010~2024 | Census Tract | Day |
Census Bureau American Community Survey |
United States | 2010~2023 | Census Tract | Year |
Below is the overview of the dataset. (A,D) State-level yearly total adoption rate (circle marker) and new adoption rate (square marker) in Washington (blue) and California (orange) from 2010 to 2022. (B,E) Maps of county-level cumulative adoption rate in Washington (blue) and California (orange) in 2022. (C,F) Correlation between the adoption rate and the corresponding median household income of all census tracts in Washington (blue) and California (orange) in 2022. The regression line given the adoption rate and the corresponding median household income, as well as the 95% confidence interval for the regression, are shown with points.
We divide the potential market into three socio-demographic groups: low-income group (income below 33% of the reference population of the state), middle-income group (income between 33% and 66% of the reference population of the state), and high-income group (income above 66% of the reference population of the state).
The Bass diffusion model enables us to investigate adoption dynamics [1]. This can be done by fitting the cumulative distribution function of adoption data with the cumulative distribution function of the model. The Bass cumulative distribution function is defined by
where
We construct social networks with ingredients of preferential attachment and distance selection by following [2]. (1) Selected at random a subset of
where
This model consists of
where
We follow the method in [3]. Without loss of generality, we take one county as an example to illustrate the procedure. The procedure consists of two stages: locating the initial point and searching for the optimal solution.
In order to install all the required files, create a virtual environment with environment.yml
file.
conda env create -f environment.yml
This model is built up on NetworkX and Networkit. Specifically, NetworkX is used on analysis and visualization. To speed up the calibration process, we follow the framework and implement network construction and fitting process with Networkit.
The structure of code:
- NetworkPrep.py: Preprocess the adoption data and demographics data.
- NetworkCreators.py: Create social network with ingredients of preferential attachment and distance selection.
- NetworkParameter.py: Locate the initial guess of p and q through regression model.
- SearchParameter.py: Search optimal p and q around initial guess with heuristics.
- SearchParameter.py: Simulate diffusion process with estimated p and q.
To run demo code for simulation and analysis:
- RunState.py: Running adoption model calibration and simulation for Washington and California states.
- RunCounty.py: Running adoption model calibration and simulation for a selected county.
- CaseStudyLA.ipynb: Running case study in Los Angeles.
- SupplementaryInfo.ipynb: Running results for supplementary information.
- VisDataFinal.py: Analysis and visualization of simulation results.
In order to run fitting and simualtion for all states, use the following command.
cd model
nohup python -u RunState.py > state_log.log &