Note
Go to the end to download the full example code or to run this example in your browser via Binder
aac sensitivity
import os
import pandas as pd
import matplotlib.pyplot as plt
from aac_utils import get_fitted_model, sobol_plots, sensitivity_plots, plot_convergence, aac_data
model = get_fitted_model()
********** Removing Examples with nan in labels **********
***** Training *****
input_x shape: (374, 6)
target shape: (374, 1)
x, _, input_features, _ = aac_data()
********** Removing Examples with nan in labels **********
***** Training *****
input_x shape: (374, 6)
target shape: (374, 1)
import SALib
from ai4water.postprocessing._sa import morris_plots
print(SALib.__version__)
1.4.5
res = model.sensitivity_analysis(data=x,
sampler="morris",
analyzer=["sobol", "pawn", "morris", "rbd_fast"],
sampler_kwds={"N": 20000}
)

total samples: 140000
Analyzing with sobol
Analyzing with pawn
Analyzing with morris
Analyzing with rbd_fast
morris_plots(res["morris"], show=True)

sobol_plots(res["sobol"])
sensitivity_plots("rbd_fast", res["rbd_fast"], show=True)

sensitivity_plots("pawn", res["pawn"], show=True)

res = model.sensitivity_analysis(data=x,
sampler="fast_sampler",
analyzer=["fast"],
sampler_kwds={"N": 20000}
)

total samples: 120000
Analyzing with fast
convergence plots
results = {}
for n in [100, 200, 400, 800, 1600, 3200, 6400, 10_000, 20_000]:
print(f"n is {n}")
results[n] = model.sensitivity_analysis(
data=x,
sampler="morris",
analyzer=["morris", "sobol", "pawn", "rbd_fast"],
save_plots=False,
sampler_kwds = {"N": n},
analyzer_kwds = {'print_to_console': False},
names = input_features
)
plot_convergence(
results, "morris", "mu_star",
#labels=list(column_names.values()),
leg_kws={"fontsize": 12},
xlabel_kws={"fontsize": 12},
ylabel_kws={"fontsize": 12},
xticklabel_kws={"fontsize": 10},
figsize=(8, 5)
)
plt.savefig(os.path.join(model.path, "morris_convergence.png"), bbox_inches="tight", dpi=300)
plt.tight_layout()
plt.show()
plot_convergence(results, "sobol", "ST",
leg_kws={"fontsize": 12},
xlabel_kws={"fontsize": 12},
ylabel_kws={"fontsize": 12},
xticklabel_kws={"fontsize": 10},
figsize=(8, 5)
)
plt.savefig(os.path.join(model.path, "sobol_convergence.png"), bbox_inches="tight", dpi=300)
plt.tight_layout()
plt.show()
plot_convergence(results, "pawn", "CV",
leg_kws={"fontsize": 12},
xlabel_kws={"fontsize": 12},
ylabel_kws={"fontsize": 12},
xticklabel_kws={"fontsize": 10},
figsize=(8, 5)
)
plt.savefig(os.path.join(model.path, "pawn_convergence.png"), bbox_inches="tight", dpi=300)
plt.tight_layout()
plt.show()
plot_convergence(results, "rbd_fast", "S1",
leg_kws={"fontsize": 12},
xlabel_kws={"fontsize": 12},
ylabel_kws={"fontsize": 12},
xticklabel_kws={"fontsize": 10},
figsize=(8, 5)
)
plt.savefig(os.path.join(model.path, "fast_convergence.png"), bbox_inches="tight", dpi=300)
plt.tight_layout()
plt.show()
n is 100
total samples: 700
Analyzing with morris
Analyzing with sobol
Analyzing with pawn
Analyzing with rbd_fast
n is 200
total samples: 1400
Analyzing with morris
Analyzing with sobol
Analyzing with pawn
Analyzing with rbd_fast
n is 400
total samples: 2800
Analyzing with morris
Analyzing with sobol
Analyzing with pawn
Analyzing with rbd_fast
n is 800
total samples: 5600
Analyzing with morris
Analyzing with sobol
Analyzing with pawn
Analyzing with rbd_fast
n is 1600
total samples: 11200
Analyzing with morris
Analyzing with sobol
Analyzing with pawn
Analyzing with rbd_fast
n is 3200
total samples: 22400
Analyzing with morris
Analyzing with sobol
Analyzing with pawn
Analyzing with rbd_fast
n is 6400
total samples: 44800
Analyzing with morris
Analyzing with sobol
Analyzing with pawn
Analyzing with rbd_fast
n is 10000
total samples: 70000
Analyzing with morris
Analyzing with sobol
Analyzing with pawn
Analyzing with rbd_fast
n is 20000
total samples: 140000
Analyzing with morris
Analyzing with sobol
Analyzing with pawn
Analyzing with rbd_fast
Total running time of the script: ( 0 minutes 40.918 seconds)





