Expected Value

George buffer_88 at hotmail.com
Sat Sep 10 20:50:06 EDT 2005


How would I get the expected value out of this information. I have
tried many times to understand this but am unable to.

  The function expectP(z) computes E(X) for the random variable
representing a sample over the probability generated by "pf" for the
set of discrete items [1,100000]. The constant c is needed so that the
probability sum to 1.0, as required by the definition of probability.
The function pf(r,c,x) returns the probability that item x will be
equal to a randomly chosen variable, denoted by P(x) or P(X=x) in
mathematical texts, where c is the constant mentioned above and r is
needed because we are considering a power law distribution.

The function expectP(z) computes E(X) with r=z, using pf(r,c,x) where x
ranges over the set of discrete items in [1,100000]

The program:

def norm(r):
  "calculate normalization factor for a given exponent"
  # the function for this distribution is  P(x) = c*(x**-r)
  # and the job of this norm function is to calculate c based
  # on the range [1,10**5]
  sum = 0.0
  for i in range(1,1+10**5):
     # final sum would be more accurate by summing from small values
     # to large ones, but this is just a homework, so sum 1,2,..10**5
     sum += float(i)**-r
  return 1.0/sum

def pf(r,c,x):
  "return a power-law probability for a given value"
  # the function for this distribution is  P(x) = c*(x**-r)
  # where the constant c is such that it normalizes the distribution
  return c*(float(x)**-r)

#--------- between these lines, define expectP() function
-----------------


#--------- end of expectP() definition
------------------------------------

def showExpectP(limit):
  "display ExpectP(limit) by rounding down to nearest integer"
  k = expectP(limit)
  return int(k)

if __name__ == '__main__':
  import doctest, sys 
  doctest.testmod(sys.modules[__name__])




More information about the Python-list mailing list