Advertisement
BlackJar72

MyStats.py

Dec 1st, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.45 KB | None | 0 0
  1. import math
  2. import statistics as st
  3. import numpy as np
  4. from numpy.linalg import inv
  5.  
  6. def binomial(n, x, p):
  7.   q = 1.0 - p
  8.   return ((math.factorial(n) / (math.factorial(n - x) * math.factorial(x)))
  9.       * math.pow(p, x) * math.pow(q, n - x))
  10.  
  11. def nbinomial(n, x, p):
  12.   q = 1.0 - p
  13.   return ((math.factorial(n - 1) / (math.factorial(n - x) * math.factorial(x - 1)))
  14.       * math.pow(p, x) * math.pow(q, n - x))
  15.  
  16. def geomdist(n, p):
  17.   q = 1.0 - p
  18.   return p * math.pow(q, n - 1)
  19.  
  20. def poisson(x, l):
  21.   return (math.pow(l, x) * math.exp(-l)) / math.factorial(x)
  22.  
  23. def normalAcc(mean, sd, x):
  24.   return (1.0 + math.erf((x - mean) / (sd * math.sqrt(2)))) / 2
  25.  
  26.  
  27. def pearson(dsa, dsb):
  28.   ma = st.mean(dsa)
  29.   mb = st.mean(dsb)
  30.   sda = st.pstdev(dsa)
  31.   sdb = st.pstdev(dsb)
  32.   out = 0.0
  33.   for i in range(0, len(dsa)):
  34.     out += (dsa[i] - ma) * (dsb[i] - mb)
  35.   out /= (len(dsa) * sda * sdb)
  36.   return out
  37.  
  38. def lsregresion(da, db):
  39.   m = pearson(da, db) * st.pstdev(db) / st.pstdev(da)
  40.   b = st.mean(db) - m * st.mean(da)
  41.   return (m, b)
  42.  
  43. def mlreg(x, y):        # X and Y matrices
  44.   xtr  = x.transpose()  # X-transposed
  45.   xint = xtr.dot(x)     # X-intermediate (for lack of a better name)
  46.   xinv = inv(xint)      # X-inverse for inverse of X-intermediate
  47.   preb = xinv.dot(xtr)  # pre-B
  48.   b = preb.dot(y)       # matrix B, the answer
  49.   return b              # Answer answered!
  50.  
  51. def mlrpredict(x, b):
  52.   answer = x.dot(b)
  53.   return answer[0][0]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement