def test_mixture_pdf(self): mix = MixtureDistribution() grid = np.linspace(-4,4, 10) res = mix.pdf(grid, [1/3.,2/3.], dist=[stats.norm, stats.norm], kwargs= (dict(loc=-1,scale=.25),dict(loc=1,scale=.75))) npt.assert_almost_equal( res, np.array([ 7.92080017e-11, 1.05977272e-07, 3.82368500e-05, 2.21485447e-01, 1.00534607e-01, 2.69531536e-01, 3.21265627e-01, 9.39899015e-02, 6.74932493e-03, 1.18960201e-04]))
def test_mixture_pdf(self): mix = MixtureDistribution() grid = np.linspace(-4,4, 10) res = mix.pdf(grid, [1/3.,2/3.], dist=[stats.norm, stats.norm], kwargs= (dict(loc=-1,scale=.25),dict(loc=1,scale=.75))) npt.assert_almost_equal( res, np.array([ 7.92080017e-11, 1.05977272e-07, 3.82368500e-05, 2.21485447e-01, 1.00534607e-01, 2.69531536e-01, 3.21265627e-01, 9.39899015e-02, 6.74932493e-03, 1.18960201e-04]))
print(i,j,integrate.quad(lambda x: p(x)*p2(x), -1,1)[0]) for p in polys: print(integrate.quad(lambda x: p(x)**2, -1,1)) #examples using the new class if "chebyt" in examples: dop = DensityOrthoPoly().fit(obs_dist, ChebyTPoly, order=20) grid = np.linspace(obs_dist.min(), obs_dist.max()) xf = dop(grid) #print('np.max(np.abs(xf - f_hat0))', np.max(np.abs(xf - f_hat0)) dopint = integrate.quad(dop, *dop.limits)[0] print('dop F integral', dopint) mpdf = mix.pdf(grid, [1/3.,2/3.], dist=[stats.norm, stats.norm], kwargs=mix_kwds) doplot = 1 if doplot: plt.figure() plt.hist(obs_dist, bins=50, normed=True, color='red') plt.plot(grid, xf, lw=2, color='black') plt.plot(grid, mpdf, lw=2, color='green') plt.title('using Chebychev polynomials') #plt.show() if "fourier" in examples: dop = DensityOrthoPoly() dop.offsetfac = 0.5 dop = dop.fit(obs_dist, F2Poly, order=30) grid = np.linspace(obs_dist.min(), obs_dist.max())
print(i,j,integrate.quad(lambda x: p(x)*p2(x), -1,1)[0]) for p in polys: print(integrate.quad(lambda x: p(x)**2, -1,1)) #examples using the new class if "chebyt" in examples: dop = DensityOrthoPoly().fit(obs_dist, ChebyTPoly, order=20) grid = np.linspace(obs_dist.min(), obs_dist.max()) xf = dop(grid) #print('np.max(np.abs(xf - f_hat0))', np.max(np.abs(xf - f_hat0)) dopint = integrate.quad(dop, *dop.limits)[0] print('dop F integral', dopint) mpdf = mix.pdf(grid, [1/3.,2/3.], dist=[stats.norm, stats.norm], kwargs=mix_kwds) doplot = 1 if doplot: plt.figure() plt.hist(obs_dist, bins=50, normed=True, color='red') plt.plot(grid, xf, lw=2, color='black') plt.plot(grid, mpdf, lw=2, color='green') plt.title('using Chebychev polynomials') #plt.show() if "fourier" in examples: dop = DensityOrthoPoly() dop.offsetfac = 0.5 dop = dop.fit(obs_dist, F2Poly, order=30) grid = np.linspace(obs_dist.min(), obs_dist.max())