Synthetic population data generation and use thereof
Patent Information
- Application Number
- JP2026051582
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-04-04
- Filing Date
- 2026-03-26
- Publication Date
- 2026-10-16
Smart Images

Figure 2026169152000001_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to synthetic population data generation. More particularly, the present disclosure relates to methods for generation, retrieval, and use of synthetic data, as well as related data processing apparatuses, computer programs, and computer-readable storage media. BACKGROUND ART
[0002] The increasing sophistication of personalized technologies across various sectors including healthcare, consumer goods manufacturing, and urban planning has highlighted a significant deficiency in current data collection and analysis methodologies, namely the over-reliance on aggregated population statistics. While aggregated population data provides valuable insights at the macro level, such data obscures the inherent heterogeneity within the population, leading to inaccurate conclusions and ineffective solutions when applied to individual needs.
[0003] However, obtaining micro-level (individual-level) statistics on people and households is a time-consuming process that often requires accessing data from various organizations, which inevitably often leads to variations due to the diversity of data collection methods. The data acquisition process can be costly and is often legally constrained by regulations such as GDPR, making access to micro-level population information difficult. For example, the use of census data from multiple geographic regions may involve accessing separate websites and overcoming jurisdictional restrictions, making it difficult to collect and use data on multiple populations around the world. To the knowledge of the inventors, no single unified dataset or data format exists for organizing and maintaining population data across different geographic regions. Accordingly, this requires extensive data organization, maintenance, and redevelopment for each new intended use case of the data.
[0004] For example, in the pharmaceutical industry, a "uniform" approach to drug development and dosage based on average population responses often results in suboptimal efficacy and increased adverse reactions for specific patient subgroups. Similarly, in urban planning, relying solely on aggregate mobility data can lead to infrastructure designs that fail to address the specific transportation needs of vulnerable populations such as the elderly and people with disabilities.
[0005] Furthermore, the rise of personalized medicine, driven by advances in genomics and wearable sensor technology, necessitates the availability of granular, individual-level population data to tailor treatments and interventions to specific patient profiles. This demand extends beyond healthcare, impacting the development of personalized consumer products, targeted marketing strategies, and customized educational programs.
[0006] Therefore, there is a pressing need for improved methods of providing personal-level population data while addressing critical privacy and data security concerns. The ability to accurately capture and utilize personal-level data opens up significant potential for developing more effective, targeted, and personalized solutions across a wide range of applications, ultimately leading to improved outcomes for individuals and society as a whole. [Overview of the Initiative]
[0007] According to one aspect of the present disclosure, a computer-based method for generating synthetic data is provided, comprising: receiving input of a geographic area to be targeted; obtaining aggregate demographic data for the geographic area to be targeted; generating a synthetic population based on the aggregate demographic data using iterative proportional fitting; obtaining infrastructure information for the geographic area to be targeted; forming synthetic population data by assigning the synthetic population to multiple households using the infrastructure information; and outputting the synthetic population data.
[0008] Embodiments of another aspect of the present disclosure include a data processing device comprising a memory, a processing unit, and means for receiving input. The memory stores computer-executable instructions for carrying out a method for generating synthetic data, which is implemented by a computer. The processing unit and means for receiving input are configured to execute the instructions.
[0009] Embodiments of another aspect of the present disclosure include a computer program including instructions, which, when executed by a data processing device, cause the data processing device to perform a method for generating synthetic data, which is implemented by a computer.
[0010] Embodiments of another aspect of the present disclosure include a non-temporary computer-readable storage medium containing instructions, which, when executed by a data processing device, cause the data processing device to perform a method for generating synthetic data, which is implemented by a computer.
[0011] The embodiments may be implemented as a digital electronic circuit configuration, or as computer hardware, firmware, software, or a combination thereof. The embodiments may also be implemented as a computer program or computer program product, i.e., a computer program tangibly embodied in a non-transient information carrier, such as a machine-readable storage device or a propagating signal, for execution by or control of the operation of one or more hardware modules.
[0012] Computer programs may be in the form of standalone programs, computer program parts, or multiple computer programs, and may be written in any form of programming language, including compiled or interpreted languages, and may be deployed in any form, such as as standalone programs or as modules, components, subroutines, or other units suitable for use in a data processing environment. Computer programs may be deployed to run on one module or on multiple modules at one site, or they may be distributed across multiple sites and interconnected by a communication network.
[0013] The steps of the embodiment's method may be performed by one or more programmable processors that execute a computer program that performs the functions of the disclosure by acting on input data and generating output data. The embodiment's apparatus may be implemented as programmed hardware or as a dedicated logic circuit configuration, for example, including a field-programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).
[0014] Processors suitable for executing computer programs include, for example, one or more processors from both general-purpose and dedicated microprocessors, as well as any type of digital computer. Generally, a processor receives instructions and data from read-only memory, random-access memory, or both.
[0015] The present invention will be described in relation to specific embodiments. Other embodiments are within the scope of the following claims. For example, the steps of the embodiments may be performed in a different order and the desired results may still be achieved.
[0016] The embodiments are described using terms such as “computing means,” “means for receiving input,” and “processing unit.” Those skilled in the art will understand that such functional terms and their equivalents may refer to parts of a system that are spatially separated but combined to perform a defined function. Similarly, the same physical part of the system may provide two or more defined functions. For example, separately defined means may be implemented using the same memory and / or processor, if necessary. [Brief explanation of the drawing]
[0017] The attached drawings below are for illustrative purposes only. [Figure 1] This is a flowchart of a general method for generating synthetic data according to the embodiment. [Figure 2] This is a schematic overview of the modules and data stores used in methods for generating synthetic data. [Figure 3] This is a schematic overview of the modules and datastores used in alternative synthetic data generation methods. [Figure 4] This is a flowchart of the iterative proportional fitting method. [Figure 5] This is an example graphical user interface (GUI) panel for generating synthetic data. [Figure 6] This is an example GUI panel for generating synthetic data during use. [Figure 7] This is a GUI panel for visualizing synthetic data. [Figure 8] This is another exemplary GUI panel for synthetic data visualization. [Figure 9] This is a schematic overview of a computing means suitable for realizing the embodiment. [Modes for carrying out the invention]
[0018] Figure 1 is an overview of a general method for synthetic data generation according to aspects of the present disclosure. The general method for synthetic data generation is implemented using a computing means.
[0019] In S11, the computing means receives an input of a target geographic area. This target geographic area may be indicated by inputting a city, town, prefecture, or the like of interest. The geographic area may be indicated using a geocode entry (e.g., a location code or key that may be provided in a lookup table) that provides a unique identifier for the geographic area. For example, the NUTS (Nomenclature of Territorial Units for Statistics) classification may be used to enable input of entire EU countries, or any hierarchical subdivision of a country thereof.
[0020] In S12, the computing means acquires actual aggregated demographic data of the input target geographic area. For example, the computing means may access an external computing resource and download corresponding aggregated demographic data of the target geographic area. In some configurations, the computing means may access multiple sources of aggregated demographic data. If necessary, suitable data cleansing or data aggregation techniques may be applied to the aggregated demographic data. Demographic data in this context refers to aggregated statistical data about a population that reflects external physical reality, including, for example, population size, composition (e.g., ethnic group, age), birth rates (births), mortality rates (deaths), and migration rates. Suitable sources for obtaining aggregated demographic data include Eurostat.
[0021] In S13, the computing means generates an initial synthetic population based on aggregated demographic data. The computing means uses the statistical method of iterative proportional fitting (IPF) to weight the aggregated data (i.e., observed values), then applies weighted sampling (using these weights) so that the resulting sampled data reflects the desired ratios. This synthetic population corresponds to individual-level data for a geographic area. The use of IPF ensures an accurate representation of the demographics.
[0022] In S14, the computing means acquires actual infrastructure information of the target geographic area. This infrastructure information may include any or all of building boundaries, building centroids, building types (e.g., residential, commercial), transportation (e.g., road, railway) edges, and geographic area boundaries of the target geographic area in question. Suitable sources for obtaining infrastructure data include OpenStreetMap. Infrastructure information in this context reflects the external physical reality.
[0023] In S15, the computing means uses the infrastructure information to assign each individual represented in the synthetic population to one of a plurality of households. For example, a separate individual may be assigned to each residential property as indicated by the infrastructure information. In this way, the computing means prepares individual-level synthetic population data. For example, if the geographic area in question is the city of London, and thus the infrastructure information includes building boundaries and building centroids within London, the individuals in the synthetic population may be assigned to these buildings located in London. The synthetic population data may include, for example, any or all of age, gender, health status, income status, ethnicity, and household information for each individual represented in the synthetic population data.
[0024] For example, if we have knowledge of the (aggregate) demographic distribution of people living in a particular city / town, we can distribute individuals into households proportionally and then randomly distribute households to building locations. For instance, each individual could be assigned a household ID, and if two people are assigned the same household ID, their households' latitudes and longitudes would be the same in the resulting composite population data.
[0025] In S16, the computing means outputs individual-level synthetic population data. The output may be in any data format suitable for further intended use of the synthetic population, particularly preferred data formats including CSV (comma-separated value) files and XML (extensible markup language) files. The synthetic population includes households (consisting of individual members with various demographic attributes (primarily age and sex)), and these households are assigned to real-world locations (in the form of GPS locations) throughout the target geographic area.
[0026] A common method for generating synthetic data is to utilize readily available aggregate statistics from multiple sources (e.g., Eurostat, Synthetic Population Catalyst, health survey data, spatial interaction models, census data, OpenStreetMap) to generate a synthetic population dataset that reflects the population of a target geographic area. By using mathematical models that can take aggregate statistics and generate individual-level data, the data generation techniques described herein ensure a realistic estimate of the population of any city or country.
[0027] The data generation techniques described herein can generate individual-level data, including demographic data and characteristics such as ethnicity, age, health, income, household status, and household location, for any geographical area where aggregate-level data exists. Users are required to perform only minimal input, significantly reducing the time and effort required using conventional methods. By using aggregate statistics, the data generation techniques of the present invention avoid the need for costly and legally restricted data extraction processes, thus saving time and resources. From the end-user's perspective, the software module embodying the techniques described herein requires only geographical names as input and uses a unique set of algorithmic steps to obtain aggregate demographics and fit the ratios to a composite population at the individual level. This creates a comprehensive composite dataset based on real-world statistics and real-world demographics.
[0028] In some embodiments, a computer-based method for generating synthetic data may further involve the computing means assigning ethnic projection data to a synthetic population using ethnic demographic data for a target geographic area. Optionally, the ethnic demographic data may be obtained using a Large-Scale Language Model (LLM). For example, a pre-prepared database containing ethnic data for multiple geographic areas may be examined. The pre-prepared database may be prepared initially using appropriate LLM prompts and appropriate processing of LLM outputs. Alternatively, ethnic data may be assigned to a synthetic population using a live API connection to an LLM. Using LLM data provides additional statistics as needed for a more realistic population representation.
[0029] While LLMs have shown promise in data generation, their application in synthetic population generation remains limited. Existing methods often lack the ability to effectively leverage LLMs for tasks such as ethnic forecasting and data organization and preparation. This disclosure enables the effective integration of LLMs for tasks such as ethnic forecasting, allowing for a more accurate and granular representation of demographics.
[0030] Examples of suitable LLMs for implementation include OpenAI's generative pre-trained transformer-based models, including GPT-4® and o3. Other suitable LLMs include Meta AI's LlaMA models, including LlaMA 3.3, and Google AI's Gemini models, including Gemini 2.0 Flash. Of course, LLMs can also be used to obtain non-ethnic demographic data, including population income.
[0031] In some embodiments, a computer-based method for generating synthetic data may further involve the computing means accepting input for a target time period and obtaining aggregate demographic data for the target geographic area and the target time period. Additionally or alternatively, the computing means may obtain infrastructure information for the target geographic area and the target time period. Thus, the resulting synthetic population data can represent the population and spread within the target geographic area at a past or future time period (e.g., a specific year or month), thereby enabling the use of the synthetic population data for historical analysis or future predictive analysis. If data for a specified time period is not available, data for the nearest available time period may be used.
[0032] In some embodiments, the computer-based method for generating synthetic data may be accessible using a graphical user interface (GUI), thereby providing the end user with a continuously guided human-machine interface for generating (and possibly subsequent use) synthetic population data. The computing means may provide and use the GUI to accept input of a target geographic area (and any other necessary parameters). The computing means may be configured to output a representation of the synthetic population data using the GUI, which may be in the form of tabular data or a map-based visualization of the population. Thus, a platform incorporating synthetic population data generation and retrieval in the backend allows the end user to interactively browse the data.
[0033] The synthetic population data provided using the techniques described herein is necessarily anonymized and therefore provides individual-level population data while addressing important privacy and data security concerns. The ability to accurately capture and utilize individual-level data is expected to open up great potential for developing more effective, targeted, and personalized solutions across a wide range of applications. For example, the synthetic population data may be used in a traffic simulation of a geographical area, where a microscopic agent-based traffic simulation may further utilize actual acquired traffic data of the geographical area. The traffic simulation may be configured to generate simulated predictions of traffic in the geographical area with respect to the synthetic population of the geographical area (including, for example, population density in sub-areas).
[0034] Synthetic population data may be used additionally or alternatively in resource allocation simulations for geographical areas, where the simulations use actual resource data for the geographical area. For example, synthetic population data may thereby enable healthcare resource allocation strategies and vaccination rollout strategies with respect to the synthetic population of the geographical area. Thus, the technology described herein enables the development of targeted health interventions, such as those for the elderly or low-income households.
[0035] Synthetic population data may be used additionally or alternatively in epidemiological simulations of geographical areas, which may further utilize actual epidemiological data of those geographical areas. For example, synthetic population data may thereby enable accurate prediction and forecasting of disease outbreaks within a geographical area, and enable resource allocation for medical or emergency response.
[0036] These and other use cases enable simulations with improved accuracy. Synthetic population data reflects current demographics more accurately than traditional census data. This data enables timely decision-making using the latest information and provides detailed insights with granular information on age, sex, and household.
[0037] In some embodiments, a computer-based method for generating synthetic data may be used in combination with alternative data generation or data retrieval techniques. For example, if population data already exists in a preferred format and is available for some (but not all) geographical regions, the end user may avoid initiating unnecessary computational processing using the techniques described above and instead retrieve the preferred data directly. Thus, one aspect of the present disclosure provides a method for obtaining population data for a geographical region, implemented using computing means. The computing means accepts input of a target geographical region. When the target geographical region corresponds to a region contained within a first predetermined set of geographical regions, the computing means generates synthetic population data for the target geographical region using the synthetic population data generation method described above. Alternatively, when the target geographical region corresponds to a region contained within a second predetermined set of geographical regions, population data for the target geographical region is retrieved. Of course, the retrieved population data may be preprocessed and cleansed as needed.
[0038] The techniques disclosed herein address the challenges of existing synthetic population generation methods, namely data inconsistencies, limited geographical coverage, and a lack of micro-level detail. These techniques achieve this through a combination of standardized data integration techniques, processing that addresses a broad geographical scope, and the effective use of, for example, LLMs.
[0039] The technique addresses inconsistent data formats and varying levels of granularity by integrating data from multiple sources, including Eurostat and Synthetic Population Catalyst, into a unified synthetic dataset. This eliminates the need for extensive data organization and preparation, ensures consistency across different regions, and makes it easier for end users to generate accurate and comparable synthetic population data.
[0040] The technique expands the geographical reach of synthetic population generation by providing a unified solution across various geographical regions worldwide, including, for example, the UK and the EU. This eliminates the need for separate data development for each new location, making the technique described herein more efficient and scalable compared to existing techniques.
[0041] The techniques described herein generate micro-level data, including, for example, individual characteristics and household composition. This provides a more detailed and realistic representation of the population than existing technologies, making the techniques described herein suitable for a wide range of applications requiring fine-grained information.
[0042] In some configurations, the techniques described herein utilize LLM for tasks such as ethnic prediction, thereby increasing the accuracy and granularity of the generated synthetic population. This addresses the limitations of existing methods, which often struggle to accurately represent diverse demographics.
[0043] By combining all of these advantageous features, the techniques described herein provide a standardized, comprehensive, and efficient approach to generating synthetic population data. This not only improves the quality and accessibility of synthetic data for various applications but also reduces the time and cost associated with data acquisition and processing.
[0044] Figure 2 provides a schematic overview of exemplary modules and data stores used in a method for generating synthetic data. These modules may be collectively referred to as the synthetic data generation module 200.
[0045] The synthetic data generation module 200 is designed to create a realistic and detailed population dataset for a specified geographical area, such as a city. The resulting synthetic population data will include various demographic attributes, geographic coordinates, and other relevant information. The processing of module 200 includes the following steps. In the following example, the open-source Eurostat database is used as the source for aggregated demographic data, the open-source OpenStreetMap® database is used as the source for infrastructure information, and the Python® package qwiki is used to obtain up-to-date population estimates for a specified geographical area.
[0046] First, the user provides the name of a geographic region 211 via a graphical interface. By using known fuzzy matching techniques, the best match for the geographic region is determined, and the closest matching row in the Eurostat data file is found based on the provided geographic region name. The user may further select specific demographic indicators for later visualization and / or debugging purposes (for example, the user may wish to visualize the proportion of the population aged 80 and over through the selection of the Eurostat indicator "PC_Y80_MAX," which allows the user to quickly visualize whether the trend of a particular demographic indicator is accurate). Optionally, the user may input a time point in time so that the composite population data represents that time.
[0047] Next, the demographic dataset module 201 examines the complete demographic dataset 221 (the Eurostat database in this example) and downloads and processes aggregated demographic data 222 for the specified geographical area 211. This process includes downloading the data, cleaning the data as needed, displaying unique values, filtering by country, and visualizing the data.
[0048] The demographic-specific population processing module 202 examines the complete infrastructure dataset (not shown, OpenStreetMap in this example) and downloads the corresponding infrastructure data for geographical area 211. Module 202 is used to collect boundary data, building polygons, and traffic data. The infrastructure data is processed to obtain centroids for building polygons and, if necessary, may be combined with NUTS boundary data for a larger area (e.g., a country) in which geographical area 211 is located. Module 202 outputs building information for geographical area 223. Population data for geographical area 211 may be taken from alternative sources, including Wikidata. Demographic data for geographical area 222 is prepared based on Eurostat data and has a calculated population distribution across different years and all available demographic indicators.
[0049] The synthetic population generation module 203 generates an initial synthetic population for a specified geographical area 211 (and the target time point, if applicable) using the iterative proportional fitting technique described later. This synthetic population data is stored in a temporary file, the initial synthetic population dataset 226.
[0050] The population viewer module 204 may be executed at this point to visualize the initial synthetic population data 226 in a tabular form.
[0051] Next, the inter-household population distribution module 205 assigns households to individual buildings based on the initial synthetic population data 226 and building information for the geographical area 223. This merges the initial synthetic population dataset 226 with the building data to create a comprehensive dataset containing information detailing the residential location of each individual within the synthetic dataset, as well as information detailing household composition (e.g., the number of people sharing a single residence and their relationship status). The synthetic household distribution data 224 is further processed and stored.
[0052] In this example, the ethnic distribution module 206 is used to integrate ethnic data into a synthetic population dataset using a large language model, which allows access to up-to-date aggregate ethnic statistics for a given geographical area 211 (provided the underlying LLM is trained on the latest data). Ethnic distributions are calculated and assigned to individuals within the synthetic population dataset, ensuring that the overall population is accurately represented.
[0053] The synthetic data generation module 200 ultimately outputs a merged synthetic population dataset containing demographic and geographical information. The synthetic population dataset 227 with ethnic information is saved as a CSV file.
[0054] In this example, the synthetic data generation module 200 is implemented using Python. A single Python script may be used as a central control for a complex data processing pipeline, or a series of scripts (each performing the functions of modules 201-206) may be combined to generate a synthetic population dataset for a target geographic area, incorporating real-world demographic and geographical information. The central control script may first import the necessary Python libraries for data manipulation, fuzzy matching, and API interaction. This includes pandas, numpy, sys, csv, fuzzywuzzy, and custom modules for each stage of the pipeline.
[0055] An example SyntheticPopulationGenerator class and schema are provided to generate synthetic population data for a specific geographical area (and time period) using demographic data. In this example, the geographical area is a city, and the time period is a specific year. Class: SyntheticPopulationGenerator a. Attributes: i. year: The year in which the synthetic population is generated (initialized to None). ii. city: A city where a synthetic population is generated. iii. es_key: A key used to access specific demographic data. iv. age_distribution_indicators: A list of indicators representing different age groups. v. age_group_labels: A list of labels for different age groups. vi. age_group_ranges: A dictionary that defines the age range for each age group label. b. Initialization (__init__method): i. Arguments: 1. city(str): A city where a composite population is generated. 2. es_key(str): The key used to access specific data. ii. Attributes to be initialized: 1. year, city, es_key 2. age_distribution_indicators, age_group_labels, age_group_ranges c. Method: i. load_and_prepare_data: 1. Load and prepare demographic data from a CSV file. 2. To handle missing values, perform data cleaning and interpolation. 3. Convert the data to a portrait format to facilitate operation. 4. To facilitate data access, create a pivot table with geographical and yearly levels. ii. generate_synthetic_population: 1. Generate the composite population for a given year. 2. Arguments: a. year(int): The year in which the synthetic population is created. 3. Return value: a. pandas.DataFrame containing synthetic population data 4. Process: a. Filter the demographic data for the relevant age distribution indicators. b. If data for the requested year is missing, find and use the closest available year. c. Calculate the total population and age distribution. d. Initialize the population based on the age distribution. e. Adjust the population using iterative proportional fitting. f. Assign a random age within the range of the age group. g. Generate a gender distribution based on demographic data. h. Assign a household ID and save the composite population data to a CSV file. iii. initialise_population: 1. Initialize a population array with the specified age distribution. 2. Arguments: a. total_population(int): Total number of individuals in the population b. age_distribution(pd.Series): Age distribution of the population 3. Return value: a. A numpy.array representing the initial population with an age distribution. iv. apply_ipf: 1. Apply iterative proportional fitting (IPF) to adjust the population to match the target marginal distribution. 2. Arguments: a. population(np.array): Initial population array b. target_margins(pd.Series): Target marginal distribution of the age distribution c. max_iterations(int): Maximum number of IPF iterations (default is 1000) d. tolerance(float): Tolerance value for stopping conditions (default is 1e-5) 3. Return value: a. Adjusted population sequence after IPF v. generate_random_age: 1. Generate a random age within the specified age group range. 2. Arguments: a. age_group(str): Age group label 3. Return value: a. An integer representing a random age within the specified age group range.
[0056] An example Main Config pseudo-script and schema that demonstrate the functionality of the synthetic data generation module 200 are further provided. To reiterate, in this example, the geographical area is a city, and the time period is a specific year. a. Import: i. Required Libraries: Import Python libraries necessary for data manipulation, fuzzy matching, and API interaction. These include pandas, numpy, sys, csv, fuzzywuzzy, and custom modules for each stage of the pipeline. ii. Pipeline script: Import modules that represent individual pipeline stages: 1. eurostat_data_processing_one: Downloads and processes demographic data from Eurostat. 2. open_streetmap_two: Retrieves geographical data (buildings, boundaries) from OpenStreetMap. 3. european_synthetic_pop_three: Generates a synthetic population based on demographic data. 4. household_to_building_four: Assigns households to buildings and merges the data. 5. create_european_household_data: Processes and combines synthetic population data. 6. ethnicity_breakdown_six: Distribute ethnic groups based on country-specific data. b. Global variables: i. CITY: Remembers the city name provided as a command-line argument. These are the main target cities for the pipeline. ii. INDICE_INTEREST: Specifies the Eurostat metric of interest (e.g., population density). c. Functions: i. find_best_match(user_input, df, column_name): 1. Receive a dataframe containing city names provided by the user and Eurostat labels. 2. Use fuzzy matching to find the Eurostat label that best matches the city. 3. Return the corresponding row from the DataFrame. ii. distribute_ethnicities(population_df, ethnicity_distribution): 1. Receive a DataFrame of composite population data and a list of ethnic percentages. 2. Randomly assign ethnicity to individuals within a population while maintaining a specified distribution. d. Main Execution (if__name__ == "__main__":) i. Eurostat data processing (pipeline 1; demographic dataset module 201): 1. Import the Eurostat label mapping CSV. 2. Find the Eurostat label that best matches the input city. 3. Initialize the EurostatDownload object from the eurostat_data_processing_one module. 4. Execute the first pipeline stage: a. Download and clean the Eurostat data. b. Filter the data based on the Eurostat label of the city. c. Extract the specified indicators for the city. d. Visualize the extracted data. ii. OpenStreetMap data processing (pipeline 2; population processing module 202 by demographic): 1. Initialize the APICallOSM object from the open_streetmap_two module. 2. Execute the second pipeline stage: a. Download city boundary data from OpenStreetMap. b. Download the building data (polygons). c. Extract the building's center of gravity and save it as a CSV file. d. Download the traffic edges (roads, rails). e. Combine building data with urban boundaries. f. Retrieve population data from Wikidata based on city names. g. Prepare demographic data for synthetic population generation. iii. Synthetic Population Generation (Pipeline 3; Synthetic Population Generation Module 203): 1. Initialize a SyntheticPopulationGenerator object from the european_synthetic_pop_three module. 2. Execute the third pipeline stage: a. Load and prepare demographic data. b. Generate a synthetic population for a specified year (e.g., 2023). iv. Household and building allocation (Pipeline 4; Inter-household population distribution module 205): 1. Initialize the HouseholdGenerator object from the household_to_building_four module. 2. Execute the fourth pipeline stage: a. Assign households to buildings based on the combined population and building location. b. Merge population and building data into a single DataFrame. c. Save the merged data as a CSV file. d. Process and combine the population synthesis data from create_european_household_data using SyntheticPopulationProcessor. e. Use EthncityBreakdown from ethnicity_breakdown_six to distribute ethnicities into the synthetic data. f. Save ethnically enhanced population data as a CSV file.
[0057] An example Python pseudocode is provided for the example ethnic distribution module 206. This Python script is responsible for distributing ethnicities across the entire synthetic population based on country-specific data captured from LLM. It uses a CSV file containing the ethnic breakdown percentages of each country in the EU27 (European Union). a. Class definition: i. EthncityBreakdown class: This class encapsulates the logic for processing ethnic distribution. b. Constructor (__init__) i. It accepts two parameters: 1. dataframe_input: Path to the CSV file containing ethnic breakdown data 2. country_name: The name of the country for which ethnic distribution information is needed. ii. Load the CSV file into a Pandas DataFrame (european_ethnicity_dataset). iii. Handle potential parsing errors by creating an empty DataFrame when the file cannot be read. c. Method: i. get_dataset_info(): Returns information about the ethnic breakdown dataset. ii. get_specific_country(): Filters the dataset to extract data for the specified country. iii. get_ethnicity_percentage(): iv. Extract the main ethnic groups and their corresponding percentages from country-specific data. v. Returns a list of tuples, each representing an ethnic group and its percentage. d. Function i. This script uses the provided CSV file as the source for determining the ethnic breakdown within the EU27. ii. Filter the dataset based on the provided country names. iii. Extract the main ethnic groups and their percentages for the selected countries. iv. This information may be returned as a list of tuples, which may be used to randomly distribute ethnic groups across the entire composite population. v. Essentially, this script provides a mechanism to ensure that synthetic populations reflect the ethnic diversity of the target country, based on real-world data.
[0058] Traditional use of LLM-based techniques is limited in that the data is not necessarily validated when input into the training set during the training phase of the LLM. The knowledge in the training set is often static and may not be accurate with respect to dates newer than the preparation date of the training set. According to this disclosure, the techniques described herein can generate micro-level (individual) population data with a very high degree of certainty, based on ground truth (e.g., census data and geographical structure).
[0059] The synthetic population generation module 203 utilizes IPF to weight aggregated data, then applies weighted sampling, so that the resulting synthetic population data reflects the desired proportions. Thus, the IPF algorithm adjusts the initial population based on the target marginal distribution, ensuring an accurate representation of the age and sex distributions. Mathematically, IPF is a technique for finding the matrix X that is closest to another matrix Z, given the constraint that the marginal distributions of the rows and columns of X are (approximately) identical to those of the target matrix Y. IPF is also known as biproportional fitting, RAS algorithm, raking, or matrix scaling.
[0060] Figure 3 provides a flowchart detailing the use of IPF for population synthesis, implemented using computing means. For a two-dimensional contingency table population data X (aggregated demographic data in this context), the classical IPF algorithm alternates between adjusting elements to satisfy the target row marginal distribution u and adjusting elements to satisfy the target column marginal distribution v.
[0061] In 301, the computing means initiates the IPF procedure, and in 302, accepts the input of the initial dataset and the target marginal distribution. Initially,
number
[0062] In 303, the computing means sets the maximum number of iterations and the tolerance. The IPF algorithm stops if the difference between the current marginal distribution and the target marginal distribution is less than the tolerance for all categories. The tolerance in this context is based on aggregate statistics from a dataset (e.g., the Eurostat dataset) and reflects the proportion of demographic characteristics from the available dataset.
[0063] In 304, the computing means evaluates the current number of iterations in relation to a preset maximum number of iterations. Unless the termination criteria are met, the computing means proceeds to 305 to calculate the current marginal distribution. In 306, the computing means determines whether the current marginal distribution is close to the target marginal distribution.
[0064] If the current marginal distribution is not close to the target marginal distribution (306, "no"), in 307, the computing means adjusts the population. The computing means adjusts the population to satisfy the target row marginal distribution, which essentially involves weighted normalization.
number
number
number
[0065] For example, consider an initial aggregated dataset like the one shown in Table 1 below: [Table 1] Rows 1 and 2 may represent, for example, gender (male and female), respectively. Columns 1 and 2 may represent, for example, age (50 years or older and under 50 years old), respectively (i.e., 24 men 50 years or older, 26 women under 50 years old, etc.). In this example, the target sum for rows 1 and 2 is [70, 34], and the target sum for columns 1 and 2 is [43, 43]. For each row i and column j, the data is updated using the IPF algorithm described above. After the first iteration, the data is updated to the data in Table 2 below: [Table 2] This iterative update is performed until convergence occurs. The final adjusted population M may then be normalized to provide weights corresponding to the i and j values. The final adjusted population M may then be divided by the sample size, and these observation weights may be reallocated to the synthetic data. Alternative approaches to the classical IPF algorithm described above may be used, including factor estimation.
[0066] The above-described synthetic data generation module 200 and its functions prepare synthetic population data for a geographical area entered by the user and match it with data from separate data sources. In some configurations, alternative data generation or data extraction techniques may be used for pre-prepared data sources. For example, the aforementioned synthetic data generation module 200 may be used when individual-level data is not readily available, and the synthetic data extraction module 400 may be used when individual-level data is pre-prepared.
[0067] Figure 4 shows a schematic overview of an exemplary module and data store used in the synthetic data retrieval method. The modules here may be collectively referred to as the synthetic data retrieval module 400.
[0068] Module 400 focuses on processing and manipulating existing population data. In the example, the existing population data is stored in Protocol Buffers (Protobuf) format, containing structured population data. The Protobuf data structure may be prepared manually by the user or obtained from, for example, the Synthetic Population Catalyst project at the Alan Turing Institute. These data structures obtain data from various sources, such as UK census data, NHSx, and Department for Work and Pensions. In this example, the Protobuf file contains various instances of aggregated data.
[0069] The processing of module 400 includes the following steps. First, the user provides the name of geographic region 411 via a graphical interface. The data structure decomposition module 401 receives the Protobuf data structure corresponding to geographic region 411 and decomposes the data structure into datasets 421-426. These datasets include a dataset with individual demographics (individual demographics 421), a dataset with individual households and locations (individual household information 422), a dataset with household characteristics including type, location, rooms, number of cars, etc. (household characteristics 423), a dataset with locations of activities performed by individuals (activity locations 424), a dataset with centroid latitude and longitude of polygons describing households (household centroid locations 425), and a dataset with specific latitude and longitude of households (household latitude and longitude 426). The decomposition module 401 retrieves aggregated demographic data available in the Protobuf file and decomposes this data. Through the incorporation of household information from OpenStreetMap, the synthetic population may be distributed into households, and these households may be distributed to buildings within a geographical area. For example, the population may be randomly distributed into households within the area in which the synthetic population resides, and these households may be distributed or allocated to buildings within the same geographical area using OpenStreetMap information.
[0070] The required dataset merge module 402 merges the datasets from the constituent datasets that are relevant to the immediate task to be performed afterward (which are naturally subject to change).
[0071] In this example, the synthetic data extraction module 400 is implemented using Python. Two example classes are provided, which are used for decomposing a Protobuf data structure into a CSV dataset and merging the CSV dataset into synthetic population data. MergeDatasets Class: a. Objective: This class merges two datasets based on a common identifier, fills in missing geospatial information, and assigns specific attributes. b. Attributes: i. Dataset_1: A DataFrame representing the first dataset. ii. Dataset_2: A DataFrame representing the second dataset. c. Method: i. __init__(self, dataset_one_location:str, dataset_two_location:str) → None: Initializes the class by loading the dataset from the specified location. ii. combine_dataframe(self) → None: Merges two datasets using a common identifier and saves the result to a CSV file. iii. house_latitude_longitude_assigned(self) → None: Based on the MSOA (Middle Super Output Area) code, assign latitude and longitude to the household using a round-robin method and save the result. iv. mapping_msoa(self, latitude,longitude) → list: Maps latitude and longitude to MSOA codes using an external API. v. fill_empty_row(self) → None: Fills in missing MSOA codes based on the most common MSOAs in the surrounding rows. vi. person_to_household(self) → None: Merges individual-level and household-level datasets by expanding member data and matching household identifiers. ExtractCSV class: a. Purpose: This class extracts data from a protobuf file and exports it in CSV format. b. Attributes: i. file_path(str): Path to the protobuf file ii. population_string: String representation of population data iii. Population data analyzed from pop:protobuf files c. Method: i. data_load(self) → None: Parses the protobuf file and loads population data. ii. person_csv(self) → None: Extracts individual attributes and exports them to a CSV file. iii. household_csv(self) → None: Extracts household-level data and exports it to a CSV file. iv. household_details_csv(self) → None: Extracts detailed information and exports it to a CSV file. v. location_points(self) → None: Extracts geospatial data of various activity locations and exports it to a CSV file. vi. home_locations_msoa(self) → None: Extracts and exports home locations at the MSOA level. vii. home_locations_specific(self) → None: Extracts and exports the location of a specific house based on geospatial coordinates.
[0072] The following pseudocode illustrates a preferred example of processing by the synthetic data extraction module 400.
number
[0073] The above description provides a comprehensive understanding of the technical components and functions of the exemplary synthetic data generation module 200 and the exemplary synthetic data extraction module 400, highlighting specific steps involved in generating, extracting, and processing synthetic population data from different domains.
[0074] Figure 5 shows an exemplary GUI panel 500 suitable for starting an exemplary synthetic data generation module 200 and / or an exemplary synthetic data extraction module 400. Element 502 allows input of geographical region selection using a dropdown menu, where any entry in the dropdown menu may correspond to a geographical region where a corresponding Protobuf data structure exists. Alternatively, element 504 may allow typed input of geographical regions, while element 502 may be preferred for input of geographical regions where a corresponding Protobuf data structure does not exist. When either element 502 or element 504 is provided, selecting the button 506 labeled “Generate Synthetic Population” starts the synthetic data generation process or the synthetic data extraction process, respectively (e.g., using the synthetic data generation module 200 or the exemplary synthetic data extraction module 400). The selection of button 506 may not be enabled until a valid input is provided in either element 502 or element 504.
[0075] The following provides an explanation of how the example GUI can integrate and reflect the processing provided by the example processing module. a. Data input and configuration i. Functionality: The GUI may allow the user to specify specific configurations or settings used across different data processing scripts. This may include setting file paths, selecting datasets, or defining parameters for data processing. ii. UI element: A configuration panel or menu into which the user can input or select various options. This may be a set of text boxes, drop-down menus, or checkboxes that allow the user to define specific settings (for example, selecting a data source or specifying a directory to save the output). b. Generating household data i. Functionality: The GUI provides a way for the user to begin generating or editing European household data. This may involve selecting specific parameters or models to be used in the data generation process. ii. UI element: The "Generate Household Data" button may execute the create_european_household_data.py script described above when clicked. Alternatively, there may be an option for the user to specify certain parameters (e.g., geographical area or demographic characteristics) via input fields or dropdowns before the process is executed. c. Creating a synthetic population i. Functionality: Users may use a GUI to create or simulate synthetic population datasets based on predefined or user-specified criteria. This may be particularly advantageous for demographic analysis or policy simulation. ii. UI elements: Similar to household data generation, the GUI may have a dedicated section for creating synthetic populations. Users may input parameters such as population size, age distribution, and geographical range. Buttons such as "Create Synthetic Population" may trigger relevant scripts. d. Data processing and analysis i. Functionality: The GUI may include features that allow the user to process raw Eurostat data, clean the data, or prepare the data for analysis. This may be particularly useful for researchers or analysts dealing with large datasets. ii. UI elements: There may be a "Process Data" button that the user clicks after selecting a raw Eurostat data file. Additional GUI components may include progress indicators or logs showing the processing status, allowing the user to monitor the workflow. e. Output display and interaction: i. Functionality: After the script has been executed (for example, generating household data or processing Eurostat data), the GUI may either display the results directly or provide an option to save the processed data to a file. ii. UI elements: GUI may have text display areas or grids that show the results or summaries of actions performed by scripts. Users may also be presented with options to download or export the processed data for further use. f. Integration and Workflow: i. Functionality: The GUI may integrate these various scripts into a single, cohesive workflow, allowing users to move from configuring settings to processing data and finally displaying or exporting results without having to directly interact with the underlying code. ii. UI elements: The layout may be organized into tabs or sections, each dedicated to a different aspect of the data processing workflow, ensuring that users can easily navigate between different stages of those tasks.
[0076] Figure 6 shows the same exemplary GUI panel 500 after successful generation of synthetic population data. In this example, the user entered the Polish city "Krakow" into element 503 and started generating the synthetic data using button 506. Text panel 508 provides a status update to inform the user that the generation of synthetic population data has been successful. GUI panel 500 further includes button 510, which allows the user to view the generated synthetic population data on a map; button 512, which allows the user to view the synthetic population data in a table format; and button 514, which allows the user to start a simulation using the synthetic population data. The selection of buttons 510, 512, or 514 may not be enabled until the synthetic population data has been generated or retrieved.
[0077] Figure 7 shows another example of GUI panel 520 that appears when button 512 of GUI panel 520 is selected. GUI panel 520 contains a tabular representation of the generated synthetic population data. In this example, the data may include an individual's ID, the latitude and longitude of that individual's household, the individual's age, the individual's sex, and the individual's ethnicity. Of course, additional and / or alternative individual characteristics may be provided. And of course, the tabular data may be provided alternatively in text panel 508 of GUI panel 500.
[0078] Figure 8 shows another example GUI panel 530 that appears when button 510 of GUI panel 500 is selected. GUI panel 530 includes a map-based representation of the generated synthetic population data. In this example, the household location of each individual may be plotted using the latitude and longitude of each individual in the generated synthetic population data. Furthermore, selecting each plotted location may provide the user with additional information (corresponding age, gender, ethnicity, etc.) (not shown). And of course, the map-based representation of the data may be provided alternatively in text panel 508 of GUI panel 500.
[0079] This disclosure provides an efficient approach to generating synthetic population data for specified cities and regions by combining conventional data processing techniques with advanced artificial intelligence capabilities. The system is divided into two modules, one tailored to geographical areas with existing data structures and the other to areas without, and leverages readily available data sources such as Eurostat, OpenStreetMap, and Wikidata, as well as structured population data stored in Protobuf files.
[0080] While the use of IPF ensures an accurate representation of demographics, incorporating LLM in assigning specific characteristics (e.g., ethnicity) to synthetic populations significantly enhances the realism and accuracy of the generated synthetic population data. Combining LLM's ability to analyze and interpret complex demographic patterns with its ability to learn from vast amounts of data makes it possible, for example, to depict ethnic diversity within synthetic populations in a more granular and representative manner.
[0081] The modular design of the system enables adaptability and scalability, allowing for application to a wide range of cities and regions. Its ability to generate detailed and realistic synthetic population data has significant implications for various fields, including urban planning, traffic modeling, public health research, and social impact analysis.
[0082] The techniques described herein provide invaluable tools for researchers, policymakers, and other stakeholders seeking to understand and model complex demographics. By providing a comprehensive and accurate representation of demographic characteristics, this system facilitates informed decision-making and contributes to the development of more effective and equitable policies.
[0083] Those skilled in the art will understand that many hardware configurations are suitable for implementing the techniques described herein. One preferred hardware implementation for performing synthetic data generation or synthetic data extraction according to embodiments is specified below, namely an Intel Core i7-5930K, an NVIDIA GeForce RTX 3090 (24 GiB), 64GB of host memory, and running Ubuntu 20.04.6 LTS.
[0084] Figure 9 is a block diagram of a computing device, such as a data processing server, which may be used to embody the present invention and realize a method for generating synthetic data. The computing device includes a plurality of processors or processing units 993 and memory 994. Optionally, the computing device also includes a network interface 997 for communicating with other computing devices, such as other data storage devices or external data processing devices. One embodiment may consist of a network of such computing devices.
[0085] Optionally, the computing device includes one or more input mechanisms such as a keyboard and mouse 996, and one or more display units such as a monitor or screen 995. These components are connectable to each other via a bus 992.
[0086] Memory 994 may include computer-readable media, and this term may refer to a single or multiple media configured to carry computer-executable instructions or to store data structures (e.g., centralized or distributed databases and / or associated caches and servers). Computer-executable instructions may include instructions and data that are accessible by, for example, a general-purpose computer, a dedicated computer, or a dedicated processing device (e.g., one or more processors) and cause them to perform one or more functions or operations. Thus, the term “computer-readable storage medium” may include any medium capable of storing, encoding, or carrying a set of instructions for execution by a machine and causing a machine to perform any one or more of the methods of this disclosure. Accordingly, the term “computer-readable storage medium” may be interpreted to include, but is not limited to, solid memory, optical media, and magnetic media. Such computer-readable media may include, but are not limited to, non-transient computer-readable storage media, including random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), compact disk read-only memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, and flash memory devices (e.g., solid memory devices).
[0087] Multiple processors 993 are configured to control a computing device and perform processing operations, for example, by executing code stored in memory to realize the methods for generating synthetic data described herein and in the claims. Memory 994 stores data read and written by the multiple processors 993. As referred to herein, the processor may include one or more general-purpose processing devices such as microprocessors, central processing units, etc. The processor may include a composite instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor that implements other instruction sets, or a processor that implements a combination of instruction sets. The processor may also include one or more dedicated processing devices such as an ASIC, FPGA, digital signal processor (DSP), network processor, etc. In one or more embodiments, the processor is configured to execute instructions for performing the operations and steps considered herein.
[0088] The display 995 may display a user interface. Inputs 996 in the form of a touchscreen or screen, as well as a keyboard and / or voice, may be used for user input. For example, a user interface including a GUI panel 500 may be embodied as a user application shown on the display and optionally connected to the voice input / output of a user device for voice input and audio output. For example, local storage of geographical area details may be provided by memory 994, and multiple processors 993 may perform background functions. Core functions (e.g., synthetic population data generation) may preferably be implemented remotely from the user device, for example, on the cloud.
[0089] The network interface (network I / F) 997 may be connected to a network such as the Internet, and can connect to computing devices and the like via the network. The network I / F 997 may control data input and output with other devices via the network. Other peripheral devices such as microphones and speakers may be included in the computing device.
[0090] Multiple processors 993 may execute instructions stored in a portion of memory 994, exchange data between modules via bus 992, and exchange data with external entities such as data stores and simulation hardware via network interface 997.
[0091] A method for embodying the present invention may be performed on a computing device as illustrated in Figure 9. Such a computing device does not need to have all the components illustrated in Figure 9, but may consist of a subset of those components. A method for embodying the present invention may be performed by a single computing device that communicates with one or more data storage servers over a network. The computing device may be the data storage itself that stores pre-defined data structures, lists of geographical regions, statistical parameters (for use in IPF, for example), etc.
[0092] A method for embodying the present invention may be carried out by a plurality of computing devices working together. One or more of the plurality of computing devices may be a data storage server that stores at least a portion of a pre-prepared data structure, a list of geographical regions, statistical parameters (for use in IPF, for example).
[0093] In addition, modules and components may be implemented as firmware or functional circuit configurations within hardware devices. Furthermore, modules and components may be implemented as any combination of hardware devices and software components, or solely as software (e.g., code stored in a machine-readable medium or transmission medium, or otherwise embodied).
[0094] Unless otherwise specified, as will be apparent from the following considerations, throughout this specification, any consideration using terms such as “receive,” “accept,” “obtain,” “generate,” “allocate,” “provide,” and “output” is understood to refer to the actions and processes of a computer system or similar electronic computing device that manipulate data represented as physical (electronic) quantities in the registers and memory of a computer system and convert it into other data similarly represented as physical quantities in the memory or registers of a computer system, or in other such information storage, transmission, or display devices.
[0095] Although certain embodiments have been described, these embodiments are presented only as examples and are not intended to limit the scope of the invention. In fact, the novel methods and apparatus described herein may be embodied in various other forms, and furthermore, various omissions, substitutions, and modifications may be made in the forms of methods and apparatus described herein.
[0096] The following numbered notes are useful for understanding the present invention. [Note 1] A computer-based method for generating synthetic data, comprising: receiving input of a target geographic area; obtaining aggregate demographic data for the target geographic area; generating a synthetic population based on the aggregate demographic data using iterative proportional fitting (IPF); obtaining infrastructure information for the target geographic area; forming synthetic population data by assigning the synthetic population to multiple households using the infrastructure information; and outputting the synthetic population data. [Note 2] A method for generating synthetic data according to Appendix 1, further comprising assigning ethnic data to the synthetic population using ethnic demographic data of the target geographic area. [Note 3] The aforementioned ethnic demographic data is obtained using a large-scale language model (LLM) and the method for generating synthetic data described in Appendix 2. [Note 4] A method for generating composite data according to any one of the appendices 1 to 3, further comprising accepting input for a target time period, obtaining aggregated demographic data for the target geographic area and the target time period, and / or obtaining infrastructure information for the target geographic area and the target time period. [Note 5] The synthetic population data includes any or all of age, sex, health, income, ethnicity, and household information, as described in any one of the methods for generating synthetic data described in any one of the items 1 to 4. [Note 6] A method for generating synthetic data according to any one of the appendices 1 to 5, further comprising providing a graphical user interface (GUI), using the GUI to receive the input for the target geographic area, and using the GUI to output a representation of the synthetic population data. [Note 7] A method for generating synthetic data according to any one of the appendices 1 to 6, further comprising outputting the synthetic population data for use in any or all of the following: a traffic simulation of the geographical region using traffic data of the geographical region; a resource allocation simulation of the geographical region using actual resource data of the geographical region; and an epidemiological simulation of the geographical region using actual epidemiological data of the geographical region. [Note 8] A method for obtaining population data of a geographical area, implemented by computer, comprising: receiving input of a target geographical area; generating composite population data of the target geographical area using the method described in any one of the appendices 1 to 7 when the target geographical area corresponds to a first predetermined number of geographical areas; and retrieving population data of the target geographical area when the target geographical area corresponds to a second predetermined number of geographical areas. [Note 9] A data processing device comprising means for receiving input of a target geographic area, and a processing unit configured to perform the method described in any one of the appendices 1 to 8. [Note 10] A computer program including instructions, wherein when the program is executed by a data processing device, the program causes the data processing device to execute the method described in any one of the appendices 1 to 8. [Note 11] A computer-readable medium containing instructions, wherein when the instructions are executed by a data processing device, the data processing device causes the data processing device to perform the method described in any one of the appendices 1 to 8.
Claims
1. A method for generating synthetic data, implemented by a computer, The system accepts input for the target geographical area, To obtain aggregated demographic data for the aforementioned geographical area, Using iterative proportional fitting (IPF), generate a synthetic population based on the aggregated demographic data, To acquire infrastructure information for the aforementioned geographical area, Using the aforementioned infrastructure information, synthetic population data is formed by assigning the synthetic population to multiple households, A method for generating synthetic data, which includes outputting the aforementioned synthetic population data.
2. A method for generating synthetic data according to claim 1, further comprising assigning ethnic data to the synthetic population using ethnic demographic data of the target geographic area.
3. The method for generating synthetic data according to claim 2, wherein the ethnic demographic data is obtained using a large-scale language model (LLM).
4. This further includes accepting input at the target time, To obtain the aggregated demographic data for the target geographical area and the target time period, A method for generating composite data according to claim 1, further comprising obtaining the infrastructure information for the target geographical area and the target time period.
5. The method for generating synthetic data according to claim 1, wherein the synthetic population data includes any or all of age, sex, health, income, ethnicity, and household information.
6. To provide a graphical user interface (GUI), Using the GUI, the system accepts the input for the target geographic area. A method for generating synthetic data according to claim 1, further comprising outputting a representation of the synthetic population data using the GUI.
7. A traffic simulation of the aforementioned geographical area, further using the traffic data of the aforementioned geographical area, A resource allocation simulation of the target geographical area, using actual resource data of the target geographical area, and A method for generating synthetic data according to claim 1, further comprising outputting the synthetic population data for use in any or all of the epidemiological simulations of the geographic area, using actual epidemiological data of the geographic area.
8. A method for obtaining population data for a geographical area, which is implemented by computer. The system accepts input for the target geographical area, When the target geographical area corresponds to a first predetermined number of geographical areas, the method of claim 1 is used to generate synthetic population data for the target geographical area, A method comprising: extracting population data for a target geographical area when the target geographical area corresponds to a second predetermined number of geographical areas.
9. A data processing device, A means for receiving input for the target geographic area, A processing unit configured to perform a method for generating synthetic data, the method includes, The system accepts input for the target geographical area, To obtain aggregated demographic data for the aforementioned geographical area, Using iterative proportional fitting (IPF), generate a synthetic population based on the aggregated demographic data, To acquire infrastructure information for the aforementioned geographical area, Using the aforementioned infrastructure information, synthetic population data is formed by assigning the synthetic population to multiple households, A data processing device that includes outputting the aforementioned synthetic population data.
10. A computer program including instructions, wherein when the instructions are executed by a data processing device, the data processing device is instructed to perform a method for generating synthesized data, and the method is The system accepts input for the target geographical area, To obtain aggregated demographic data for the aforementioned geographical area, Using iterative proportional fitting (IPF), generate a synthetic population based on the aggregated demographic data, To acquire infrastructure information for the aforementioned geographical area, Using the aforementioned infrastructure information, synthetic population data is formed by assigning the synthetic population to multiple households, A computer program that includes outputting the aforementioned synthetic population data.
11. A computer-readable medium containing instructions, wherein when the instructions are executed by a data processing device, the data processing device is instructed to perform a method for generating synthesized data, and the method is The system accepts input for the target geographical area, To obtain aggregated demographic data for the aforementioned geographical area, Using iterative proportional fitting (IPF), generate a synthetic population based on the aggregated demographic data, To acquire infrastructure information for the aforementioned geographical area, Using the aforementioned infrastructure information, synthetic population data is formed by assigning the synthetic population to multiple households, A computer-readable medium that includes outputting the aforementioned synthetic population data.