find skewed distribution from probability

1 view (last 30 days)
bstechel
bstechel on 21 Dec 2020
Commented: Jeff Miller on 23 Dec 2020
I have a parameter z that has the following distribution:
z_distr = [...
0.9 0.0637 0.1349
0.8 0.0658 0.1298
0.7 0.068 0.1272
0.6 0.0701 0.1247
0.4 0.0723 0.1221
0.2 0.0745 0.1195
0.1 0.0766 0.1144];
with
z_distr(:,1); % probability of finding z between boundaries z_distr(:,2) and z_distr(:,3)
z follows a skewed distribution with the mode of z = 0.09395.
I need to be able to get random values according to the distribution of z.
background: z is a parameter related to the growth rate of an organism. To find inter-individual variability in growth, each individual has a different z value according to the above distribution.
  3 Comments
bstechel
bstechel on 22 Dec 2020
Edited: bstechel on 22 Dec 2020
So, I have a model which consists of 10 parameters. I have a dataset that is used to calibrate that 10 parameters using a Nelder-Mead optimisation. To find the variation on the parameters i did the following:
I create 1000 Monte-Carlos datasets, that vary from the dataset I have. For al these datasets, i calcuate the best fitting parameter set, and the loss function compared to the original data (goodness of fit value). A survivor function is plotted (left image). It basically gives the boundary loss function for a certain fraction of most fitting Monte-Carlos datasets. Indicated in the image is a 90% confidence (survivor function = 0.1) which corresponds with a loss function of 0.12. So loss functions between 0 and 0.12 contain 90% of the variation.
In the second step, I fix one of the 10 parameters, the z value, on certain values around the optimum (which is 0.09, see right image). Then I optimised the other parameters to fit the data best, and calculate the loss function for each z-value. When I draw a horizontal line on the loss function value of 0.12, corresponding with 0.9% confidence interval, it generate boundaries of z. These are given in the table z_distribution above.
So what i would like to do is to generate random z values according to that distribution.
Jeff Miller
Jeff Miller on 23 Dec 2020
Sorry, I don't completely get it. In making the graph on the left, it seems like you generated 1000 "random" z values--one associated with each of the loss function values, so you could randomly select a z from the 900 of them associated with the lowest 900 values of the loss function, if that's what you want. What does the frequency distribution of these 900 z values look like? Is that the distribution you want to sample from?
I don't see the randomness in the graph on the right. Here, it seems like you fixed z values deterministically and then somehow directly computed the loss value associated with each one of them. I suppose you could select z values uniformly between 0.0637--0.1349, but it doesn't seem like you want all the z values to be equally likely.
Sorry I can't be more helpful.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!