# Changeset 11398:7e9b4eb30015 in orange

Ignore:
Timestamp:
03/12/13 17:05:00 (13 months ago)
Branch:
default
Message:

Fixed mixed tab/space indentation.

File:
1 edited

Unmodified
Removed
• ## Orange/classification/logreg.py

 r11397 ##  PROBABILITY CALCULATIONS def lchisqprob(chisq,df): def lchisqprob(chisq, df): """ Return the (1-tailed) probability value associated with the provided """ BIG = 20.0 def ex(x): BIG = 20.0 if x < -BIG: return 0.0 else: return math.exp(x) if chisq <=0 or df < 1: return 1.0 BIG = 20.0 if x < -BIG: return 0.0 else: return math.exp(x) if chisq <= 0 or df < 1: return 1.0 a = 0.5 * chisq if df%2 == 0: even = 1 if df % 2 == 0: even = 1 else: even = 0 even = 0 if df > 1: y = ex(-a) y = ex(-a) if even: s = y s = y else: s = 2.0 * zprob(-math.sqrt(chisq)) if a > BIG: if even: e = 0.0 e = 0.0 else: e = math.log(math.sqrt(math.pi)) e = math.log(math.sqrt(math.pi)) c = math.log(a) while (z <= chisq): e = math.log(z) + e s = s + ex(c*z-a-e) z = z + 1.0 e = math.log(z) + e s = s + ex(c * z - a - e) z = z + 1.0 return s else: c = 0.0 while (z <= chisq): e = e * (a/float(z)) e = e * (a / float(z)) c = c + e z = z + 1.0 return (c*y+s) return (c * y + s) else: return s """ Returns the area under the normal curve 'to the left of' the given z value. Thus:: Thus:: for z<0, zprob(z) = 1-tail probability Z_MAX = 6.0    # maximum meaningful z-value if z == 0.0: x = 0.0 x = 0.0 else: y = 0.5 * math.fabs(z) if y >= (Z_MAX*0.5): x = 1.0 elif (y < 1.0): w = y*y x = ((((((((0.000124818987 * w -0.001075204047) * w +0.005198775019) * w -0.019198292004) * w +0.059054035642) * w -0.151968751364) * w +0.319152932694) * w -0.531923007300) * w +0.797884560593) * y * 2.0 else: y = y - 2.0 x = (((((((((((((-0.000045255659 * y +0.000152529290) * y -0.000019538132) * y -0.000676904986) * y +0.001390604284) * y -0.000794620820) * y -0.002034254874) * y +0.006549791214) * y -0.010557625006) * y +0.011630447319) * y -0.009279453341) * y +0.005353579108) * y -0.002141268741) * y +0.000535310849) * y +0.999936657524 y = 0.5 * math.fabs(z) if y >= (Z_MAX * 0.5): x = 1.0 elif (y < 1.0): w = y * y x = ((((((((0.000124818987 * w - 0.001075204047) * w + 0.005198775019) * w - 0.019198292004) * w + 0.059054035642) * w - 0.151968751364) * w + 0.319152932694) * w - 0.531923007300) * w + 0.797884560593) * y * 2.0 else: y = y - 2.0 x = (((((((((((((-0.000045255659 * y + 0.000152529290) * y - 0.000019538132) * y - 0.000676904986) * y + 0.001390604284) * y - 0.000794620820) * y - 0.002034254874) * y + 0.006549791214) * y - 0.010557625006) * y + 0.011630447319) * y - 0.009279453341) * y + 0.005353579108) * y - 0.002141268741) * y + 0.000535310849) * y + 0.999936657524 if z > 0.0: prob = ((x+1.0)*0.5) prob = ((x + 1.0) * 0.5) else: prob = ((1.0-x)*0.5) prob = ((1.0 - x) * 0.5) return prob
Note: See TracChangeset for help on using the changeset viewer.