def example_n(): print(skewnorm.pdf(1,0), stats.norm.pdf(1), skewnorm.pdf(1,0) - stats.norm.pdf(1)) print(skewnorm.pdf(1,1000), stats.chi.pdf(1,1), skewnorm.pdf(1,1000) - stats.chi.pdf(1,1)) print(skewnorm.pdf(-1,-1000), stats.chi.pdf(1,1), skewnorm.pdf(-1,-1000) - stats.chi.pdf(1,1)) rvs = skewnorm.rvs(0,size=500) print('sample mean var: ', rvs.mean(), rvs.var()) print('theoretical mean var', skewnorm.stats(0)) rvs = skewnorm.rvs(5,size=500) print('sample mean var: ', rvs.mean(), rvs.var()) print('theoretical mean var', skewnorm.stats(5)) print(skewnorm.cdf(1,0), stats.norm.cdf(1), skewnorm.cdf(1,0) - stats.norm.cdf(1)) print(skewnorm.cdf(1,1000), stats.chi.cdf(1,1), skewnorm.cdf(1,1000) - stats.chi.cdf(1,1)) print(skewnorm.sf(0.05,1000), stats.chi.sf(0.05,1), skewnorm.sf(0.05,1000) - stats.chi.sf(0.05,1))
def test_skewnorm(): #library("sn") #dsn(c(-2,-1,0,1,2), shape=10) #psn(c(-2,-1,0,1,2), shape=10) #noquote(sprintf("%.15e,", snp)) pdf_r = np.array([2.973416551551523e-90, 3.687562713971017e-24, 3.989422804014327e-01, 4.839414490382867e-01, 1.079819330263761e-01]) pdf_sn = skewnorm.pdf([-2,-1,0,1,2], 10) #res = (snp-snp_r)/snp assert_(np.allclose(pdf_sn, pdf_r,rtol=1e-13, atol=0)) pdf_sn2 = skewnorm2.pdf([-2,-1,0,1,2], 10) assert_(np.allclose(pdf_sn2, pdf_r, rtol=1e-13, atol=0)) cdf_r = np.array([0.000000000000000e+00, 0.000000000000000e+00, 3.172551743055357e-02, 6.826894921370859e-01, 9.544997361036416e-01]) cdf_sn = skewnorm.cdf([-2,-1,0,1,2], 10) maxabs = np.max(np.abs(cdf_sn - cdf_r)) maxrel = np.max(np.abs(cdf_sn - cdf_r)/(cdf_r+1e-50)) msg = "maxabs=%15.13g, maxrel=%15.13g\n%r\n%r" % (maxabs, maxrel, cdf_sn, cdf_r) #assert_(np.allclose(cdf_sn, cdf_r, rtol=1e-13, atol=1e-25), msg=msg) assert_almost_equal(cdf_sn, cdf_r, decimal=10) cdf_sn2 = skewnorm2.cdf([-2,-1,0,1,2], 10) maxabs = np.max(np.abs(cdf_sn2 - cdf_r)) maxrel = np.max(np.abs(cdf_sn2 - cdf_r)/(cdf_r+1e-50)) msg = "maxabs=%15.13g, maxrel=%15.13g" % (maxabs, maxrel) #assert_(np.allclose(cdf_sn2, cdf_r, rtol=1e-13, atol=1e-25), msg=msg) assert_almost_equal(cdf_sn2, cdf_r, decimal=10, err_msg=msg)
def test_skewnorm(): #library("sn") #dsn(c(-2,-1,0,1,2), shape=10) #psn(c(-2,-1,0,1,2), shape=10) #noquote(sprintf("%.15e,", snp)) pdf_r = np.array([2.973416551551523e-90, 3.687562713971017e-24, 3.989422804014327e-01, 4.839414490382867e-01, 1.079819330263761e-01]) pdf_sn = skewnorm.pdf([-2,-1,0,1,2], 10) #res = (snp-snp_r)/snp assert_(np.allclose(pdf_sn, pdf_r,rtol=1e-13, atol=0)) pdf_sn2 = skewnorm2.pdf([-2,-1,0,1,2], 10) assert_(np.allclose(pdf_sn2, pdf_r, rtol=1e-13, atol=0)) cdf_r = np.array([0.000000000000000e+00, 0.000000000000000e+00, 3.172551743055357e-02, 6.826894921370859e-01, 9.544997361036416e-01]) cdf_sn = skewnorm.cdf([-2,-1,0,1,2], 10) assert_(np.allclose(cdf_sn, cdf_r, rtol=1e-13, atol=1e-25)) cdf_sn2 = skewnorm2.cdf([-2,-1,0,1,2], 10) assert_(np.allclose(cdf_sn2, cdf_r, rtol=1e-13, atol=1e-25))