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')
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:
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)