# plt.axis(ymin=7,ymax=25,xmin=25) # plt.title('$\\textrm{Five-point summary of in-sample CE distribution -- Saturated features}$') # plt.show() # # plt.savefig('./fig/Student-Nvarying-Saturated-INS.pdf',format='pdf') # plt.plot(*five_stats(data['CEs_oos'],param['ns'])) # plt.xlabel('$n$') # plt.ylabel('$\\textrm{Returns (\%)}$') # plt.axis(xmin=25) # plt.title('$\\textrm{Five-point summary of out-of-sample CE distribution -- Saturated features}$') # # plt.show() # plt.savefig('./fig/Student-Nvarying-Saturated-OOS.pdf',format='pdf') # plt.plot(*five_stats(data['CEs_oos']-data['CEs_ins'],param['ns'])) # plt.xlabel('$n$') # plt.ylabel('$\\textrm{Returns (\%)}$') # plt.axis(xmin=25) # plt.title('$\\textrm{Five-point summary of out-of-sample error CE distribution -- Saturated features}$') # # plt.show() # plt.savefig('./fig/Student-Nvarying-Saturated-Error.pdf',format='pdf') plt.plot(*five_stats(data['CE_star_q_star'] - data['CEs_oos'], param['ns'])) plt.xlabel('$n$') plt.ylabel('$\\textrm{Returns (\%)}$') plt.axis(xmin=25, ymax=45) plt.title( '$\\textrm{Five-point summary of suboptimality $CE^\\star(q^\\star)-CE^\\star(\\hat q)$ distribution -- Saturated features}$' ) # plt.show() plt.savefig('./fig/Student-Nvarying-Saturated-Suboptimality.pdf', format='pdf')
# plt.title('$\\textrm{Five-point summary of in-sample CE distribution -- Saturated features}$') # # plt.show() # plt.savefig('./fig/Unsaturated/Student-Nvarying-Unsaturated-INS.pdf',format='pdf') # plt.plot(*five_stats(data.CEs_oos,param.ns)) # plt.xlabel('$n$') # plt.ylabel('$\\textrm{Returns (\%)}$') # plt.axis(xmin=25) # plt.title('$\\textrm{Five-point summary of out-of-sample CE distribution -- Unsaturated features}$') # # plt.show() # plt.savefig('./fig/Unsaturated/Student-Nvarying-Unsaturated-OOS.pdf',format='pdf') # plt.plot(*five_stats(data.CEs_oos-data.CEs_ins,param.ns)) # plt.xlabel('$n$') # plt.ylabel('$\\textrm{Returns (\%)}$') # plt.axis(xmin=25,ymin=-20) # plt.title('$\\textrm{Five-point summary of out-of-sample error $CE^\\star(\\hat q) - \\hat{CE}(\\hat q)$ distribution -- Unsaturated features}$') # # plt.show() # plt.savefig('./fig/Unsaturated/Student-Nvarying-Unsaturated-Error.pdf',format='pdf') plt.plot(*five_stats(data.CE_star_q_star - data.CEs_oos, param.ns)) plt.xlabel('$n$') plt.ylabel('$\\textrm{Returns (\%)}$') plt.axis(xmin=25) plt.title( '$\\textrm{Five-point summary of suboptimality $CE^\\star(q^\\star)-CE^\\star(\\hat q)$ distribution -- Unsaturated features}$' ) # plt.show() plt.savefig('./fig/Unsaturated/Student-Nvarying-Unsaturated-Suboptimality.pdf', format='pdf')
from helper.state import loader from helper.stats import five_stats from helper.plotting import plt data, param = loader('ut1.00') dis = data['CE_star'] - data['CE_ins'] # dis = data['CE_star'] plt.plot(*five_stats(dis, param['ps'])) # plt.plot(*five_stats(data['CE_star'],param['ps'])) plt.xlabel('$p$') plt.ylabel('$\\textrm{Returns}$') plt.title('$\\textrm{Out of sample CE error}$') # plt.show() plt.savefig('./fig/CE_oos_p.pdf', format='pdf')
# About 8minutes running time. for i, n in enumerate(ns): print('Sampling %d problems of size %d × %d' % (n_experiments, n, p + 1)) prs = pr.ProblemsDistribution(M, n, λ, u, Rf) prs.sample(n_experiments) qs[i, :p + 1, :] = prs.qs.T CEs_ins[i, :] = prs.CEs_ins CEs_oos[i, :] = prs.CEs_oos Rs_ins[i, :] = prs.Rs_ins Rs_oos[i, :] = prs.Rs_oos # In[42]: f, (p1, p2) = plt.subplots(1, 2) p1.plot(*five_stats(CEs_ins - CEs_oos, ns)) p1.set_xlabel('$n$') p1.set_ylabel('Returns (\%)') p1.set_title('Out-sample CE Error.') p2.plot(*five_stats(-Rs_ins + Rs_oos, ns)) p2.set_xlabel('$n$') p2.set_ylabel('Risks') p2.set_title('Out-sample Risk Error.') # In[44]: f, (p1, p2) = plt.subplots(1, 2) p1.plot(*five_stats(-CEs_oos + CE_star_q_star, ns)) p1.set_xlabel('$n$') p1.set_ylabel('Returns (\%)')
import numpy as np import matplotlib.pyplot as plt from helper.stats import five_stats plt.rc('text',usetex=True) CE_ins = np.load('CE_ins.npy') CE_star = np.load('CE_star.npy') ns = np.arange(25,2025,25) # Graph 1 - Insample CE # plt.plot(*five_stats(CE_ins,ns)) # plt.axis(xmin=25,xmax=2000,ymax=25) # plt.xlabel('$\\textrm{Sample size}$') # plt.ylabel('$\\textrm{Returns}$') # plt.title('$\\textrm{Five-point summary of in-sample CE distribution}$') # # plt.show() # plt.savefig('./fig/CE_ins.pdf',format='pdf') # Graph 2 - Absolute distance between CE and insample CE dis = CE_star - CE_ins plt.plot(*five_stats(dis,ns)) plt.axis(xmin=25,ymin=-7,ymax=2) plt.xlabel('$\\textrm{Sample size}$') plt.ylabel('$\\textrm{Returns}$') plt.title('$\\textrm{Five-point summary of }CE_\star - \hat{CE}$') # plt.show() plt.savefig('./fig/CE_star-CE_ins.pdf')
for i, (n, p) in enumerate(zip(ns, ps)): print('Sampling %d problems of size %d × %d' % (n_experiments, n, p + 1)) prs = pr.ProblemsDistribution(M, n, λ, u, Rf, problem_t=pr.SaturatedFeaturesMaskedProblem) prs.sample(n_experiments, {'fs': range(p + 1)}, par=True) qs[i, :p + 1, :] = prs.qs.T CEs_ins[i, :] = prs.CEs_ins CEs_oos[i, :] = prs.CEs_oos # In[29]: plt.plot(*five_stats(CEs_ins, ps)) plt.xlabel('$p$') plt.ylabel('Returns (\%)') plt.axis(xmin=4) plt.title('In-sample CE. $n = 2p$') # In[30]: plt.plot(*five_stats(CEs_ins - CEs_oos, ps)) plt.xlabel('$p$') plt.ylabel('Returns (\%)') plt.axis(xmin=4) plt.title('Out-sample CE Error. $n = 2p$') # In[36]:
import numpy as np import matplotlib.pyplot as plt from helper.stats import five_stats from helper.state import loader plt.rc('text', usetex=True) data, param = loader('graph1') plt.plot(*five_stats(data['CE_ins'], param['λs'])) plt.xlabel('$p$') plt.ylabel('$\\textrm{Returns}$') plt.title('$\\textrm{Five-point summary of in-sample CE distribution}$') plt.show() # plt.savefig('./fig/CE_ins_λ.pdf',format='pdf')