{ "cells": [ { "cell_type": "markdown", "id": "87f7b8e7-57cd-4f18-8248-0dee08664df4", "metadata": {}, "source": [ "(aleatory_propagation)=\n", "# Propagation of aleatory uncertainty\n", "\n", "Aleatory uncertainty is also called randomness, objective uncertainty, dissonance, or irreducible uncertainty arised from natural stochasticity, environmental or structural variation across space or through time. It is most commonly represented by probability distributions. \n", "\n", "In propagating such uncertainties, one can either approximate the statistical moments of a propagating function or yield the whole output distribution. Such needs are common in [engineering reliability analyses](https://www.researchgate.net/publication/333990695_New_collocation_method_for_stochastic_response_surface_reliability_analyses). This notebook will demonstrate how these two methods can be easily done using `pyuncertainnumber` and one can compare the respective results." ] }, { "cell_type": "markdown", "id": "871cfacf-235d-4ae4-ab87-1c1851cc00a8", "metadata": {}, "source": [ "```{seealso}\n", "There is an increasing awareness, among the scientific computation community, of the differentiation of aleatory and epistemic uncertainty and that different methods are needed for characterisation and propagation. See {ref}`epistemic_propagation` for the propagation of epistemic uncertainty and more realistically {ref}`mix_propagation` for a mixed situation.\n", "```" ] }, { "cell_type": "code", "execution_count": 1, "id": "757a3578-b076-4ffe-a601-ecc549153bc8", "metadata": {}, "outputs": [], "source": [ "import pyuncertainnumber as pun\n", "from pyuncertainnumber import pba\n", "import jax.numpy as jnp\n", "import numpy as np\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 2, "id": "084a9c8c-39cd-486e-9c67-88a8b6f8f1aa", "metadata": {}, "outputs": [], "source": [ "# a multivariate function for propation purpose\n", "def bar(x):\n", "\n", " if isinstance(x, np.ndarray): # vectorised signature\n", " if x.ndim == 1:\n", " x = x[None, :]\n", " return x[:, 0]**2 + x[:, 1] + 3\n", " else:\n", " return x[0]**2 + x[1] + 3 # iterable signature" ] }, { "cell_type": "markdown", "id": "0de0c181-a902-4c1e-8920-43575ee65938", "metadata": {}, "source": [ "## Taylor expansion for moment propagation\n", "\n", "For simplicity, the moments of a function of random variables can be approximately by [Taylor expansions](https://en.wikipedia.org/wiki/Taylor_expansions_for_the_moments_of_functions_of_random_variables), assuming that the function is sufficiently differentiable and moments are finite." ] }, { "cell_type": "code", "execution_count": 3, "id": "dc73ee76-1e7b-4de8-99f2-539a0b352143", "metadata": {}, "outputs": [], "source": [ "MEAN = jnp.array([3., 2.5])\n", "COV = jnp.array([[4, 0.3], [0.3, 0.25]])\n", "\n", "mu_, var_ = pun.taylor_expansion_method(func=bar, mean=MEAN, cov=COV)" ] }, { "cell_type": "code", "execution_count": 4, "id": "eadc42d0-5134-480c-95c6-b989ea0927bd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mean of the function: 18.5\n", "variance of the function: 179.85\n" ] } ], "source": [ "print(f\"mean of the function: {mu_}\")\n", "print(f\"variance of the function: {var_:.2f}\")" ] }, { "cell_type": "markdown", "id": "69beeb8c-4c40-4643-ad72-c7321685fff9", "metadata": {}, "source": [ "## Monte Carlo simulation\n", "\n", "Alternatively, if one is instead interested in the whole distribution of the output quantity, a popular method is to sample though at the cost of many function evaluations. \n", "\n", "It should be noted that Monte Carlo simulation can only be done with a known dependency between the random vector. While it is attempting to assume independence, however, it is the bad practice without justification, see xxx for more explantion." ] }, { "cell_type": "markdown", "id": "626e7bff-1281-4dd3-b62f-66122814204b", "metadata": {}, "source": [ "```{tip}\n", "any other marginal distributions and copula structure can be used.\n", "```" ] }, { "cell_type": "code", "execution_count": 5, "id": "691ee638-625e-4d1a-8b2e-d2cf2ecb415e", "metadata": {}, "outputs": [], "source": [ "depen_ = pba.Dependency(\"independence\", k_dim=2)\n", "\n", "x0 = pba.D(\"gaussian\", (3., 2))\n", "x1 = pba.D(\"gaussian\", (2.5, 0.5))" ] }, { "cell_type": "code", "execution_count": 10, "id": "0ec1c950-1539-49a1-a652-07d9016fb3d0", "metadata": {}, "outputs": [], "source": [ "# create a JointDistribution object\n", "j = pba.JointDistribution(\n", " copula=depen_,\n", " marginals= [x0, x1],\n", ")\n", "\n", "s_inputs = j.sample(10000)\n", "s_y = bar(s_inputs)" ] }, { "cell_type": "code", "execution_count": 13, "id": "35a0c939-5b3a-4cd1-b359-bccec3601dd6", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_ = sns.histplot(s_y, bins=20, kde=False, color=\"skyblue\")" ] }, { "cell_type": "code", "execution_count": 15, "id": "84264322-0793-4e76-b1c8-967924622a5b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mean of the function: 18.52\n", "variance of the function: 177.45\n" ] } ], "source": [ "print(f\"mean of the function: {s_y.mean():.2f}\")\n", "print(f\"variance of the function: {s_y.var():.2f}\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.11.10" } }, "nbformat": 4, "nbformat_minor": 5 }