Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Binomial Distribution: Find p, given CDF

  1. May 17, 2012 #1
    I have a question about binomial distribution

    There is a random var X follows Binomial distribution ~B(n,p), where n is known but p is UNKNOWN.

    It is also known that a for known value of x, CDF(x) = Pr(X<=x) = 0.9

    Is there anyway to estimate p?

    To give a concrete example, if n=8, CDF(5) = 0.9, can I find p?
  2. jcsd
  3. May 17, 2012 #2
    Hi arup,

    The CDF for the binomial would be
    [tex] P(X≤x)=\sum_{k=0}^x {n\choose k}p^k(1-p)^{n-k}[/tex]
    so in your example you would have
    [tex] 0.9=\sum_{k=0}^5 {8\choose k}p^k(1-p)^{8-k}[/tex]
    which is a simple equation with p as unknown variable.

    So yeah, you can find p. :smile:
  4. May 17, 2012 #3
    Thanks for the reply.

    But from the equation

    [tex] P(X≤x)=0.9 =\sum_{k=0}^x {n\choose k}p^k(1-p)^{n-k}[/tex]
    how do I solve for p? i.e., how do I express p as a function of (0.9,x,n)?
    I am not sure how to do that using algebraic manipulation?
  5. May 17, 2012 #4


    User Avatar
    Science Advisor

    You have a polynomial of degree n. For n > 4 you probably need to use numerical technique.
  6. May 17, 2012 #5
    I see. Thank you.

    I am not familiar with numerical techniques to solve polynomial f(x)

    A quick look at wikipedia/wolfram shows that there are many different root finding algorithms.

    Can anybody suggest what method should be used to solve the equation I noted earlier? and what tool should I use to solve this?
  7. May 17, 2012 #6
    Every tool has its merits, tell us a bit about your field of research, studies... this way we can advice you better.
  8. May 17, 2012 #7
    My area of research is reliability of computer architecture.

    The problem that I am trying to solve is the following:

    There is a data array consisting of n elements. Each of n elements can fail independently with probability p. The entire data array will fail if there are more than k failures (k < n).

    Now I know probability of data array failure. i.e., Prob{less than/equal to k failures} = 0.9. I also known n (typical value may be 8). How can I find out p?
  9. May 17, 2012 #8
    I see, well, in this case probably you want to use some symbolic math package so that you can get simplified expressions for your particular problem, for example using Maxima for your problem with data n=8, and F(5)=0.9 the equation you need to solve is [tex] 1 = 210 p^8-480 p^7+280 p^6 [/tex] and solving it with Maxima you have [itex] p = 0.46178460348232 [/itex]

    for more information about Maxima you can visit http://maxima.sourceforge.net/docs/tutorial/en/gaertner-tutorial-revision/Contents.htm

    Actually there are many many different ways to calculate p but since you're into computing you might also want to implement yourself the algorithm to calculate p, if this is the case I would recommend Newton's Method for your problem http://en.wikipedia.org/wiki/Newton's_method
    Last edited: May 17, 2012
  10. May 17, 2012 #9
    Thanks! Appreciate it.
  11. May 17, 2012 #10
    You're Welcome :smile:
  12. May 22, 2012 #11
    How do I use Maxima to solve the equation above?

    This is what I get from Maxima:

    (%i25) solve(1=210*p^8 - 480*p^7 + 280*p^6,p);
    8 7 6
    (%o25) [0 = 210 p - 480 p + 280 p - 1]

    how do I get value of p?
  13. May 22, 2012 #12
    solve in Maxima tries to give you a symbolic solution, since Maxima didn't find any explicit solution for this equation it simply returns it back.

    In this case you need some numerical method like newton or other similar to this one. Look for numerical methods in Maxima, also a very handy command in Maxima is describe(command).

    Good Luck! :smile:
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook