Given a vector of length n, how to choose q<n *distinct* elements given an array of probabilities

1 view (last 30 days)
I have a vector v of length n, and a corresponding array of probabilities P (also of length n) such that P(i) describes the probability of selecting v(i).
I need to select q elements from v, and they must be DISTINCT. How can I do this? I saw the answer here ( http://www.mathworks.com/matlabcentral/answers/23319-easy-question-with-probability ) but that allows for duplicate selection since it is only meant to make one choice.
  1 Comment
Roger Stafford
Roger Stafford on 1 Jun 2014
There are some inherent difficulties in the question you pose, Justin. Suppose for the sake of discussion that n = q = 2. Thus, after two choices we have only two possibilities. Either 1) the first element of the vector is selected first followed by the second element second, or 2) the second element is chosen first and the first element second. If the probabilities of these two possibilities were, say, 0.3 and 0.7, respectively, what probabilities would you assign each element, and what relationship would there be with the 0.3 and 0.7 values? Three-tenths of the time the first element would be chosen first and seven-tenths of the time it would be chosen second, for an overall probability of one-half altogether. Similarly for the probability of the second element. Working this backwards with equal probabilities for each element how could we ever derive the values 0.3 and 0.7? As you see there are problems defining what you mean by prescribing individual probabilities to elements and relating them to joint probabilities in your defined selection process.
You can always define the probabilities of obtaining each particular sequence of q distinct elements. That in turn will determine the marginal probabilities of individual elements. However, you cannot do the reverse - define the sequence probabilities in terms of the marginal probabilities.

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!