Borrar filtros
Borrar filtros

Population age model "randi" distribution

3 visualizaciones (últimos 30 días)
Pesach Nestlebaum
Pesach Nestlebaum el 25 de Abr. de 2022
Respondida: Umang Pandey el 6 de Oct. de 2023
Does anyone know how I can randomly generate numbers that will be distributed to a population-by-age distribution? I want to be able to input a population number, say 1000, and have it return 1000 random numbers distributed in a curve that looks something like the USA age distribution curve... Please explain all code
Thanks!
  2 comentarios
Torsten
Torsten el 25 de Abr. de 2022
And where is the US age distribution curve ?
Pesach Nestlebaum
Pesach Nestlebaum el 25 de Abr. de 2022
Something along these lines:
Alternatively, maybe I can assign portions of the randomly generated numbers to specific percentages? For example, I want to assign numbers 40-50 to make up 45% of the generated numbers

Iniciar sesión para comentar.

Respuestas (1)

Umang Pandey
Umang Pandey el 6 de Oct. de 2023
Hi Pesach,
As per my understanding it appears that you are trying to generate random numbers from any desired distribution, in your case "The US Age distribution curve".
Here’s an example that can be followed:
% Assuming some Example Data
age_groups = 0:100; % Age groups
population = rand(1, 101); % Dummy population data
% Normalize the data to get the PDF
pdf = population / sum(population);
% Calculate the CDF
cdf = cumsum(pdf);
% Generate uniform random numbers
N = 1000; % Number of random numbers to generate
u = rand(N, 1);
% Sort the CDF and age_groups
[cdf, idx] = sort(cdf);
age_groups = age_groups(idx);
% Find the corresponding ages using the CDF
random_ages = interp1(cdf, age_groups, u, 'nearest');
To know more about the “interp1” function, you can refer the following documentation:
Best,
Umang

Etiquetas

Productos


Versión

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by