How to 'randomize' a given discrete probability distibution?

The name of the pictureThe name of the pictureThe name of the pictureClash 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!










share|cite|improve this question





















  • @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














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!










share|cite|improve this question





















  • @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












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!










share|cite|improve this question













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






share|cite|improve this question













share|cite|improve this question











share|cite|improve this question




share|cite|improve this question










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
















  • @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










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$.)






share|cite|improve this answer




















  • That's a really neat idea... I think I was definitely over-complicating the issue!
    – John Don
    Sep 10 at 10:20

















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.






share|cite|improve this answer




















    Your Answer




    StackExchange.ifUsing("editor", function ()
    return StackExchange.using("mathjaxEditing", function ()
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    );
    );
    , "mathjax-editing");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "69"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: false,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













     

    draft saved


    draft discarded


















    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






























    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$.)






    share|cite|improve this answer




















    • That's a really neat idea... I think I was definitely over-complicating the issue!
      – John Don
      Sep 10 at 10:20














    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$.)






    share|cite|improve this answer




















    • That's a really neat idea... I think I was definitely over-complicating the issue!
      – John Don
      Sep 10 at 10:20












    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$.)






    share|cite|improve this answer












    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$.)







    share|cite|improve this answer












    share|cite|improve this answer



    share|cite|improve this answer










    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
















    • 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










    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.






    share|cite|improve this answer
























      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.






      share|cite|improve this answer






















        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.






        share|cite|improve this answer












        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.







        share|cite|improve this answer












        share|cite|improve this answer



        share|cite|improve this answer










        answered Sep 10 at 9:04









        John Don

        323114




        323114



























             

            draft saved


            draft discarded















































             


            draft saved


            draft discarded














            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













































































            這個網誌中的熱門文章

            Why am i infinitely getting the same tweet with the Twitter Search API?

            Is there any way to eliminate the singular point to solve this integral by hand or by approximations?

            Strongly p-embedded subgroups and p-Sylow subgroups.