{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains material from [cbe67701-uncertainty-quantification](https://ndcbe.github.io/cbe67701-uncertainty-quantification);\n", "content is available [on Github](https://github.com/ndcbe/cbe67701-uncertainty-quantification.git).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [12.0 Epistemic Uncertainties: Dealing with a Lack of Knowledge](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.00-Epistemic-Uncertainties.html) | [Contents](toc.html) | [12.2 Epistemic Uncertainty Quantification](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.02-Contributed-Example.html)
"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 1,
"link": "[12.1 Predictions under epistemic uncertainty with p-boxes](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1-Predictions-under-epistemic-uncertainty-with-p-boxes)",
"section": "12.1 Predictions under epistemic uncertainty with p-boxes"
}
},
"source": [
"# 12.1 Predictions under epistemic uncertainty with p-boxes"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 1,
"link": "[12.1 Predictions under epistemic uncertainty with p-boxes](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1-Predictions-under-epistemic-uncertainty-with-p-boxes)",
"section": "12.1 Predictions under epistemic uncertainty with p-boxes"
}
},
"source": [
"Created by Elvis A. Eugene (eeugene@nd.edu)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 1,
"link": "[12.1 Predictions under epistemic uncertainty with p-boxes](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1-Predictions-under-epistemic-uncertainty-with-p-boxes)",
"section": "12.1 Predictions under epistemic uncertainty with p-boxes"
}
},
"source": [
"The text and theory in this notebook have been adapted from \n",
"- McClarren, Ryan G (2018). Uncertainty Quantification and Predictive Computational Science: A Foundation for Physical Scientists and Engineers, Chapter 12: Epistemic Uncertainties: Dealing with a Lack of Knowledge https://link.springer.com/chapter/10.1007/978-3-319-99525-0_11\n",
"\n",
"The package *similaritymeasures* was developed by:\n",
"- Jekel, C. F., Venter, G., Venter, M. P., Stander, N., & Haftka, R. T. (2018). Similarity measures for identifying material parameters from hysteresis loops using inverse analysis. International Journal of Material Forming. https://doi.org/10.1007/s12289-018-1421-8\n",
"- More info: https://pypi.org/project/similaritymeasures/\n",
"\n",
"A helper function from StackOverflow https://stackoverflow.com/questions/2566412/find-nearest-value-in-numpy-array is also used in this notebook"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"nbpages": {
"level": 1,
"link": "[12.1 Predictions under epistemic uncertainty with p-boxes](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1-Predictions-under-epistemic-uncertainty-with-p-boxes)",
"section": "12.1 Predictions under epistemic uncertainty with p-boxes"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: similaritymeasures in /anaconda3/lib/python3.7/site-packages (0.4.3)\r\n",
"Requirement already satisfied: numpy>=1.14.0 in /anaconda3/lib/python3.7/site-packages (from similaritymeasures) (1.16.2)\r\n",
"Requirement already satisfied: scipy>=0.19.0 in /anaconda3/lib/python3.7/site-packages (from similaritymeasures) (1.2.1)\r\n",
"Requirement already satisfied: setuptools>=38.6.0 in /anaconda3/lib/python3.7/site-packages (from similaritymeasures) (40.8.0)\r\n"
]
}
],
"source": [
"# Packages to interface with your operating system or Colab\n",
"import shutil\n",
"import sys\n",
"import os.path\n",
"\n",
"# Check if similaritymeasures is available. If not, install it.\n",
"if not shutil.which(\"similaritymeasures\"):\n",
" !pip install similaritymeasures\n",
"else:\n",
" print(\"similaritymeasures found! No need to install.\")\n",
" \n",
"# load libraries\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import similaritymeasures as sm\n",
"\n",
"# set random seed for numpy\n",
"np.random.seed(122)\n",
"\n",
"## set plotting parameters\n",
"FIG_SIZE=(8,6)\n",
"SMALL_SIZE = 14\n",
"MEDIUM_SIZE = 16\n",
"BIGGER_SIZE = 20\n",
"\n",
"plt.rc('font', size=SMALL_SIZE) # controls default text sizes\n",
"plt.rc('axes', titlesize=SMALL_SIZE) # fontsize of the axes title\n",
"plt.rc('axes', labelsize=MEDIUM_SIZE) # fontsize of the x and y labels\n",
"plt.rc('xtick', labelsize=SMALL_SIZE) # fontsize of the tick labels\n",
"plt.rc('ytick', labelsize=SMALL_SIZE) # fontsize of the tick labels\n",
"plt.rc('legend', fontsize=SMALL_SIZE) # legend fontsize\n",
"plt.rc('figure', titlesize=BIGGER_SIZE) # fontsize of the figure title\n",
"plt.rc('figure', figsize=FIG_SIZE) # figure size"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 2,
"link": "[12.1.1 Introduction](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1.1-Introduction)",
"section": "12.1.1 Introduction"
}
},
"source": [
"## 12.1.1 Introduction\n",
"- Aleatory uncertainty: Uncertainty due to randomness, often modeled as a probability distribution of uncertain parameters\n",
"- Epistemic uncertainty: Uncertainty due to lack of knowledge about a system, for example, using an approximate model\n",
" - Epistemic uncertainties are harder to quantify than aleatory uncertainties\n",
" - In this notebook, epistemic uncertainty is modeled as a uniform distribution between the minimum and maximum values a parameter which we do not have enough knowledge about"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 2,
"link": "[12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1.2-Objective:-This-notebook-has-code-which-will-demonstrate-adjusting-p-boxes-to-make-predictions-under-epistemic-uncertainty)",
"section": "12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty"
}
},
"source": [
"## 12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty\n",
"- Follows sections 12.1 - 12.4 of the text\n",
"- Figure 12.7 has been reproduced up to order of magnitude agreement"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 2,
"link": "[12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1.2-Objective:-This-notebook-has-code-which-will-demonstrate-adjusting-p-boxes-to-make-predictions-under-epistemic-uncertainty)",
"section": "12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty"
}
},
"source": [
"The deflection of a end-loaded cantilevered beam is given by:\n",
"\n",
"\\begin{equation}\n",
"y = \\frac{4fL^3}{Ewh^3}\n",
"\\end{equation}"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"nbpages": {
"level": 2,
"link": "[12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1.2-Objective:-This-notebook-has-code-which-will-demonstrate-adjusting-p-boxes-to-make-predictions-under-epistemic-uncertainty)",
"section": "12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty"
}
},
"outputs": [],
"source": [
"def deflection_model(f,L,E,w,h):\n",
" '''\n",
" inputs\n",
" f: force [N]\n",
" L: length of beam [m]\n",
" E: elastic modulus [Pa]\n",
" w: width of beam [m]\n",
" h: height of beam [m]\n",
" \n",
" outputs\n",
" deflection of the beam [m]\n",
" '''\n",
" return (4*f*L**3)/(E*w*h**3)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 2,
"link": "[12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1.2-Objective:-This-notebook-has-code-which-will-demonstrate-adjusting-p-boxes-to-make-predictions-under-epistemic-uncertainty)",
"section": "12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty"
}
},
"source": [
"L, w, and h are parameters with aleatoric uncertainty and follow the distributions:\n",
"\\begin{equation}\n",
"L \\sim \\mathcal{N}(1,0.05)\n",
"\\end{equation}\n",
"\n",
"\\begin{equation}\n",
"w \\sim \\mathcal{N}(0.01,0.0005)\n",
"\\end{equation}\n",
"\n",
"\\begin{equation}\n",
"h \\sim \\mathcal{N}(0.02,0.0005)\n",
"\\end{equation}\n",
"\n",
"Deflection is estimated using simple random sampling"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"nbpages": {
"level": 2,
"link": "[12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1.2-Objective:-This-notebook-has-code-which-will-demonstrate-adjusting-p-boxes-to-make-predictions-under-epistemic-uncertainty)",
"section": "12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty"
}
},
"outputs": [],
"source": [
"def estimate_deflection(E, f, n_samples):\n",
" '''\n",
" inputs\n",
" E: elastic modulus [Pa]\n",
" f: force [N]\n",
" n_samples: number of samples for estimator\n",
" \n",
" outputs\n",
" y: estimated deflection [m]\n",
" '''\n",
" \n",
" mu_L = 1 # [m]\n",
" sig_L = 0.05 # [m]\n",
" \n",
" mu_w = 0.01 # [m]\n",
" sig_w = 0.0005 # [m]\n",
" \n",
" mu_h = 0.02 # [m]\n",
" sig_h = 0.0005 # [m]\n",
" \n",
" y = 0 # [m] \n",
" \n",
" for i in range(n_samples):\n",
" # sample parameters with aleatoric uncertainty \n",
" L = np.random.normal(loc=mu_L,scale=sig_L)\n",
" w = np.random.normal(loc=mu_w,scale=sig_w)\n",
" h = np.random.normal(loc=mu_h,scale=sig_h)\n",
" \n",
" # cumulative expected value of deflection\n",
" y += deflection_model(f,L,E,w,h)\n",
" # end loop over n_samples\n",
" \n",
" # calculated expected value of deflection\n",
" y = y/n_samples\n",
" \n",
" return y"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 2,
"link": "[12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1.2-Objective:-This-notebook-has-code-which-will-demonstrate-adjusting-p-boxes-to-make-predictions-under-epistemic-uncertainty)",
"section": "12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty"
}
},
"source": [
"Observations of deflection were simulated to compare it's CDF to the p-box and calculate model discrepancy d"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"nbpages": {
"level": 2,
"link": "[12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1.2-Objective:-This-notebook-has-code-which-will-demonstrate-adjusting-p-boxes-to-make-predictions-under-epistemic-uncertainty)",
"section": "12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty"
}
},
"outputs": [],
"source": [
"def observe_deflection(E, f):\n",
" \n",
" mu_L = 1 # [m]\n",
" sig_L = 0.05 # [m]\n",
" \n",
" mu_w = 0.01 # [m]\n",
" sig_w = 0.0005 # [m]\n",
" \n",
" mu_h = 0.02 # [m]\n",
" sig_h = 0.0005 # [m]\n",
" \n",
" stdev_obs_err = 0.01\n",
" \n",
" y = 0 # [m] \n",
" \n",
" # sample parameters with aleatoric uncertainty \n",
" L = np.random.normal(loc=mu_L,scale=sig_L)\n",
" w = np.random.normal(loc=mu_w,scale=sig_w)\n",
" h = np.random.normal(loc=mu_h,scale=sig_h)\n",
"\n",
" y = deflection_model(f,L,E,w,h)\n",
" \n",
" # calculated observed deflection\n",
" y += np.random.normal(loc=0,scale=stdev_obs_err)\n",
" \n",
" return y "
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 2,
"link": "[12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1.2-Objective:-This-notebook-has-code-which-will-demonstrate-adjusting-p-boxes-to-make-predictions-under-epistemic-uncertainty)",
"section": "12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty"
}
},
"source": [
"CDFs were plotted using the following function"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"nbpages": {
"level": 2,
"link": "[12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1.2-Objective:-This-notebook-has-code-which-will-demonstrate-adjusting-p-boxes-to-make-predictions-under-epistemic-uncertainty)",
"section": "12.1.2 Objective: This notebook has code which will demonstrate adjusting p-boxes to make predictions under epistemic uncertainty"
}
},
"outputs": [],
"source": [
"def plot_cdf(fig,ax,y,label=None,color='k',alpha=0.3):\n",
" \n",
" # sort y in ascending order\n",
" asc_idx = np.argsort(y)\n",
" \n",
" # get cdf of y\n",
" y_cdf = y[asc_idx]\n",
" \n",
" # calculate ranks for cdf\n",
" cdf = np.linspace(0,1,len(y_cdf))\n",
" \n",
" # plot \n",
" ax.step(y_cdf,cdf,label=label,color=color,alpha=alpha)\n",
" \n",
" return y_cdf, cdf\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 3,
"link": "[12.1.2.1 Horsetail plots](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1.2.1-Horsetail-plots)",
"section": "12.1.2.1 Horsetail plots"
}
},
"source": [
"### 12.1.2.1 Horsetail plots\n",
"For a fixed values of the epistemically uncertain parameter, i.e. elastic modulus E, a CDF of the QoI, i.e., deflection y is produced. Sampling from a uniform distribution between the values of the epistemically uncertain parameter E produces one CDF per sample, which when plotted, gives a horsetail plot"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"nbpages": {
"level": 3,
"link": "[12.1.2.1 Horsetail plots](https://ndcbe.github.io/cbe67701-uncertainty-quantification/12.01-Epistemic-uncertainty-with-p-boxes.html#12.1.2.1-Horsetail-plots)",
"section": "12.1.2.1 Horsetail plots"
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}