--- title: Giacomini-White Test keywords: fastai sidebar: home_sidebar nb_path: "nbs/losses__gw_test.ipynb" ---
lossA = np.random.randint(low=1, high=10, size=(11,1))
lossB = lossA.copy() - lossA/10
plt.plot(lossA, label='Model A', color="#78ACA8")
plt.plot(lossB, label='Model B', color="#E3A39A")
plt.ylabel('Errors')
plt.xlabel('Time')
plt.legend()
plt.grid()
plt.show()
plt.close()
test_stat, crit_val, p_val = GW_CPA_test(loss1=lossA, loss2=lossB, tau=2, conditional=True)
lossA = np.random.randint(low=1, high=10, size=(11,1))
lossB = lossA.copy() + lossA/10
plt.plot(lossA, label='Model A', color="#78ACA8")
plt.plot(lossB, label='Model B', color="#E3A39A")
plt.ylabel('Errors')
plt.xlabel('Time')
plt.legend()
plt.grid()
plt.show()
plt.close()
test_stat, crit_val, p_val = GW_CPA_test(loss1=lossA, loss2=lossB, tau=2, conditional=True)
y = np.random.randint(low=1, high=10, size=(100*24))
# Five different models with augmenting error variance
eps0 = np.random.normal(loc=0.0, scale=1, size=(100*24,))
eps1 = np.random.normal(loc=0.0, scale=2, size=(100*24,))
eps2 = np.random.normal(loc=0.0, scale=3, size=(100*24,))
eps3 = np.random.normal(loc=0.0, scale=3, size=(100*24,))
eps4 = np.random.normal(loc=0.0, scale=3, size=(100*24,))
y_hat = np.repeat(y[:,None], repeats=5, axis=1)
y_hat[:,0] = y_hat[:,0] + eps0
y_hat[:,1] = y_hat[:,1] + eps1
y_hat[:,2] = y_hat[:,2] + eps2
y_hat[:,3] = y_hat[:,3] + eps3
y_hat[:,4] = y_hat[:,4] + eps4
model_names = ['Model1', 'Model2', 'Model3', 'Model4', 'Model5']
pvals = get_GW_test_pvals(y=y, y_hat=y_hat, horizon=24, tau=1,
conditional=True, alpha=0.05, verbose=False)
print("Model 1 is prefered over all the other models")
print("Model 5 is non-significantly prefered over Model 4")
plot_GW_test_pvals(pvals=pvals, labels=model_names, title='GW_test')