• Home
  • Doc
  • Examples

otbenchmark

Module otbenchmark

Navigation

  • index
  • next |
  • previous |
  • otbenchmark 0.2 documentation »
  • Examples »
  • General examples »
  • Sensitivity examples »
  • Print the sensitivity analysis problems

Table of Contents

  • API Reference
  • Examples
    • General examples
    • Reliability examples
    • Sensitivity examples

Previous topic

Sensitivity examples

Next topic

Distribution of the Sobol’ indices on Ishigami function

This Page

  • Show Source

Quick search

Note

Go to the end to download the full example code.

Print the sensitivity analysis problems¶

In this example, we show how to print all the sensitivity analysis problems.

import otbenchmark as otb
import pandas as pd

We import the list of problems.

benchmarkProblemList = otb.SensitivityBenchmarkProblemList()
numberOfProblems = len(benchmarkProblemList)
print(numberOfProblems)
11

For each problem in the benchmark, print the problem name and the exact Sobol’ indices.

for i in range(numberOfProblems):
    problem = benchmarkProblemList[i]
    name = problem.getName()
    first_order_indices = problem.getFirstOrderIndices()
    total_order_indices = problem.getTotalOrderIndices()
    dimension = problem.getInputDistribution().getDimension()
    print(
        "#",
        i,
        ":",
        name,
        " : S = ",
        first_order_indices,
        "T=",
        total_order_indices,
        ", dimension=",
        dimension,
    )
# 0 : GaussianSum  : S =  [0.5,0.5] T= [0.5,0.5] , dimension= 2
# 1 : GaussianProduct  : S =  [0,0] T= [1,1] , dimension= 2
# 2 : GSobol  : S =  [0.986712,0.00986712,9.86712e-05] T= [0.990034,0.0131566,0.000132] , dimension= 3
# 3 : Ishigami  : S =  [0.313905,0.442411,0] T= [0.557589,0.442411,0.243684] , dimension= 3
# 4 : Borehole  : S =  [0.66,0,0,0.09,0,0.09,0.09,0.02] T= [0.69,0,0,0.11,0,0.11,0.1,0.02] , dimension= 8
# 5 : Dirichlet  : S =  [0.525547,0.233577,0.131387] T= [0.620438,0.310219,0.182482] , dimension= 3
# 6 : Flooding  : S =  [0.38,0.13,0.25,0,0.19,0.02,0,0] T= [0.4,0.15,0.25,0.01,0.19,0.02,0,0] , dimension= 8
# 7 : Morris  : S =  [0.08,0.08,0.06,0.08,0.06,0.13,0.06,0.13,0.13,0.12,0,0,0,0,0,0,0,0,0,0]#20 T= [0.11,0.11,0.06,0.11,0.06,0.13,0.06,0.13,0.13,0.12,0,0,0,0,0,0,0,0,0,0]#20 , dimension= 20
# 8 : N.L. Oscillator  : S =  [0.4,0.03,0.09,0.18,0.12,0.05,0.05,0] T= [0.4,0.04,0.1,0.23,0.16,0.07,0.06,0.01] , dimension= 8
# 9 : Borgonovo  : S =  [0.157895,0.157895,0.631579] T= [0.210526,0.210526,0.631579] , dimension= 3
# 10 : Oakley-O'Hagan  : S =  [0,0,0,0,0,0.02,0.02,0.03,0.05,0.01,0.1,0.14,0.1,0.11,0.12]#15 T= [0.06,0.06,0.04,0.05,0.02,0.04,0.06,0.08,0.1,0.04,0.15,0.15,0.14,0.14,0.16]#15 , dimension= 15
problem_names = [
    benchmarkProblem.getName() for benchmarkProblem in benchmarkProblemList
]
columns = ["$d$"]
df_problems_list = pd.DataFrame(index=problem_names, columns=columns)
for problem in benchmarkProblemList:
    name = problem.getName()
    d = problem.getInputDistribution().getDimension()
    df_problems_list.loc[name] = [int(d)]
print(df_problems_list)
                $d$
GaussianSum       2
GaussianProduct   2
GSobol            3
Ishigami          3
Borehole          8
Dirichlet         3
Flooding          8
Morris           20
N.L. Oscillator   8
Borgonovo         3
Oakley-O'Hagan   15
latex_code = df_problems_list.to_latex()
# text_file = open("sensitivity_problems_list.tex", "w")
# text_file.write(latex_code)
# text_file.close()

Total running time of the script: (0 minutes 0.108 seconds)

Download Jupyter notebook: plot_print_problems.ipynb

Download Python source code: plot_print_problems.py

Download zipped: plot_print_problems.zip

Navigation

  • index
  • next |
  • previous |
  • otbenchmark 0.2 documentation »
  • Examples »
  • General examples »
  • Sensitivity examples »
  • Print the sensitivity analysis problems