How to 'randomize' a given discrete probability distibution?

Multi tool use
Clash Royale CLAN TAG#URR8PPP
up vote
1
down vote
favorite
Given a discrete probability distribution, $boldsymbollambda = (lambda_1,lambda_2, ..., lambda_n)$, how can we construct a random distribution,
$boldsymbolLambda = (Lambda_1, Lambda_2, ..., Lambda_n)$ such that $mathbbE(boldsymbolLambda) = boldsymbollambda$?
The goal is to generate random variations of the initial distribution, $boldsymbollambda$, with the above property. If it is possible to do this and have some degree of control over the variance/spread of each $lambda_i$, then even better!
I suspect that there are many ways to achieve this, so any approaches/answers are appreciated.
What I've tried:
My initial thought was to let each $Lambda_i sim Beta(alpha_i, beta_i)$, with $alpha_i$, $beta_i$ chosen so that $mathbbE(Lambda_i) = lambda_i$. By choosing larger $alpha_i$, and $beta_i$ values, we can also make the distributions tighter around the mean.
However, this has the issue that, in general,
$$
sum_i=1^n Lambda_i ne 1
$$
We may work around this by normalizing $boldsymbolLambda$ after evaluating each $Lambda_i$ (by dividing through by sum). Unfortunately I think I am right in saying that, in general, this means that $mathbbE(boldsymbolLambda) = boldsymbollambda$ no longer holds.
Similarly, we could 'normalize' $boldsymbolLambda$ by setting
$$
Lambda_n = 1 - sum_i=1^n-1 Lambda_i
$$
This preserves $mathbbE(boldsymbolLambda) = boldsymbollambda$ (at the expense of the distribution of $Lambda_n$ now being difficult to determine exactly, though we can approximate it). The problem with this method is that $Lambda_n$ could now be negative!
probability probability-theory statistics probability-distributions
add a comment |Â
up vote
1
down vote
favorite
Given a discrete probability distribution, $boldsymbollambda = (lambda_1,lambda_2, ..., lambda_n)$, how can we construct a random distribution,
$boldsymbolLambda = (Lambda_1, Lambda_2, ..., Lambda_n)$ such that $mathbbE(boldsymbolLambda) = boldsymbollambda$?
The goal is to generate random variations of the initial distribution, $boldsymbollambda$, with the above property. If it is possible to do this and have some degree of control over the variance/spread of each $lambda_i$, then even better!
I suspect that there are many ways to achieve this, so any approaches/answers are appreciated.
What I've tried:
My initial thought was to let each $Lambda_i sim Beta(alpha_i, beta_i)$, with $alpha_i$, $beta_i$ chosen so that $mathbbE(Lambda_i) = lambda_i$. By choosing larger $alpha_i$, and $beta_i$ values, we can also make the distributions tighter around the mean.
However, this has the issue that, in general,
$$
sum_i=1^n Lambda_i ne 1
$$
We may work around this by normalizing $boldsymbolLambda$ after evaluating each $Lambda_i$ (by dividing through by sum). Unfortunately I think I am right in saying that, in general, this means that $mathbbE(boldsymbolLambda) = boldsymbollambda$ no longer holds.
Similarly, we could 'normalize' $boldsymbolLambda$ by setting
$$
Lambda_n = 1 - sum_i=1^n-1 Lambda_i
$$
This preserves $mathbbE(boldsymbolLambda) = boldsymbollambda$ (at the expense of the distribution of $Lambda_n$ now being difficult to determine exactly, though we can approximate it). The problem with this method is that $Lambda_n$ could now be negative!
probability probability-theory statistics probability-distributions
@MeesdeVries This would not guarantee that each $Lambda_i$ lies in $[0,1]$. I could repeatedly sample using a normal distribution until each $Lambda_i$ is in this interval, but if $lambda_1$, say, is very close to $0$ or $1$, then this would either take a large number of samples, and/or would require the distribution of $Lambda_1$ to be very tight around $lambda_1$.
– John Don
Sep 10 at 9:07
add a comment |Â
up vote
1
down vote
favorite
up vote
1
down vote
favorite
Given a discrete probability distribution, $boldsymbollambda = (lambda_1,lambda_2, ..., lambda_n)$, how can we construct a random distribution,
$boldsymbolLambda = (Lambda_1, Lambda_2, ..., Lambda_n)$ such that $mathbbE(boldsymbolLambda) = boldsymbollambda$?
The goal is to generate random variations of the initial distribution, $boldsymbollambda$, with the above property. If it is possible to do this and have some degree of control over the variance/spread of each $lambda_i$, then even better!
I suspect that there are many ways to achieve this, so any approaches/answers are appreciated.
What I've tried:
My initial thought was to let each $Lambda_i sim Beta(alpha_i, beta_i)$, with $alpha_i$, $beta_i$ chosen so that $mathbbE(Lambda_i) = lambda_i$. By choosing larger $alpha_i$, and $beta_i$ values, we can also make the distributions tighter around the mean.
However, this has the issue that, in general,
$$
sum_i=1^n Lambda_i ne 1
$$
We may work around this by normalizing $boldsymbolLambda$ after evaluating each $Lambda_i$ (by dividing through by sum). Unfortunately I think I am right in saying that, in general, this means that $mathbbE(boldsymbolLambda) = boldsymbollambda$ no longer holds.
Similarly, we could 'normalize' $boldsymbolLambda$ by setting
$$
Lambda_n = 1 - sum_i=1^n-1 Lambda_i
$$
This preserves $mathbbE(boldsymbolLambda) = boldsymbollambda$ (at the expense of the distribution of $Lambda_n$ now being difficult to determine exactly, though we can approximate it). The problem with this method is that $Lambda_n$ could now be negative!
probability probability-theory statistics probability-distributions
Given a discrete probability distribution, $boldsymbollambda = (lambda_1,lambda_2, ..., lambda_n)$, how can we construct a random distribution,
$boldsymbolLambda = (Lambda_1, Lambda_2, ..., Lambda_n)$ such that $mathbbE(boldsymbolLambda) = boldsymbollambda$?
The goal is to generate random variations of the initial distribution, $boldsymbollambda$, with the above property. If it is possible to do this and have some degree of control over the variance/spread of each $lambda_i$, then even better!
I suspect that there are many ways to achieve this, so any approaches/answers are appreciated.
What I've tried:
My initial thought was to let each $Lambda_i sim Beta(alpha_i, beta_i)$, with $alpha_i$, $beta_i$ chosen so that $mathbbE(Lambda_i) = lambda_i$. By choosing larger $alpha_i$, and $beta_i$ values, we can also make the distributions tighter around the mean.
However, this has the issue that, in general,
$$
sum_i=1^n Lambda_i ne 1
$$
We may work around this by normalizing $boldsymbolLambda$ after evaluating each $Lambda_i$ (by dividing through by sum). Unfortunately I think I am right in saying that, in general, this means that $mathbbE(boldsymbolLambda) = boldsymbollambda$ no longer holds.
Similarly, we could 'normalize' $boldsymbolLambda$ by setting
$$
Lambda_n = 1 - sum_i=1^n-1 Lambda_i
$$
This preserves $mathbbE(boldsymbolLambda) = boldsymbollambda$ (at the expense of the distribution of $Lambda_n$ now being difficult to determine exactly, though we can approximate it). The problem with this method is that $Lambda_n$ could now be negative!
probability probability-theory statistics probability-distributions
probability probability-theory statistics probability-distributions
asked Sep 10 at 8:59
John Don
323114
323114
@MeesdeVries This would not guarantee that each $Lambda_i$ lies in $[0,1]$. I could repeatedly sample using a normal distribution until each $Lambda_i$ is in this interval, but if $lambda_1$, say, is very close to $0$ or $1$, then this would either take a large number of samples, and/or would require the distribution of $Lambda_1$ to be very tight around $lambda_1$.
– John Don
Sep 10 at 9:07
add a comment |Â
@MeesdeVries This would not guarantee that each $Lambda_i$ lies in $[0,1]$. I could repeatedly sample using a normal distribution until each $Lambda_i$ is in this interval, but if $lambda_1$, say, is very close to $0$ or $1$, then this would either take a large number of samples, and/or would require the distribution of $Lambda_1$ to be very tight around $lambda_1$.
– John Don
Sep 10 at 9:07
@MeesdeVries This would not guarantee that each $Lambda_i$ lies in $[0,1]$. I could repeatedly sample using a normal distribution until each $Lambda_i$ is in this interval, but if $lambda_1$, say, is very close to $0$ or $1$, then this would either take a large number of samples, and/or would require the distribution of $Lambda_1$ to be very tight around $lambda_1$.
– John Don
Sep 10 at 9:07
@MeesdeVries This would not guarantee that each $Lambda_i$ lies in $[0,1]$. I could repeatedly sample using a normal distribution until each $Lambda_i$ is in this interval, but if $lambda_1$, say, is very close to $0$ or $1$, then this would either take a large number of samples, and/or would require the distribution of $Lambda_1$ to be very tight around $lambda_1$.
– John Don
Sep 10 at 9:07
add a comment |Â
2 Answers
2
active
oldest
votes
up vote
1
down vote
You could generate a random vector that sums to $1$ and subtract $frac1n$ from each component, then add some multiple of the resulting zero-sum vector to $boldsymbollambda$. A straightforward way to generate a random vector that sums to $1$ while keeping all components on an equal footing is to use the $n$ intervals formed by $n-1$ points independently uniformly chosen in the unit interval. Then $mathbbE(boldsymbolLambda) = boldsymbollambda$ follows by symmetry. You could ensure that the $Lambda_i$ lie in $[0,1]$ by adding a sufficiently small multiple of the random vector. (The factor would need to be determined beforehand, independent of the random vector, in order to preserve $mathbbE(boldsymbolLambda) = boldsymbollambda$.)
That's a really neat idea... I think I was definitely over-complicating the issue!
– John Don
Sep 10 at 10:20
add a comment |Â
up vote
0
down vote
Rather embarrassingly, I seem to have overlooked the Dirichlet distribution!
Nevertheless, any other approaches, would be much appreciated! In particular, methods of generating $boldsymbolLambda$ that give easier control over the spread/variance of each $Lambda_i$ would be useful.
add a comment |Â
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
You could generate a random vector that sums to $1$ and subtract $frac1n$ from each component, then add some multiple of the resulting zero-sum vector to $boldsymbollambda$. A straightforward way to generate a random vector that sums to $1$ while keeping all components on an equal footing is to use the $n$ intervals formed by $n-1$ points independently uniformly chosen in the unit interval. Then $mathbbE(boldsymbolLambda) = boldsymbollambda$ follows by symmetry. You could ensure that the $Lambda_i$ lie in $[0,1]$ by adding a sufficiently small multiple of the random vector. (The factor would need to be determined beforehand, independent of the random vector, in order to preserve $mathbbE(boldsymbolLambda) = boldsymbollambda$.)
That's a really neat idea... I think I was definitely over-complicating the issue!
– John Don
Sep 10 at 10:20
add a comment |Â
up vote
1
down vote
You could generate a random vector that sums to $1$ and subtract $frac1n$ from each component, then add some multiple of the resulting zero-sum vector to $boldsymbollambda$. A straightforward way to generate a random vector that sums to $1$ while keeping all components on an equal footing is to use the $n$ intervals formed by $n-1$ points independently uniformly chosen in the unit interval. Then $mathbbE(boldsymbolLambda) = boldsymbollambda$ follows by symmetry. You could ensure that the $Lambda_i$ lie in $[0,1]$ by adding a sufficiently small multiple of the random vector. (The factor would need to be determined beforehand, independent of the random vector, in order to preserve $mathbbE(boldsymbolLambda) = boldsymbollambda$.)
That's a really neat idea... I think I was definitely over-complicating the issue!
– John Don
Sep 10 at 10:20
add a comment |Â
up vote
1
down vote
up vote
1
down vote
You could generate a random vector that sums to $1$ and subtract $frac1n$ from each component, then add some multiple of the resulting zero-sum vector to $boldsymbollambda$. A straightforward way to generate a random vector that sums to $1$ while keeping all components on an equal footing is to use the $n$ intervals formed by $n-1$ points independently uniformly chosen in the unit interval. Then $mathbbE(boldsymbolLambda) = boldsymbollambda$ follows by symmetry. You could ensure that the $Lambda_i$ lie in $[0,1]$ by adding a sufficiently small multiple of the random vector. (The factor would need to be determined beforehand, independent of the random vector, in order to preserve $mathbbE(boldsymbolLambda) = boldsymbollambda$.)
You could generate a random vector that sums to $1$ and subtract $frac1n$ from each component, then add some multiple of the resulting zero-sum vector to $boldsymbollambda$. A straightforward way to generate a random vector that sums to $1$ while keeping all components on an equal footing is to use the $n$ intervals formed by $n-1$ points independently uniformly chosen in the unit interval. Then $mathbbE(boldsymbolLambda) = boldsymbollambda$ follows by symmetry. You could ensure that the $Lambda_i$ lie in $[0,1]$ by adding a sufficiently small multiple of the random vector. (The factor would need to be determined beforehand, independent of the random vector, in order to preserve $mathbbE(boldsymbolLambda) = boldsymbollambda$.)
answered Sep 10 at 9:58
joriki
169k10181337
169k10181337
That's a really neat idea... I think I was definitely over-complicating the issue!
– John Don
Sep 10 at 10:20
add a comment |Â
That's a really neat idea... I think I was definitely over-complicating the issue!
– John Don
Sep 10 at 10:20
That's a really neat idea... I think I was definitely over-complicating the issue!
– John Don
Sep 10 at 10:20
That's a really neat idea... I think I was definitely over-complicating the issue!
– John Don
Sep 10 at 10:20
add a comment |Â
up vote
0
down vote
Rather embarrassingly, I seem to have overlooked the Dirichlet distribution!
Nevertheless, any other approaches, would be much appreciated! In particular, methods of generating $boldsymbolLambda$ that give easier control over the spread/variance of each $Lambda_i$ would be useful.
add a comment |Â
up vote
0
down vote
Rather embarrassingly, I seem to have overlooked the Dirichlet distribution!
Nevertheless, any other approaches, would be much appreciated! In particular, methods of generating $boldsymbolLambda$ that give easier control over the spread/variance of each $Lambda_i$ would be useful.
add a comment |Â
up vote
0
down vote
up vote
0
down vote
Rather embarrassingly, I seem to have overlooked the Dirichlet distribution!
Nevertheless, any other approaches, would be much appreciated! In particular, methods of generating $boldsymbolLambda$ that give easier control over the spread/variance of each $Lambda_i$ would be useful.
Rather embarrassingly, I seem to have overlooked the Dirichlet distribution!
Nevertheless, any other approaches, would be much appreciated! In particular, methods of generating $boldsymbolLambda$ that give easier control over the spread/variance of each $Lambda_i$ would be useful.
answered Sep 10 at 9:04
John Don
323114
323114
add a comment |Â
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2911706%2fhow-to-randomize-a-given-discrete-probability-distibution%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
@MeesdeVries This would not guarantee that each $Lambda_i$ lies in $[0,1]$. I could repeatedly sample using a normal distribution until each $Lambda_i$ is in this interval, but if $lambda_1$, say, is very close to $0$ or $1$, then this would either take a large number of samples, and/or would require the distribution of $Lambda_1$ to be very tight around $lambda_1$.
– John Don
Sep 10 at 9:07