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