find skewed distribution from probability

1 Ansicht (letzte 30 Tage)
bstechel
bstechel am 21 Dez. 2020
Kommentiert: Jeff Miller am 23 Dez. 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 Kommentare
bstechel
bstechel am 22 Dez. 2020
Bearbeitet: bstechel am 22 Dez. 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 am 23 Dez. 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.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by