Ejemplo n.º 1
0
from stamp.plugins.statisticalTests.Fishers import Fishers

preferences = {}
fishers = Fishers(preferences)

sampleSizes = [20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000]

fout = open('effectSizeTest.txt' ,'w')

for sampleSize in sampleSizes:
  print sampleSize
  a = sampleSize / 2
  b = sampleSize / 2
  
  pValueTwoSided = 1.0
  while pValueTwoSided > 0.05:
    pValueOneSided, pValueTwoSided = fishers.hypothesisTest(a, b, sampleSize, sampleSize)
    a += 1
    
  p1 = float(a) / sampleSize
  p2 = float(b) / sampleSize
  
  fout.write(str(sampleSize) + ',' + str(p1-p2) + ',' + str(p1/p2) + ',' + str(pValueTwoSided) + ',' + str(a) + '\n')
Ejemplo n.º 2
0
  
fout = open('FishersTest.txt','w')

random.seed()

for C1 in C1s:
  print C1
  totalSamples1 = C1
  totalSamples2 = C1*2

  relativelErrors = {}
  for a in xrange(0, maxX1):
    print a
    for b in xrange(a, maxX1):        
      # calculate p-values
      fishersOneSided, fishersTwoSided = fishers.hypothesisTest(a, b, totalSamples1, totalSamples2)
      hypergeometricOneSided, hypergeometricTwoSided = hypergeometric.hypothesisTest(a, b, totalSamples1, totalSamples2)
      relativeError = 100 * (hypergeometricTwoSided - fishersTwoSided) / fishersTwoSided
      if fishersTwoSided < 1e-6:
        l = relativelErrors.get(1e-6, [])
        l.append(relativeError)
        relativelErrors[1e-6] = l
      elif fishersTwoSided < 1e-5:
        l = relativelErrors.get(1e-5, [])
        l.append(relativeError)
        relativelErrors[1e-5] = l
      elif fishersTwoSided < 1e-4:
        l = relativelErrors.get(1e-4, [])
        l.append(relativeError)
        relativelErrors[1e-4] = l
      elif fishersTwoSided < 1e-3:
Ejemplo n.º 3
0
fout = open('FishersTest.txt', 'w')

random.seed()

for C1 in C1s:
    print C1
    totalSamples1 = C1
    totalSamples2 = C1 * 2

    relativelErrors = {}
    for a in xrange(0, maxX1):
        print a
        for b in xrange(a, maxX1):
            # calculate p-values
            fishersOneSided, fishersTwoSided = fishers.hypothesisTest(
                a, b, totalSamples1, totalSamples2)
            hypergeometricOneSided, hypergeometricTwoSided = hypergeometric.hypothesisTest(
                a, b, totalSamples1, totalSamples2)
            relativeError = 100 * (hypergeometricTwoSided -
                                   fishersTwoSided) / fishersTwoSided
            if fishersTwoSided < 1e-6:
                l = relativelErrors.get(1e-6, [])
                l.append(relativeError)
                relativelErrors[1e-6] = l
            elif fishersTwoSided < 1e-5:
                l = relativelErrors.get(1e-5, [])
                l.append(relativeError)
                relativelErrors[1e-5] = l
            elif fishersTwoSided < 1e-4:
                l = relativelErrors.get(1e-4, [])
                l.append(relativeError)