Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - import numpy as np
 - import matplotlib.pyplot as plt
 - import seaborn as sns
 - from scipy.stats.kde import gaussian_kde
 - import math
 - import scipy
 - def survivalFunction():
 - data = np.random.normal(7,1,100) #Random data
 - p = sns.kdeplot(data, shade=False, lw = 3)
 - x,y = p.get_lines()[0].get_data()
 - cdf = scipy.integrate.cumtrapz(y, x, initial=0)
 - plt.hist(data, 50, normed = 1, facecolor='b',alpha = 0.3)
 - interp = scipy.interpolate.interp1d(x, y, kind="cubic")
 - def ret_func(x):
 - try:
 - return interp(x)
 - except ValueError:
 - return 0
 - return ret_func
 - def surpriseFunction(mu,variance):
 - hStates = np.linspace(0,20,100)
 - sigma = math.sqrt(variance)
 - plt.plot(hStates, scipy.stats.norm.pdf(hStates, mu, sigma))
 - def ret_func(x):
 - return scipy.stats.norm.pdf(x, mu, sigma)
 - return ret_func
 - random_dist = survivalFunction()
 - def gaussian_fit(inp):
 - mu, sigma = inp
 - def f(x):
 - return scipy.stats.norm.pdf(x, mu, sigma) * random_dist(x)
 - return -scipy.integrate.romberg(f, 0, 20)
 - mean, variance = scipy.optimize.fmin(gaussian_fit, [5,1])
 - print mean, variance
 - surpriseFunction(mean, variance)
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment