{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Kriging the cantilever beam model\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this example, we create a kriging metamodel of the cantilever beam. We use a squared exponential covariance model for the kriging. In order to estimate the hyper-parameters, we use a design of experiments which size is 20. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We consider a cantilever beam defined by its Young’s modulus $E$, its length $L$ and its section modulus $I$. One end of the cantilever beam is built in a wall and we apply a concentrated bending load $F$ at the other end of the beam, resulting in a deviation $Y$. \n", "\n", "\n", "\n", "**Inputs**\n", "\n", "* $E$ : Young modulus (Pa), Beta($\\alpha = 0.9$, $\\beta = 2.27$, a = $2.5\\times 10^7$, $b = 5\\times 10^7$)\n", "* $F$ : Loading (N), Lognormal($\\mu_F=30 \\times 10^3$, $\\sigma_F=9\\times 10^3$, shift=$15\\times 10^3$)\n", "* $L$ : Length of beam (cm), Uniform(min=250.0, max= 260.0)\n", "* $I$ : Moment of inertia (cm^4), Beta($\\alpha = 2.5$, $\\beta = 1.5$, a = 310, b = 450).\n", "\n", "In the previous table $\\mu_F=E(F)$ and $\\sigma_F=\\sqrt{V(F)}$ are the mean and the standard deviation of $F$.\n", "\n", "We assume that the random variables E, F, L and I are dependent and associated with a gaussian copula which correlation matrix is :\n", "$$\n", "R = \n", "\\begin{pmatrix}\n", "1 & 0 & 0 & 0 \\\\\n", "0 & 1 & 0 & 0 \\\\\n", "0 & 0 & 1 & -0.2 \\\\\n", "0 & 0 & -0.2 & 1\n", "\\end{pmatrix}\n", "$$\n", "\n", "In other words, we consider that the variables L and I are negatively correlated : when the length L increases, the moment of intertia I decreases.\n", "\n", "**Output**\n", "\n", "The vertical displacement at free end of the cantilever beam is:\n", "$$\n", "Y = \\dfrac{F\\, L^3}{3 \\, E \\, I}\n", "$$\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Definition of the model" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import openturns as ot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the symbolic function which evaluates the output Y depending on the inputs E, F, L and I." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "model = ot.SymbolicFunction([\"E\", \"F\", \"L\", \"I\"], [\"F*L^3/(3*E*I)\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then we define the distribution of the input random vector. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Young's modulus E\n", "E = ot.Beta(0.9, 2.27, 2.5e7, 5.0e7) # in N/m^2\n", "E.setDescription(\"E\")\n", "# Load F\n", "F = ot.LogNormal() # in N\n", "F.setParameter(ot.LogNormalMuSigma()([30.e3, 9e3, 15.e3]))\n", "F.setDescription(\"F\")\n", "# Length L\n", "L = ot.Uniform(250., 260.) # in cm\n", "L.setDescription(\"L\")\n", "# Moment of inertia I\n", "I = ot.Beta(2.5, 1.5, 310, 450) # in cm^4\n", "I.setDescription(\"I\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we define the dependency using a `NormalCopula`." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "dim = 4 # number of inputs\n", "R = ot.CorrelationMatrix(dim)\n", "R[2, 3] = -0.2 \n", "myCopula = ot.NormalCopula(ot.NormalCopula.GetCorrelationFromSpearmanCorrelation(R))\n", "myDistribution = ot.ComposedDistribution([E, F, L, I], myCopula)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create the design of experiments" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We consider a simple Monte-Carlo sampling as a design of experiments. This is why we generate an input sample using the `getSample` method of the distribution. Then we evaluate the output using the `model` function." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "sampleSize_train = 20\n", "X_train = myDistribution.getSample(sampleSize_train)\n", "Y_train = model(X_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following figure presents the distribution of the vertical deviations Y on the training sample. We observe that the large deviations occur less often. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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jQYREREO8cA9/d8GUyqViIqKsulYjla7Pdy7TaVYv56Ytdv6OLUFR9739tiejly/WCz9LpVC7fqrQFLiUAHL3d0dTk5OJmerysrKTM5S6Xl5eZnt7+zsjN69e+Pbb79FUVERpkyZYni/oaEBAODs7IwLFy5g0KBBJutVKBRQKBQm7XK53G4/APYcqylkgGRrtyVzdUqp/vuJUXt73naOuO/tOR9HrF9sln6XduTaO2pd1jjUTe4uLi4IDg42OU2q0WgQFhZmdpnQ0FCT/vn5+QgJCYFcLkdAQAC+/vprFBYWGr6mTp2Kxx57DIWFhfD19bVZPURERCRNDnUGCwCSkpIQHR2NkJAQhIaGYtu2bSguLkZcXByAu5furl69ip07dwIA4uLi8NZbbyEpKQnPPvsstFotsrOzsXfvXgB3T8UGBQUZjdGjRw8AMGknIiIiEoPDBazZs2ejoqIC69atQ0lJCYKCgqBWq+Hn5wcAKCkpMXomlr+/P9RqNRITE7Flyxb4+Phg8+bNmDFjRluVQERERBLncAELAOLj4xEfH2/2vdzcXJO2cePG4dy5c01ev7l1EBEREYnFoe7BIiIiIuoIGLCIiIiIRMaARURERCQyBiwiIiIikTFgEREREYmMAYuIiIhIZAxYRERERCJjwCIiIiISGQMWERERkcgYsIiIiIhExoBFREREJDIGLCIiIiKRMWARERERiYwBi4iIiEhkDFhEREREImPAIiIiIhIZAxYRERGRyBiwiIiIiETGgEVEREQkMgYsIiIiIpExYBERERGJjAGLiIiISGQMWEREREQiY8AiIiIiEhkDFhEREZHIGLCIiIiIRMaARURERCQyBiwiIiIikTFgEREREYnMIQNWZmYm/P39oVQqERwcjBMnTljtf/z4cQQHB0OpVGLgwIHIysoyen/79u0IDw9Hz5490bNnT0ycOBGnT5+2ZQlEREQkYQ4XsPLy8pCQkICUlBQUFBQgPDwckZGRKC4uNtv/0qVLiIqKQnh4OAoKCrBy5UosXboU+/btM/Q5duwYnn76aRw9ehRarRb9+/eHSqXC1atX7VUWERERSYjDBaxNmzYhJiYGsbGxCAwMREZGBnx9fbF161az/bOystC/f39kZGQgMDAQsbGxWLx4MdLT0w19du/ejfj4eDz44IMICAjA9u3b0dDQgM8++8xeZRER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\n", "text/plain": [ "class=Graph name=y0 PDF implementation=class=GraphImplementation name=y0 PDF title=Distribution of the vertical deviation xTitle=Vertical deviation (cm) yTitle=PDF axes=ON grid=ON legendposition=topright legendFontSize=1 drawables=[class=Drawable name=Unnamed implementation=class=Curve name=Unnamed derived from class=DrawableImplementation name=Unnamed legend= data=class=Sample name=Unnamed implementation=class=SampleImplementation name=Unnamed size=20 dimension=2 data=[[4.78606,0],[6.44746,0],[6.44746,0],[6.44746,0.0752378],[9.77025,0.0752378],[9.77025,0],[9.77025,0],[9.77025,0.135428],[13.093,0.135428],[13.093,0],[13.093,0],[13.093,0.0451427],[16.4158,0.0451427],[16.4158,0],[16.4158,0],[16.4158,0.0451427],[19.7386,0.0451427],[19.7386,0],[19.7386,0],[21.4,0]] color=red fillStyle=solid lineStyle=solid pointStyle=none lineWidth=2]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "histo = ot.HistogramFactory().build(Y_train).drawPDF()\n", "histo.setXTitle(\"Vertical deviation (cm)\")\n", "histo.setTitle(\"Distribution of the vertical deviation\")\n", "histo.setLegends([\"\"])\n", "histo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create the metamodel" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to create the kriging metamodel, we first select a constant trend with the `ConstantBasisFactory` class. Then we use a squared exponential covariance model. Finally, we use the `KrigingAlgorithm` class to create the kriging metamodel, taking the training sample, the covariance model and the trend basis as input arguments. " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "dimension = myDistribution.getDimension()\n", "basis = ot.ConstantBasisFactory(dimension).build()\n", "covarianceModel = ot.SquaredExponential([1.]*dimension, [1.0])\n", "algo = ot.KrigingAlgorithm(X_train, Y_train, covarianceModel, basis)\n", "algo.run()\n", "result = algo.getResult()\n", "krigingMetamodel = result.getMetaModel()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `run` method has optimized the hyperparameters of the metamodel. \n", "\n", "We can then print the constant trend of the metamodel, which have been estimated using the least squares method." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[class=Point name=Unnamed dimension=1 values=[18.7495]]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result.getTrendCoefficients()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also print the hyperparameters of the covariance model, which have been estimated by maximizing the likelihood. " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
SquaredExponential(scale=[5.49182,5.18332,7.19611,6.86906], amplitude=[8.37795])
" ], "text/plain": [ "class=SquaredExponential scale=class=Point name=Unnamed dimension=4 values=[5.49182,5.18332,7.19611,6.86906] amplitude=class=Point name=Unnamed dimension=1 values=[8.37795]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result.getCovarianceModel()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Validate the metamodel" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We finally want to validate the kriging metamodel. This is why we generate a validation sample which size is equal to 100 and we evaluate the output of the model on this sample." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "sampleSize_test = 100\n", "X_test = myDistribution.getSample(sampleSize_test)\n", "Y_test = model(X_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `MetaModelValidation` classe makes the validation easy. To create it, we use the validation samples and the metamodel. " ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "val = ot.MetaModelValidation(X_test, Y_test, krigingMetamodel)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `computePredictivityFactor` computes the Q2 factor. " ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "0.9645762691321285" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Q2 = val.computePredictivityFactor()\n", "Q2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since the Q2 is larger than 95%, we can say that the quality is acceptable. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The residuals are the difference between the model and the metamodel. " ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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pa5duyo8PFyXX365du/ebXVZliBg+biqqiqNGTNG9957r9WlGLdhwwbNnDlTc+fO1Z49ezR48GCNHDlSBQUFVpdm3KlTp5SYmKilS5daXYrbbdmyRffdd58+/vhj5efnq7q6WqmpqTp16pTVpblFXFycnnjiCe3atUu7du3S9ddfr1tuuUX79++3ujS32rlzp1avXq3LLrvM6lLc6he/+IWKioqct3379lldktucOHFCgwYNUnBwsN566y0dOHBATz31lE/+z71LHPALWVlZjs6dO1tdhlFXXXWVIy0trd5Ynz59HLNnz7aoIs+Q5Hj11VetLsNjSkpKHJIcW7ZssboUj7ngggsczz//vNVluE15ebnjkksuceTn5zuGDBnieOCBB6wuyS1+97vfORITE60uw2Mefvhhx7XXXmt1Ge0GR7DglaqqqrR7926lpqbWG09NTdX27dstqgru8OOPP0qSunTpYnEl7ldTU6OXXnpJp06dUkpKitXluM19992nG2+8UcOGDbO6FLf76quvFBMTo4SEBN1xxx365ptvrC7JbTZu3Kjk5GSNGTNG3bp104ABA/Tcc89ZXZZlCFjwSqWlpaqpqVFUVFS98aioKBUXF1tUFUxzOBzKyMjQtddeq379+lldjtvs27dPHTt2VGhoqNLS0vTqq6/q5z//udVlucVLL72kTz/9VJmZmVaX4nZXX321srOztXnzZj333HMqLi7WwIEDdezYMatLc4tvvvlGK1as0CWXXKLNmzcrLS1NM2bMUHZ2ttWlWYKA5YUaO3Hy7NuuXbusLtMjbDZbvfsOh6PBGLzX/fffr88++0zr16+3uhS36t27t/bu3auPP/5Y9957ryZMmKADBw5YXZZx3333nR544AG98MILCgsLs7octxs5cqRGjx6t/v37a9iwYXrzzTclSf/7v/9rcWXuUVtbqyuuuEKPP/64BgwYoGnTpmnq1KlasWKF1aVZwn+/JMiL3X///brjjjuandOrVy/PFGORyMhIBQYGNjhaVVJS0uCoFrzT9OnTtXHjRm3dulVxcXFWl+NWISEhuvjiiyVJycnJ2rlzp5555hmtWrXK4srM2r17t0pKSpSUlOQcq6mp0datW7V06VJVVlYqMDDQwgrd67zzzlP//v311VdfWV2KW0RHRzc48tq3b1+9/PLLFlVkLQKWF4qMjFRkZKTVZVgqJCRESUlJys/P16233uocz8/P1y233GJhZWgrh8Oh6dOn69VXX9UHH3yghIQEq0vyOIfDocrKSqvLMG7o0KENPkU3adIk9enTRw8//LBPhytJqqys1MGDBzV48GCrS3GLQYMGNbikypdffqmePXtaVJG1CFg+rqCgQMePH1dBQYFqamq0d+9eSdLFF1+sjh07Wlxd22RkZOjuu+9WcnKyUlJStHr1ahUUFCgtLc3q0ow7efKkvv76a+f9Q4cOae/everSpYt69OhhYWXm3Xffffrzn/+s119/XZ06dXIepezcubM6dOhgcXXmPfLIIxo5cqTi4+NVXl6ul156SR988IHefvttq0szrlOnTg3OpTvvvPPUtWtXnzzH7sEHH9RNN92kHj16qKSkRI899pjKyso0YcIEq0tzi1mzZmngwIF6/PHHdfvtt+uTTz7R6tWrtXr1aqtLs4a1H2KEu02YMMEhqcHt/ffft7o0I5YtW+bo2bOnIyQkxHHFFVf47Ef533///UafxwkTJlhdmnGN9SnJkZWVZXVpbnHPPfc4X8MXXnihY+jQoY68vDyry/IYX75Mw9ixYx3R0dGO4OBgR0xMjOM///M/Hfv377e6LLfatGmTo1+/fo7Q0FBHnz59HKtXr7a6JMvYHA6Hw/OxDgAAwHfxKUIAAADDCFgAAACGEbAAAAAMI2ABAAAYRsACAAAwjIAFAABgGAELAADAMAIWAACAYQQsAD5jy5YtSkpKUlhYmC666CKtXLnS6pIA+CkCFgCfcOjQIY0aNUqDBw/Wnj179Mgjj2jGjBl6+eWXrS4NgB/iq3IAeIXs7GzNmjVLR48eVWhoqHN89OjROu+88xQdHa2NGzfq4MGDzsfS0tL097//XTt27LCiZAB+jCNYALzCmDFjVFNTo40bNzrHSktL9cYbb2jSpEnasWOHUlNT620zYsQI7dq1S3a73dPlAvBzBCwAXqFDhw4aN26csrKynGMvvvii4uLidN1116m4uFhRUVH1tomKilJ1dbVKS0s9XS4AP0fAAuA1pk6dqry8PBUWFkqSsrKyNHHiRNlsNkly/lmn7gyIs8cBwN0IWAC8xoABA5SYmKjs7Gx9+umn2rdvnyZOnChJ6t69u4qLi+vNLykpUVBQkLp27WpBtQD8WZDVBQBAa0yZMkVPP/20CgsLNWzYMMXHx0uSUlJStGnTpnpz8/LylJycrODgYCtKBeDH+BQhAK9SVlam6OhoVVdXKzs7W2PHjpX002Ua+vXrp2nTpmnq1KnasWOH0tLStH79eo0ePdriqgH4GwIWAK8zfvx4vfnmmw0u2bBlyxbNmjVL+/fvV0xMjB5++GGlpaVZWCkAf0XAAuB1hg8frr59+2rJkiVWlwIAjSJgAfAax48fV15enu68804dOHBAvXv3trokAGgUJ7kD8BpXXHGFTpw4oSeffJJwBaBd4wgWAACAYVwHCwAAwDACFgAAgGEELAAAAMMIWAAAAIYRsAAAAAwjYAEAABj2/6QUwiVGkkLsAAAAAElFTkSuQmCC\n", "text/plain": [ "class=Graph name=y0 PDF implementation=class=GraphImplementation name=y0 PDF title=y0 PDF xTitle=y0 yTitle=PDF axes=ON grid=ON legendposition=topright legendFontSize=1 drawables=[class=Drawable name=Unnamed implementation=class=Curve name=Unnamed derived from class=DrawableImplementation name=Unnamed legend=y0 PDF data=class=Sample name=Unnamed implementation=class=SampleImplementation name=Unnamed size=84 dimension=2 data=[[-1.35718,0],[-1.18847,0],[-1.18847,0],[-1.18847,0.0592715],[-0.851039,0.0592715],[-0.851039,0],[-0.851039,0],[-0.851039,0.296357],[-0.513608,0.296357],[-0.513608,0],[-0.513608,0],[-0.513608,0.711258],[-0.176178,0.711258],[-0.176178,0],[-0.176178,0],[-0.176178,0.859437],[0.161252,0.859437],[0.161252,0],[0.161252,0],[0.161252,0.533443],[0.498683,0.533443],[0.498683,0],[0.498683,0],[0.498683,0.20745],[0.836113,0.20745],[0.836113,0],[0.836113,0],[0.836113,0.0296357],[1.17354,0.0296357],[1.17354,0],[1.17354,0],[1.17354,0.177814],[1.51097,0.177814],[1.51097,0],[1.51097,0],[1.51097,0],[1.8484,0],[1.8484,0],[1.8484,0],[1.8484,0.0296357],[2.18583,0.0296357],[2.18583,0],[2.18583,0],[2.18583,0],[2.52327,0],[2.52327,0],[2.52327,0],[2.52327,0.0296357],[2.8607,0.0296357],[2.8607,0],[2.8607,0],[2.8607,0],[3.19813,0],[3.19813,0],[3.19813,0],[3.19813,0],[3.53556,0],[3.53556,0],[3.53556,0],[3.53556,0],[3.87299,0],[3.87299,0],[3.87299,0],[3.87299,0],[4.21042,0],[4.21042,0],[4.21042,0],[4.21042,0],[4.54785,0],[4.54785,0],[4.54785,0],[4.54785,0],[4.88528,0],[4.88528,0],[4.88528,0],[4.88528,0],[5.22271,0],[5.22271,0],[5.22271,0],[5.22271,0.0296357],[5.56014,0.0296357],[5.56014,0],[5.56014,0],[5.72885,0]] color=red fillStyle=solid lineStyle=solid pointStyle=none lineWidth=2]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r = val.getResidualSample()\n", "ot.HistogramFactory().build(r).drawPDF()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We observe that the negative residuals occur with nearly the same frequency of the positive residuals: this is a first sign of good quality. Furthermore, the residuals are most of the times contained in the [-1,1] interval, which is a sign of quality given the amplitude of the output (approximately from 5 to 25 cm)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `drawValidation` method allows to compare the observed outputs and the metamodel outputs." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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tuPHjxMWFkaVKlVcn5U/iPXu3RubzUZqaqrH/po1a3LllVcCZsXtkUceYcGCBdStW5e7776bo0eP8uOPP/K///2PHj16cMUVV9CjRw+v+k1EKhZdIhTxI1WqVKFnz55s27aN3377rdBjfvvtN1JSUujZs2eB12bMmEF8fDzx8fFMmjSpxJ/ry0uEAI899hhHjhxh586d7Nu3j40bN3Ls2DFq1qzpqqhddtllHgPh83JW6JzVrsJ89913nDhxgubNm1O3bl3q1q1LmzZtALOCV7duXdd4r9atWxfb3uI+55FHHqFdu3YMHToUgE8++YQxY8ZQu3ZtOnToQExMDKtWrSr2/CJS+aiCJeJnHn/8cVatWsWYMWNYuXIlVapUcb2Wk5PDAw88QE5ODg899JDH+2bOnEl8fDxTpkxh+vTpF/SZvrxE6BQSEsLVV18NwK+//srbb79NbGwsoaGhgHlH5IABA3j33XfZt28fl1xyCWCGq9WrV3PZZZcRERFR5Pkff/xx7rnnHo99Bw8eZOjQoYwePZo77riDyy+/HIBBgwYxefJkPvnkEwYNGuQ6/pNPPsEwjCLvYvziiy945513+O6771z7DMPwmG/r1KlTmnBUxB9ZOEWEiJSRf/7zn4bNZjM6depkLF++3Fi/fr2xfPlyo3PnzgZgxMfHexw/b948AzD69OljbNq0qcCjPO3cudOIj483/vOf/xjJycnGvHnzjIiICKN9+/bGyZMnPY798ccfjTp16hhXXHGF8eabbxoff/yxMWjQIMNmsxnvvPOOx7FVqlQxevbsWexn7927t9B5sAzDMB588EEjKCjIGD9+vJGcnGz8v//3/4y6desabdu2NTIzMwscf+bMGaN58+bG3LlzPfYPHTrUaNmypfHxxx8bzz//vBEUFGQkJyeXtHtEpJJQwBLxUxs3bjSGDBliNGrUyAgKCjIAo3r16sbHH39c4Nhu3boZQJGP8rR7926ja9euRr169Yxq1aoZl19+uTFlyhTj1KlThR6/c+dO45ZbbjHCwsKM6tWrG506dTI++uijAscBRrdu3Yr97OICVnZ2tvH0008bl19+uREcHGzY7XbjgQceMI4dO1bouaZMmWK0adOmwGSvhw4dMm699Vajdu3aRlRUlPH8888X2yYRqZxshqHatEggWLZsGSNGjGDixImuO+FERKRsaAyW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\n", "text/plain": [ "class=Graph name=Metamodel validation - Q2 = 96.4576 % implementation=class=GraphImplementation name=Metamodel validation - Q2 = 96.4576 % title=Q2 = 96.46% xTitle=model yTitle=metamodel axes=ON grid=ON legendposition= legendFontSize=1 drawables=[class=Drawable name=Unnamed implementation=class=Curve name=Unnamed derived from class=DrawableImplementation name=Unnamed legend= data=class=Sample name=Unnamed implementation=class=SampleImplementation name=Unnamed size=100 dimension=2 data=[[18.9637,18.9637],[18.4266,18.4266],[12.4574,12.4574],[9.35337,9.35337],[23.5276,23.5276],[14.6881,14.6881],[10.8993,10.8993],[17.3202,17.3202],[13.124,13.124],[14.4594,14.4594],[19.0121,19.0121],[10.9044,10.9044],[7.79454,7.79454],[15.3926,15.3926],[17.196,17.196],[22.4681,22.4681],[15.5265,15.5265],[14.9112,14.9112],[10.9349,10.9349],[14.4331,14.4331],[11.6763,11.6763],[10.8445,10.8445],[11.9298,11.9298],[11.6314,11.6314],[11.2452,11.2452],[10.2933,10.2933],[12.81,12.81],[8.5531,8.5531],[32.1686,32.1686],[14.8121,14.8121],[7.47261,7.47261],[14.8385,14.8385],[14.2407,14.2407],[7.07299,7.07299],[13.6907,13.6907],[9.67528,9.67528],[9.76907,9.76907],[16.0004,16.0004],[18.9972,18.9972],[13.1422,13.1422],[15.9038,15.9038],[12.2654,12.2654],[13.9537,13.9537],[11.1325,11.1325],[11.2641,11.2641],[17.935,17.935],[13.8596,13.8596],[11.226,11.226],[10.3749,10.3749],[9.42233,9.42233],[16.1319,16.1319],[13.3959,13.3959],[19.7809,19.7809],[7.39198,7.39198],[13.398,13.398],[13.2067,13.2067],[26.4918,26.4918],[13.5297,13.5297],[9.38728,9.38728],[14.2865,14.2865],[7.50437,7.50437],[14.6451,14.6451],[19.8755,19.8755],[7.73987,7.73987],[11.7472,11.7472],[9.58097,9.58097],[12.443,12.443],[14.017,14.017],[13.8499,13.8499],[9.45199,9.45199],[21.4336,21.4336],[17.4192,17.4192],[9.49446,9.49446],[13.5813,13.5813],[17.9763,17.9763],[7.774,7.774],[22.6226,22.6226],[19.422,19.422],[17.2323,17.2323],[12.0847,12.0847],[13.1492,13.1492],[13.2664,13.2664],[14.4288,14.4288],[10.2733,10.2733],[13.6326,13.6326],[14.7114,14.7114],[11.0175,11.0175],[11.9627,11.9627],[9.62296,9.62296],[10.1771,10.1771],[13.5779,13.5779],[19.148,19.148],[19.4871,19.4871],[15.11,15.11],[17.0435,17.0435],[15.0004,15.0004],[9.45082,9.45082],[12.5497,12.5497],[5.67151,5.67151],[7.27744,7.27744]] color=blue fillStyle=solid lineStyle=solid pointStyle=none lineWidth=1,class=Drawable name=Unnamed implementation=class=Cloud name=Unnamed derived from class=DrawableImplementation name=Unnamed legend= data=class=Sample name=Unnamed implementation=class=SampleImplementation name=Unnamed size=100 dimension=2 data=[[18.9637,18.3887],[18.4266,17.7908],[12.4574,12.4377],[9.35337,9.68549],[23.5276,22.3244],[14.6881,14.6936],[10.8993,11.6053],[17.3202,17.1881],[13.124,13.4873],[14.4594,14.8714],[19.0121,17.6561],[10.9044,11.5097],[7.79454,8.20759],[15.3926,14.5758],[17.196,17.0585],[22.4681,20.4278],[15.5265,15.5322],[14.9112,14.7832],[10.9349,10.8548],[14.4331,14.4545],[11.6763,12.1149],[10.8445,11.1105],[11.9298,11.7735],[11.6314,11.566],[11.2452,11.2196],[10.2933,10.2848],[12.81,13.0122],[8.5531,8.5844],[32.1686,26.6085],[14.8121,14.6489],[7.47261,7.82056],[14.8385,14.9878],[14.2407,13.7309],[7.07299,7.95894],[13.6907,13.2498],[9.67528,9.64188],[9.76907,10.2687],[16.0004,15.8219],[18.9972,17.6359],[13.1422,13.3309],[15.9038,15.4123],[12.2654,12.2352],[13.9537,14.3788],[11.1325,11.3428],[11.2641,11.5256],[17.935,16.5971],[13.8596,14.0116],[11.226,11.1957],[10.3749,10.9596],[9.42233,10.1994],[16.1319,16.2368],[13.3959,13.5742],[19.7809,19.4561],[7.39198,8.1176],[13.398,13.0998],[13.2067,13.5449],[26.4918,23.6685],[13.5297,13.0434],[9.38728,9.37128],[14.2865,14.5092],[7.50437,7.7053],[14.6451,14.9149],[19.8755,19.3379],[7.73987,7.51419],[11.7472,12.1386],[9.58097,9.2739],[12.443,13.2492],[14.017,13.9813],[13.8499,13.7046],[9.45199,9.37999],[21.4336,20.2492],[17.4192,17.834],[9.49446,9.25201],[13.5813,14.2374],[17.9763,17.3311],[7.774,7.5854],[22.6226,21.6922],[19.422,18.8911],[17.2323,17.1749],[12.0847,12.664],[13.1492,12.8729],[13.2664,13.3665],[14.4288,14.5623],[10.2733,10.3786],[13.6326,13.962],[14.7114,15.1248],[11.0175,10.6196],[11.9627,11.8869],[9.62296,10.031],[10.1771,10.3627],[13.5779,14.1236],[19.148,17.6751],[19.4871,19.1234],[15.11,15.9392],[17.0435,16.8166],[15.0004,14.6208],[9.45082,9.4846],[12.5497,12.2407],[5.67151,6.85998],[7.27744,7.02712]] color=red fillStyle=solid lineStyle=solid pointStyle=plus lineWidth=1]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "graph = val.drawValidation()\n", "graph.setLegends([\"\"])\n", "graph.setTitle(\"Q2 = %.2f%%\" % (100*Q2))\n", "graph" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We observe that the metamodel predictions are close to the model outputs, since most red points are close to the diagonal. However, when we consider extreme deviations (i.e. less than 10 or larger than 20), then the quality is less obvious.\n", "\n", "Given that the kriging metamodel quality is sensitive to the design of experiments, it might be interesting to consider a Latin Hypercube Sampling (LHS) design to further improve the predictions quality." ] } ], "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 }