Skip to content

Instantly share code, notes, and snippets.

@pybokeh
Created November 20, 2014 23:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pybokeh/68d3a4a691784a1e00d4 to your computer and use it in GitHub Desktop.
Save pybokeh/68d3a4a691784a1e00d4 to your computer and use it in GitHub Desktop.
Weibull_Analysis
{
"metadata": {
"name": "",
"signature": "sha256:4daba58d93872a3be64dc406c65443237edacc1b47b1cebb396ee7da1b04f9c3"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"<h1 align='center'>Weibull Analysis</h1><br>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a name=\"sections\"></a>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#Sections"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- [Part 1 - Weibull analysis with complete failure data](#part1)\n",
"- [Part 2 - Weibull analysis with failure data and unfailed data (suspensions)](#part2)\n",
"- [Part 3 - Weibull analysis with Maximum Likelihood Estimation (MLE)](#MLE)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Weibull analysis is the process of modelling data that we suspect follows a Weibull distribution. &nbsp;Most failures or \"life data\" follow the Weibull distribution due to its versatile nature and therefore it is probably the most used distribution to model such failures. It has many applications, but I use it to forecast failures.<br><br>To determine if a set of data follows a Weibull distribution, the graphical method is the most popular method. The graphical method entails graphing the failure times against a probability scale with a model that best fits the data using linear regression. In Part 1 of a 3-part series, I will cover how to perform Weibull analysis when we have complete failure data. That is, we waited for all of our units in the test or in the field to fail. &nbsp;Part 2 in the series covers how to do Weibull analysis when we have data that also includes data for unfailed units or units that failed due to a different reason. &nbsp;In Part 3, I will cover how to estimate the Weibull parameters using MLE method. &nbsp;To be honest, I do not have a strong enough statistics and mathematics background to go into details and explain the theory on which method to use, although the general consensus is to use rank regression method if you have small-ish sample sizes (< 30). If you have very large quantities of suspensions, MLE method seems to be the preferred method.<br><br>I created this IPython notebook as a benefit to me as I will very soon have to train fellow data analysts at my place of occupation. &nbsp;I think this notebook format helps me organize my thoughts as I am explaining things and it also allows for me to interact with the data and charts as I go along. Therefore, I feel the IPython notebook format provides a pedagogic benefit to me and hopefully for others as well. &nbsp;This Weibull analysis series assumes you have some statistics background."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a name=\"part1\"></a>\n",
"<br>\n",
"<br>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Part 1 - Weibull analysis with complete failure data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[[back to top](#sections)]"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"The Weibull distribution is a statistical distribution (Normal distribution being the most known) that is commonly used to model life data or failure times of various types of failures. The 2-parameter version of the Weibull distribution is the most widely-used version of the Weibull distribution."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3><strong>2-parameter Weibull Cumulative Distribution Function (CDF):</strong></h3><center>$\\huge{F(x) = 1 - e^{(\\frac{x}{\\lambda})^k}}$,</center><br>\n",
"<center><p>where k is the shape parameter and $\\lambda$ is the scale parameter.</p></center>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center><h3>Let's say we were to model car battery failures and we found the failures follow a Weibull distribution. &nbsp;It allows us to answer questions such as \"What percent of the batteries will have failed after 200 days?\"</h3></center>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p>We will plot data points (failure times) and try to fit them onto a straight line in order to estimate our 2 Weibull parameters (k and $\\lambda$). Since the Weibull CDF is a logarithmic function, if we attempt to plot the data ploints on 1-1 scale x and y-axis, the data will not fall onto a straight line. To address this, we need to apply linear transformation to the Weibull CDF equation by using laws of exponents and laws of logarithms:</p>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>$\\large{F(x) = 1 - e^{(\\frac{x}{\\lambda})^k}}$</center><br><br>\n",
"<center>$1-F(x)=e^{-(\\frac{x}{\\lambda})^k}$</center><br><br>\n",
"<center>$ln(1-F(x))=-(\\frac{x}{\\lambda})^k$</center><br><br>\n",
"<center>$ln\\left(\\frac{1}{1-F(x)}\\right)=(\\frac{x}{\\lambda})^k$</center><br><br>\n",
"<center>$ln\\left(ln\\left(\\frac{1}{1-F(x)}\\right)\\right)=k{\\space}ln(\\frac{x}{\\lambda})$</center><br><br>\n",
"<center>$\\underbrace{ln\\left(ln\\left(\\frac{1}{1-F(x)}\\right)\\right)}=\\underbrace{k{\\space}lnx}-\\underbrace{k{\\space}ln\\lambda}$</center><br>\n",
"<center>$\\space\\space\\space y\\space\\space\\space\\space\\space\\space\\space\\space\\space\\space=\\space mx\\space+\\space\\space b$</center><br>\n",
"<center>(\"linearized\" Weibull CDF)</center><br><br>\n",
"With the Weibull CDF in its linear form, <strong>y</strong> is then equal to $ln\\left(ln\\left(\\frac{1}{1-F(x)}\\right)\\right){\\space}$,&nbsp;the slope <strong>m</strong> equals k,&nbsp;<strong>x</strong> equals ln(x), and the y-intercept <strong>b</strong> equals $-k{\\space}ln\\lambda\\space\\space$.<br><br>\n",
"Since<br><br>$b=-k{\\space}ln\\lambda{\\space}{\\space}$&nbsp;&nbsp;, then solving for $\\lambda$ :<br><br>\n",
"$\\large{\\lambda=e^{-(\\frac{b}{k})}}$<br><br>\n",
"<p>So now that we know how to estimate the 2 Weibull parameters ($\\lambda$ and k), we are almost ready to create a Weibull probability plot later on.<br><br>A Weibull probability plot is simply plotting ln(x) versus $ln\\left(ln\\left(\\frac{1}{1-F(x)}\\right)\\right)$<br><br>\n",
"But what is F(x)? F(x) is based on calcuations for the \"Median Ranks\". There are different ways to calculate median ranks. But for Weibull distribution, it is suggested to use Bernard's formula for median ranks:</p><br>\n",
"<center>$\\huge{\\frac{(rank - 0.3)}{(n + 0.4)}}$</center><br>\n",
"<center>where rank is the rank of the data from smallest to largest and n equals the total number of data points</center><br><br>\n",
"Now we are ready to make a table with the necessary calcuations to plot a Weibull plot. Let's say we have 10 failures with failure times measured in minutes:<br>\n",
"<strong>150, 85, 135, 150, 240, 190, 240, 200, 250, 200</strong><br>"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"The following is the table containing necessary calculations for our x and y cordinates of the data that we are going to use to create the Weibull 1-1 scale probability plot:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center><table border=\"1\">\n",
"<tr>\n",
"<th style=\"text-align: center;\">Data<br>$x$</th>\n",
"<th style=\"text-align: center;\">x<br>$ln(x)$</th>\n",
"<th>Rank</th>\n",
"<th style=\"text-align: center;\">Median Rank F(x)<br>$\\frac{(rank - 0.3)}{(n + 0.4)}$</th>\n",
" <th style=\"text-align: center;\">y<br>$ln\\left(ln\\left(\\frac{1}{1-F(x)}\\right)\\right)$</th>\n",
"</tr>\n",
"<tr>\n",
"<td>85</td>\n",
"<td>4.44265126</td>\n",
"<td style=\"text-align: center;\">1</td>\n",
"<td>0.06730769</td>\n",
"<td>-2.66384309</td>\n",
"</tr>\n",
"<tr>\n",
"<td>135</td>\n",
"<td>4.90527478</td>\n",
"<td style=\"text-align: center;\">2</td>\n",
"<td>0.16346154</td>\n",
"<td>-1.72326315</td>\n",
"</tr>\n",
"<tr>\n",
"<td>150</td>\n",
"<td>5.01063529</td>\n",
"<td style=\"text-align: center;\">3</td>\n",
"<td>0.25961538</td>\n",
"<td>-1.20202312</td>\n",
"</tr>\n",
"<tr>\n",
"<td>150</td>\n",
"<td>5.01063529</td>\n",
"<td style=\"text-align: center;\">4</td>\n",
"<td>0.35576923</td>\n",
"<td>-0.82166652</td>\n",
"</tr>\n",
"<tr>\n",
"<td>190</td>\n",
"<td>5.24702407</td>\n",
"<td style=\"text-align: center;\">5</td>\n",
"<td>0.45192308</td>\n",
"<td>-0.50859539</td>\n",
"</tr>\n",
"<tr>\n",
"<td>200</td>\n",
"<td>5.29831737</td>\n",
"<td style=\"text-align: center;\">6</td>\n",
"<td>0.54807692</td>\n",
"<td>-0.23036544</td>\n",
"</tr>\n",
"<tr>\n",
"<td>200</td>\n",
"<td>5.29831737</td>\n",
"<td style=\"text-align: center;\">7</td>\n",
"<td>0.64423077</td>\n",
"<td>0.03292496</td>\n",
"</tr>\n",
"<tr>\n",
"<td>240</td>\n",
"<td>5.48063892</td>\n",
"<td style=\"text-align: center;\">8</td>\n",
"<td>0.74038462</td>\n",
"<td>0.29903293</td>\n",
"</tr>\n",
"<tr>\n",
"<td>240</td>\n",
"<td>5.48063892</td>\n",
"<td style=\"text-align: center;\">9</td>\n",
"<td>0.83653846</td>\n",
"<td>0.59397722</td>\n",
"</tr>\n",
"<tr>\n",
"<td>250</td>\n",
"<td>5.52146092</td>\n",
"<td style=\"text-align: center;\">10</td>\n",
"<td>0.93269231</td>\n",
"<td>0.99268893</td>\n",
"</tr>\n",
"</table></center><br>\n",
"<strong>NOTE</strong>-We have to sort our failure times from smallest to greatest when performing the calculations."
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"With Python, Numpy/Scipy numerical/scientific packages, and MATPLOTLIB plotting package, we can generate the calculations and create the plot easily"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"from numpy import random\n",
"from numpy import log as ln\n",
"\n",
"data = np.array([85,135,150,150,190,200,200,240,240,250])\n",
"y = ln(data)\n",
"rank = np.arange(1,data.size+1) # ranks = {1, 2, 3, ... 10}\n",
"median_rank = (rank - 0.3)/(rank.size + 0.4)\n",
"x = ln(-ln(1 - median_rank))\n",
"\n",
"scatter(x,y)\n",
"title(\"Weibull Probability Plot of Failure Times\", weight='bold')\n",
"xlabel(r'$ln\\left(ln\\left(\\frac{1}{1-F(x)}\\right)\\right)$', fontsize=16)\n",
"ylabel('ln(x)', fontsize=16)\n",
"xticks(color='white')\n",
"yticks(color='white')\n",
"grid()\n",
"show()\n",
"\n",
"print(\"x and y coordinates of the Weibull probability plot:\")\n",
"for value in zip(x,y):\n",
" print(\"( \" + str(value[0]) + \" , \" + str(value[1]) + \" )\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nElylys3WF/872e35NIWbvg6j8O9UtDdNRERERERERERERERERERERERERERERERERERERERERCri\n/wPjLhRPZ+SDXgAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0xad42fd6c>"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"x and y coordinates of the Weibull probability plot:\n",
"( -2.66384308539 , 4.44265125649 )\n",
"( -1.72326315028 , 4.90527477844 )\n",
"( -1.20202311525 , 5.0106352941 )\n",
"( -0.821666515129 , 5.0106352941 )\n",
"( -0.508595393734 , 5.24702407216 )\n",
"( -0.230365444733 , 5.29831736655 )\n",
"( 0.0329249619143 , 5.29831736655 )\n",
"( 0.299032931862 , 5.48063892334 )\n",
"( 0.59397721666 , 5.48063892334 )\n",
"( 0.99268892949 , 5.52146091786 )\n"
]
}
],
"prompt_number": 15
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"Also note above, we are plotting the failure times along the y-axis, instead of the x-axis because according to prominent Weibull analysts, we want to do regression analysis on the x direction, instead of the y direction. This is called \"X on Y\" median rank regression."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### With least-squares [linear regression](http://austingwalters.com/introduction-to-linear-regression/) method, let's generate a line that will \"fit\" through the data points as best as possible. From this \"ideal\" line, we are going to use the line's slope and y-intercept to calcuate the shape and scale parameter of the ideal Weibull distribution:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import scipy.stats as stats # scipy is a statistical package for Python\n",
"\n",
"# Use Scipy's stats package to perform least-squares fit\n",
"slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)\n",
"\n",
"line = slope*x+intercept\n",
"scatter(x,y)\n",
"plot(x,line)\n",
"title(\"Linear Regression - Least Squares Method\", weight='bold')\n",
"grid()\n",
"show()\n",
"\n",
"# Since we plot failure times on the y-axis, the actual slope is inverted\n",
"shape = 1/slope\n",
"# Since we plot failure times on the y-axis, we want the x-intercept, not the y-intercept\n",
"# x-intercept is equal to the negative y-intercept divided by the slope/shape parameter\n",
"# Basically you are solving for x: 0 = mx + b, equation of the line where y = 0\n",
"x_intercept = - intercept / shape\n",
"\n",
"print(\"r^2 value:\", r_value**2)\n",
"print(\"slope/shape parameter:\", shape)\n",
"scale = exp(-x_intercept/slope)\n",
"print(\"scale parameter:\", scale)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0xb1f25fcc>"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"r^2 value: 0.953902860399\n",
"slope/shape parameter: 3.41595091809\n",
"scale parameter: 204.936017721\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"From the least-squares fit method above, we now have the Weibull shape and scale parameter. Next we can plot the actual failure times versus the \"ideal\" Weibull distribution. We will plot on a more useful log-log scale where the x axis is the failure time and y axis is the cumulative distribuion function."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"from numpy import random\n",
"from matplotlib.ticker import FuncFormatter\n",
"\n",
"# I'm used to the ln notation for the natural log\n",
"from numpy import log as ln\n",
"\n",
"# Since we are going to plot failure times on log scale, we don't need to take the log of the failure times\n",
"x = data\n",
"rank = np.arange(1,x.size+1) # ranks = {1, 2, 3, ... 10}\n",
"median_rank = (rank - 0.3)/(rank.size + 0.4)\n",
"y = ln(-ln(1 - median_rank))\n",
"\n",
"# Generate 1000 numbers following a Weibull distribution that we think ideally fits our data using the shape and scale parameter\n",
"x_ideal = scale *random.weibull(shape, size=100)\n",
"x_ideal.sort()\n",
"F = 1 - exp( -(x_ideal/scale)**shape )\n",
"y_ideal = ln(-ln(1 - F))\n",
"\n",
"# Weibull plot\n",
"fig1 = figure()\n",
"fig1.set_size_inches(11,9)\n",
"ax = subplot(111)\n",
"semilogx(x, y, \"bs\")\n",
"plot(x_ideal, y_ideal, 'r-', label=\"beta= %5G\\neta = %.5G\" % (shape, scale) )\n",
"title(\"Weibull Probability Plot on Log Scale\", weight=\"bold\")\n",
"xlabel('x (time)', weight=\"bold\")\n",
"ylabel('Cumulative Distribution Function', weight=\"bold\")\n",
"legend(loc='lower right')\n",
"\n",
"# Generate ticks\n",
"def weibull_CDF(y, pos):\n",
" return \"%G %%\" % (100*(1-exp(-exp(y))))\n",
"\n",
"formatter = FuncFormatter(weibull_CDF)\n",
"ax.yaxis.set_major_formatter(formatter)\n",
"\n",
"yt_F = array([ 0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5,\n",
" 0.6, 0.7, 0.8, 0.9, 0.95, 0.99])\n",
"yt_lnF = ln( -ln(1-yt_F))\n",
"yticks(yt_lnF)\n",
"ax.yaxis.grid()\n",
"ax.xaxis.grid(which='both')\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nDBlSafv27dsHr7/+evl3Z8yYUW3sdevWBXl5ecGGDRvSlu+7774btGnTJvjv//7vKj//7LPPgnbt\n2pW3mZeXFyxbtuxH2z300ENBt27dfvT+3Llzgy1btgTr168P/vjHPwYdOnQItm3bFgRBEAwePDjo\n0qVL8PXXXwdfffVV0Llz56BevXrBv//97yAIguCtt94KSkpKgh9++CF4/PHHg/z8/CrbDoLq9wkg\npUOxYR5JnQicvIttfg8cBvwT+C2J2xgMBoZnNjVJtfL55zBhAtx6a9iZSKrjWrduXf68TZs2rFq1\nCoCVK1dy1113VTri+cUXX5R/vqPS0lJuvvlm2rVrR7NmzWjbti15eXmsXbs2bbl27NiRP/zhD0ya\nNKnKz/v27cstt9xCfn5++VHPoBan4Lt27UqDBg1o1qwZ9957LytWrCivLR00aBAdO3bk8MMPp2vX\nrpx99tk0aNCAffbZB4DOnTvTpEkTGjZsyH/+53/SpUsXpk2blmKPayfMRepcYN0utskDdgMaA1uA\ni4FpwPrMpqaaiGu9U5T7Fdma1KFD4corYf/9M9dGCPGsSa0b4jrece3Xrnz22WeVnu+3335AYsE6\naNAg1q1bV/4oKSnh/PPPB/jRRUlPPPEE//jHP5gxYwbffvst//rXvwiCoHyROHLkyPIr33d87LHH\nHjXOd8uWLTRp0qTKz2bOnMlNN91Eq1at2HfffQE46qijmDx5cqXtanJHgx0XuY0aNWLcuHF88cUX\nLF26lIKCAjp16lTjvLMh6jWpfwb+B2gNvAlcCtwfZkKSdvDhhzB1auIXpiQpREEQcP/99/Pll19S\nVFTE7bffXr4IveKKK3jggQeYP38+QRCwceNGpk6dSklJCQD77LMPy5YtK49VUlLCbrvtRkFBARs3\nbmTgwIGV2ho4cGD5le87PjZs2FBtfg8++CDr168nCALmz5/P+PHj+d3vflfl9p9++ikffPAB77//\nPgsWLAASFzydddZZQOJo7/fff8+WLVsoLS1l8+bNbNmyBYBFixaxYMECtm3bRklJCTfccAP7779/\n+a2kVq1axapVqwiCgHnz5jFixAhuLTsb9u233/LKK6/w/fffs3XrVp544gnmzp3LySfv6gR4vBSy\n85rUim4Bzix7PEOiLnXHfzoEPXv2DIYOHRoMHTo0GDt2bKWanFmzZvk6ja/jOr7b34tKPhVfjx07\n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\n",
"text": [
"<matplotlib.figure.Figure at 0xad47bcec>"
]
}
],
"prompt_number": 3
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"Since it can be difficult to read certain x and y (CDF) values from the Weibull log-log scale plot above, let's create an output containing x values and their corresponding y (CDF) values."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h4><strong>2-parameter Weibull Cumulative Distribution Function (CDF):</strong></h4><center>$\\large{F(x) = 1 - e^{(\\frac{x}{\\lambda})^k}}$,</center><br>\n",
"<center><p>where k is the shape parameter and $\\lambda$ is the scale parameter.</p></center>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x2 = np.arange(0,400)\n",
"y2 = 1-exp(-(x2/scale)**shape) # This is the equation for Weibull CDF as illustrated above\n",
"\n",
"plot(x2,y2)\n",
"title(\"Weibull CDF - Prediction\",weight='bold')\n",
"grid()\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0xad494b2c>"
]
}
],
"prompt_number": 4
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"Finally,&nbsp;the point of doing all of this is to allow us to predict failures after x units of time.<br><br>Based on the output above, if someone were to ask us \"What percent of the population will have failed after 200 days?\" The answer would be approximately 60%."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a name=\"part2\"></a>\n",
"<br>\n",
"<br>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Part 2 - Weibull Analysis with Suspensions/Censored Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[[back to top](#sections)]"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"In this Part 2 of the series, I will cover how to do Weibull analysis when our data set also includes data from units that didn't fail or failed for a different reason or for a different failure mode. This scenario where our data set includes data from units that have not failed yet is very common in the industry since most of the time it would be unfeasible or time consuming to wait for all units to have failed. When our data includes data such as these, the data set as a whole is what is referred to as \"failure data with suspensions or censored data\". This is just fancy talk by statisticians.<br><br>\n",
"To perform Weibull analysis on data with suspensions, the \"rank\" of the data has to be adjusted due to the suspension data. Then we can accordingly calculate the proper median ranks using Bernard's formula.<br><br>\n",
"Let's get some failure data that is saved in a csv file:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas\n",
"\n",
"# Open csv file\n",
"df = pandas.read_csv('/home/pyb0k3h/Downloads/Weibull_Suspensions.csv')\n",
"# Ensure that the data is sorted by DTF in ascending order\n",
"df.sort(columns=\"DTF\")\n",
"print(\"What the CSV data looks like:\")\n",
"print(df)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"What the CSV data looks like:\n",
" VIN DTF STATUS\n",
"0 6 10 SUSPENDED\n",
"1 1 30 FAILED\n",
"2 7 45 SUSPENDED\n",
"3 2 49 FAILED\n",
"4 3 82 FAILED\n",
"5 4 90 FAILED\n",
"6 5 96 FAILED\n",
"7 8 100 SUSPENDED\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"From the output above, we see that we have 8 rows of data, where we have 5 failed units and 3 suspensions.<br><br>\n",
"The equation for calculating the adjusted rank is as follows:<br><br>\n",
"<center>$\\large{Adjusted Rank = \\frac{(Reverse Rank)(Previous AdjustedRank)+(N+1)}{(Reverse Rank)+1}}$</center>"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"Now we are ready to create 4 additional columns. We need: rank, reverse rank, adjusted rank, and median rank. The Python script below will create those 4 columns for us using the dataframe's apply() method, which allows us to create Excel-like functions to create new columns:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Reference material on how to use the apply() function in a dataframe:\n",
"# http://stackoverflow.com/questions/13331698/how-to-apply-a-function-to-two-columns-of-pandas-dataframe or\n",
"# http://manishamde.github.io/blog/2013/03/07/pandas-and-python-top-10/\n",
"\n",
"# Make sure the data set is sorted by DTF in ascending order\n",
"df.sort(columns=\"DTF\")\n",
"\n",
"global prev_adj_rank\n",
"prev_adj_rank = [0]\n",
"\n",
"def adj_rank(series):\n",
" if series[\"STATUS\"] == \"SUSPENDED\":\n",
" return \"SUSPENSION\"\n",
" else:\n",
" adjusted_rank = (series[\"REV_RANK\"] * 1.0 * prev_adj_rank[-1] + (len(df) + 1))/(series[\"REV_RANK\"] + 1)\n",
" prev_adj_rank.append(adjusted_rank)\n",
" return adjusted_rank\n",
" \n",
"def median_rank(series):\n",
" if series[\"ADJ_RANK\"] == \"SUSPENSION\":\n",
" return NaN\n",
" else:\n",
" median_rank = (series[\"ADJ_RANK\"] - 0.3)/(len(df) + 0.4)\n",
" return median_rank\n",
"\n",
"df[\"RANK\"]=df.index+1\n",
"df[\"REV_RANK\"]=len(df)+1-df[\"RANK\"]\n",
"df[\"ADJ_RANK\"] = df.apply(adj_rank,axis=1)\n",
"df[\"MEDIAN_RANK\"] = df.apply(median_rank, axis=1)\n",
"print(\"What the data looks like with the 4 additional columns(\\\"NaN\\\"=Not A Number):\")\n",
"print(df)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"What the data looks like with the 4 additional columns(\"NaN\"=Not A Number):\n",
" VIN DTF STATUS RANK REV_RANK ADJ_RANK MEDIAN_RANK\n",
"0 6 10 SUSPENDED 1 8 SUSPENSION NaN\n",
"1 1 30 FAILED 2 7 1.125 0.098214\n",
"2 7 45 SUSPENDED 3 6 SUSPENSION NaN\n",
"3 2 49 FAILED 4 5 2.4375 0.254464\n",
"4 3 82 FAILED 5 4 3.75 0.410714\n",
"5 4 90 FAILED 6 3 5.0625 0.566964\n",
"6 5 96 FAILED 7 2 6.375 0.723214\n",
"7 8 100 SUSPENDED 8 1 SUSPENSION NaN\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"Since we will actually only plot data from failed units and not the suspensions, we want to limit our data set to those 5 rows where status equals \"FAILED\":"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(\"What the data looks like with just failed data:\")\n",
"df_final = df[df.STATUS == \"FAILED\"]\n",
"print(df_final)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"What the data looks like with just failed data:\n",
" VIN DTF STATUS RANK REV_RANK ADJ_RANK MEDIAN_RANK\n",
"1 1 30 FAILED 2 7 1.125 0.098214\n",
"3 2 49 FAILED 4 5 2.4375 0.254464\n",
"4 3 82 FAILED 5 4 3.75 0.410714\n",
"5 4 90 FAILED 6 3 5.0625 0.566964\n",
"6 5 96 FAILED 7 2 6.375 0.723214\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"Now we can start creating the usual probability plots:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"from numpy import random\n",
"from numpy import log as ln\n",
"\n",
"data = df_final[\"DTF\"].values\n",
"y = ln(data)\n",
"median_rank = df_final[\"MEDIAN_RANK\"].values\n",
"x = ln(-ln(1 - median_rank))\n",
"\n",
"scatter(x,y)\n",
"title(\"Weibull Probability Plot of Failure Times\", weight='bold')\n",
"grid()\n",
"show()\n",
"\n",
"print(\"x and y coordinates of the Weibull plot:\")\n",
"for value in zip(x,y):\n",
" print(\"( \" + str(value[0]) + \" , \" + str(value[1]) + \" )\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0xb1f243cc>"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"x and y coordinates of the Weibull plot:\n",
"( -2.26935967679 , 3.40119738166 )\n",
"( -1.22535907083 , 3.89182029811 )\n",
"( -0.637061542208 , 4.40671924726 )\n",
"( -0.178008782168 , 4.49980967033 )\n",
"( 0.25037862029 , 4.56434819147 )\n"
]
}
],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import scipy.stats as stats # scipy is a statistical package for Python\n",
"\n",
"# Use Scipy's stats package to perform least-squares fit\n",
"slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)\n",
"\n",
"line = slope*x+intercept\n",
"scatter(x,y)\n",
"plot(x,line)\n",
"title(\"Linear Regression - Least Squares Method\", weight='bold')\n",
"grid()\n",
"show()\n",
"\n",
"# Since we plot failure times on the y-axis, the actual slope is inverted\n",
"shape = 1/slope\n",
"# Since we plot failure times on the y-axis, we want the x-intercept, not the y-intercept\n",
"# x-intercept is equal to the negative y-intercept divided by the slope/shape parameter\n",
"# Basically you are solving for x: 0 = mx + b, equation of the line where y = 0\n",
"x_intercept = - intercept / shape\n",
"\n",
"print(\"r^2 value:\", r_value**2)\n",
"print(\"slope/shape parameter:\", shape)\n",
"scale = exp(-x_intercept/slope)\n",
"print(\"scale parameter:\", scale)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0xa9dcf86c>"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"r^2 value: 0.953148083657\n",
"slope/shape parameter: 2.02425855437\n",
"scale parameter: 94.9979428891\n"
]
}
],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"from numpy import random\n",
"from matplotlib.ticker import FuncFormatter\n",
"\n",
"# I'm used to the ln notation for the natural log\n",
"from numpy import log as ln\n",
"\n",
"# 10 failures that we are assuming follow a Weibull distribution\n",
"x = df_final[\"DTF\"].values\n",
"rank = np.arange(1,data.size+1) # ranks = {1, 2, 3, ... 21}\n",
"median_rank = df_final[\"MEDIAN_RANK\"].values\n",
"y = ln(-ln(1 - median_rank))\n",
"\n",
"# Generate 1000 numbers following a Weibull distribution that we think ideally fits our data using the shape and scale parameter\n",
"x_ideal = scale *random.weibull(shape, size=100)\n",
"x_ideal.sort()\n",
"F = 1 - exp( -(x_ideal/scale)**shape )\n",
"y_ideal = ln(-ln(1 - F))\n",
"\n",
"# Weibull plot\n",
"fig1 = figure()\n",
"fig1.set_size_inches(11,9)\n",
"ax = subplot(111)\n",
"semilogx(x, y, \"bs\")\n",
"plot(x_ideal, y_ideal, 'r-', label=\"beta= %5G\\neta = %.5G\" % (shape, scale) )\n",
"title(\"Weibull Probability Plot on Log Scale\", weight=\"bold\")\n",
"xlabel('x (time)', weight=\"bold\")\n",
"ylabel('Cumulative Distribution Function', weight=\"bold\")\n",
"legend(loc='lower right')\n",
"\n",
"# Generate ticks\n",
"def weibull_CDF(y, pos):\n",
" return \"%G %%\" % (100*(1-exp(-exp(y))))\n",
"\n",
"formatter = FuncFormatter(weibull_CDF)\n",
"ax.yaxis.set_major_formatter(formatter)\n",
"\n",
"yt_F = array([ 0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5,\n",
" 0.6, 0.7, 0.8, 0.9, 0.95, 0.99])\n",
"yt_lnF = ln( -ln(1-yt_F))\n",
"yticks(yt_lnF)\n",
"ax.yaxis.grid()\n",
"ax.xaxis.grid(which='both')\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nk0IAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0xa9b9072c>"
]
}
],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x2 = np.arange(0,300)\n",
"y2 = 1-exp(-(x2/scale)**shape) # This is the equation for Weibull CDF\n",
"\n",
"plot(x2,y2)\n",
"title(\"Weibull CDF - Prediction\",weight='bold')\n",
"grid()\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nYII=\n",
"text": [
"<matplotlib.figure.Figure at 0xad46750c>"
]
}
],
"prompt_number": 12
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Now, we're done!"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"Actually, there's more to this. &nbsp;There are considerations that need to be made in determining if our line through the data points is a \"good\" fit. &nbsp;Also, when dealing with suspensions as outlined in this part 2, I have found that if I have very large quantities of suspensions compared to actual failures, X on Y median rank regression method did not work very well. &nbsp;After brief <a href=\"http://www.weibull.com/hotwire/issue16/relbasics16.htm\">research</a>, I have found that in this case, it is recommended that I use a non-graphical method called maximum likelihood estimation (MLE). &nbsp;When I have time, I will look into estimating Weibull paramenters using MLE method. &nbsp;I guess that will be my Part 3."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a name=\"MLE\"></a>\n",
"<br>\n",
"<br>"
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Part 3 - Estimating Weibull parameters using Maximum Likelihood Estimation (MLE)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[[back to top](#sections)]"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"To solve for our scale parameter (k) using MLE, we need to solve for this equation below:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>$\\huge{\\sum\\limits_{i=1}^r \\frac{ln(x_i)}{r}=\\frac{\\sum\\limits_{i=1}^n (x_i)^kln(x_i)}{\\sum\\limits_{i=1}^n (x_i)^k}-\\frac{1}{k}\\approx0}$</center> ,<br><br>\n",
"<center>Where $x_i$ is the ith failure time,</center><br>\n",
"<center>r is the number of failures,</center><br>\n",
"<center>and n is the total number of failure times, both failed and suspended</center>"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"The equation above basically means we need to find a value of k such that the left of the equation equals the right equation or in other words, the value of k such that the difference between the left of the equation and right of the equation is as close to zero as possible. Once we find the value of k, the scale parameter can be calculated as:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>$\\large{\\lambda=\\left(\\sum\\limits_{i=1}^n \\frac{(x_i)^k}{r}\\right)^\\frac{1}{k}}$</center>"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"Let's get data from a csv file and calculate the left side of the equation $\\left(\\large{\\sum\\limits_{i=1}^r \\frac{ln(x_i)}{r}}\\right)$:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas\n",
"from numpy import log as ln\n",
"\n",
"# Open csv file\n",
"df = pandas.read_csv('/home/pybokeh/Desktop/data.csv')\n",
"\n",
"df_failed = df[df.STATUS=='FAILED']\n",
"\n",
"dtf_failed = df_failed[\"DTF\"].values\n",
"\n",
"def ln_x_div_r(series):\n",
" return ln(series[\"DTF\"])/len(df_failed)\n",
"\n",
"left_eq_sum = np.sum( ln(dtf_failed)/len(df_failed) )\n",
"\n",
"df_failed[\"ln_x_div_r\"] = df_failed.apply(ln_x_div_r, axis=1)\n",
"\n",
"print(df_failed.to_string(),\"\\n\")\n",
"print(\"Sum of \\\"ln_x_div_r\\\" column =\", left_eq_sum)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
" DTF STATUS ln_x_div_r\n",
"1 77.8 FAILED 0.395831\n",
"4 101.8 FAILED 0.420274\n",
"5 105.9 FAILED 0.423863\n",
"6 117.0 FAILED 0.432925\n",
"7 126.9 FAILED 0.440309\n",
"8 138.7 FAILED 0.448392\n",
"9 148.9 FAILED 0.454843\n",
"11 157.3 FAILED 0.459832\n",
"12 163.8 FAILED 0.463513\n",
"16 207.0 FAILED 0.484793\n",
"18 217.4 FAILED 0.489249 \n",
"\n",
"Sum of \"ln_x_div_r\" column = 4.91382428308\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>left side = $\\large{\\sum\\limits_{i=1}^r \\frac{ln(x_i)}{r}=4.9138}$</center>"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"The left side of the equation was calculated to be 4.9138. Next we are going to calculate the right side of the equation using 100,000 values of k ranging from 0.1 to 10 and then substract the result from 4.9138. Basically, what we are trying to achieve is throw a lot of k values into the right side of the equation, and subtract the result from it from 4.9138 until we find the difference as small or close to zero as possible. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>$\\large{4.9138-\\left(\\frac{\\sum\\limits_{i=1}^n (x_i)^kln(x_i)}{\\sum\\limits_{i=1}^n (x_i)^k}-\\frac{1}{k}\\right) \\approx 0}$</center>"
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"This script below will calculate the 100,000 values that represent the difference of the left side and right side of the equation:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"dtf_all = df[\"DTF\"].values\n",
"\n",
"# Generate 10,0000 k values that is between 0.1 and 10\n",
"# Can't use 0 because it is not a valid value in the right-side equation formula, so we're using 0.1 instead\n",
"k = np.linspace(0.1,5,100000,endpoint=True)\n",
"\n",
"right = []\n",
"for value in k:\n",
" right_eq = np.sum( dtf_all**value * ln(dtf_all) ) / np.sum( dtf_all**value ) - (1/value)\n",
" right.append(right_eq)\n",
" \n",
"right_values = np.array(right)\n",
"\n",
"diff = right_values - left_eq_sum"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"When it is done, at this point we should have 100,000 difference values and their corresponding k values. Now let's plot them and see what they look like:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot(k,diff)\n",
"ylabel(\"Difference\")\n",
"xlabel(\"k\")\n",
"grid()\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nTWNtrgAAAABJRU5ErkJggg==\n"
}
],
"prompt_number": 4
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"As I've already mentioned, we need to choose a k value where the difference between the left equation and right equation is close to 0 as possible. From the plot above, it looks like it would be approximately 3. But instead of trying to \"eye-ball it\", let's calculate a more precise value for k where the difference is as close to zero as possible:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ks = np.array(k)\n",
"diffs = np.array(diff)\n",
"\n",
"d = {'k' : ks,\n",
" 'diff' : diffs}\n",
" \n",
"df_k_diff = pandas.DataFrame(d, index=np.arange(1,ks.size+1)) # Create one-based index instead of zero-based\n",
"df_k_diff = df_k_diff.sort_index(axis=1, ascending=False) # Re-sorting the columns so that k column in on the left\n",
"\n",
"print(\"What the k values and their diffs look like:\")\n",
"print(df_k_diff.head())\n",
"print(df_k_diff.tail(), \"\\n\")\n",
"\n",
"print(\"The row with the first smallest difference:\")\n",
"k_with_smallest_diff = df_k_diff[ (df_k_diff[\"diff\"] >= 0.000001)][0:1]\n",
"print(k_with_smallest_diff, \"\\n\")\n",
"\n",
"final_k = k_with_smallest_diff[\"k\"].values\n",
"k_final = final_k[0]\n",
"print(\"Therefore, the k value we should use where the difference is as close to zero is:\", k_final)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"What the k values and their diffs look like:\n",
" k diff\n",
"1 0.100000 -9.977133\n",
"2 0.100049 -9.972226\n",
"3 0.100098 -9.967325\n",
"4 0.100147 -9.962428\n",
"5 0.100196 -9.957536\n",
" k diff\n",
"99996 4.999804 0.234991\n",
"99997 4.999853 0.234995\n",
"99998 4.999902 0.234999\n",
"99999 4.999951 0.235003\n",
"100000 5.000000 0.235006 \n",
"\n",
"The row with the first smallest difference:\n",
" k diff\n",
"58663 2.974467 0.000004 \n",
"\n",
"Therefore, the k value we should use where the difference is as close to zero is: 2.97446674467\n"
]
}
],
"prompt_number": 5
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"OK so now that we solved for k, we can solve for the scale ($\\lambda$) parameter next:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center>$\\large{\\lambda=\\left(\\sum\\limits_{i=1}^n \\frac{(x_i)^k}{r}\\right)^\\frac{1}{k}}$</center>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"l = (np.sum((dtf_all**k_final)/len(df_failed)))**(1/k_final)\n",
"print(\"scale parameter:\",l)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"scale parameter: 203.294704504\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"Let's revisit the difference vs k value plot again:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x = []\n",
"for value in range(0,100000):\n",
" x.append(k_final)\n",
"\n",
"plot(k,diff)\n",
"plot(x,diff)\n",
"title(\"The difference is zero when k=2.974\")\n",
"ylabel(\"Difference\")\n",
"xlabel(\"k\")\n",
"grid()\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 7
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"We're done! So using MLE method, we calculated the shape parameter to be 2.974 and the scale parameter to be 203.94. With the usual Weibull CDF plot below, we are equipped to make failure predictions."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"shape = 2.974\n",
"scale = 203.94\n",
"\n",
"x2 = np.arange(0,450)\n",
"y2 = 1-exp(-(x2/scale)**shape) # This is the equation for Weibull CDF\n",
"\n",
"plot(x2,y2)\n",
"title(\"Weibull CDF - Prediction\",weight='bold')\n",
"grid()\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\npk6dqsaPH+/WDJs2bVI7duywK6ZlZfj+++9VVFSUunDhgjp06JBq1KiRslqtHsmUmJiopk+fftm+\nnsp09OhRlZmZqZRS6vTp0+r2229Xe/bsMX2syspl9nidPXtWKaVUYWGhatOmjdq8ebPpY1VaJrPH\nSSmlpk+frh599FHVvXt3pZT5//+VlsmV4+TWpQounkfv5+dnm0dvFnXJbJ6L5/APGDCAjz/+2K3v\n3759e2pfcpPWsjKsXr2a+Ph4/Pz8CA0NJSwsjG3btnkkE5Q+88lTmW655Raio6MBuOGGG4iMjCQv\nL8/0sSorF5g7XtX/d4HHhQsXsFqt1K5d2/SxKi0TmDtOubm5JCcnM3ToUFsOs8eptEzKOPC+bN+K\nZHJrgc/LyyMkJMS2HRwcbPsfwtMsFgsPPvggLVu2ZN68eQB2F2TVrVuXn376yeO5ysrw448/2s1Y\n8vTYzZ49m6ioKIYMGWK7hNuMTNnZ2WRmZtKmTRutxqok11133QWYO17FxcVER0dTt25d7r//fpo2\nbWr6WJWWCcwdp2eeeYbXX38dH58/yp7Z41RaJovF4rJxcmuBd3QevSds2bKFzMxM1q5dy1tvvcXm\nzZvtPm+xWEzPe6UMnso3YsQIDh06xM6dO6lXrx5jx441JdOZM2fo1asXs2bN4sYbb7zsfc0aqzNn\nztC7d29mzZrFDTfcYPp4+fj4sHPnTnJzc9m0aROpqamXvaenx+rSTGlpaaaO02effUZgYCAxMTFl\nXpfj6XEqK5Mrx8mtBd6RefSeUq9ePQACAgLo2bMn27Zto27duhw7dgyAo0ePEhgY6PFcZWUw8/qC\nwMBA2y/70KFDbX8GejJTYWEhvXr1on///vTo0QPQY6xKcj3++OO2XDqMF0CtWrXo2rUr3377rRZj\ndXGm7du3mzpOW7du5ZNPPqFBgwbEx8ezYcMG+vfvb+o4lZbpiSeecO04ufBcwWUKCwtVw4YN1aFD\nh9T58+dNO8l69uxZVVBQoJRS6syZM+ruu+9W69atU+PGjbPN7JkyZYrbT7IqpdShQ4cuO8laWoaS\nEyrnz59XBw8eVA0bNlTFxcUeyfTjjz/aPp4xY4aKj4/3aKbi4mLVv39/NWbMGLvnzR6rsnKZOV7H\njx+3zfz47bffVPv27dX69etNHauyMh09etS2jxm/VyXS0tJsM1bM/p0qLZMrf5/cPk0yOTlZ3X77\n7apRo0bq1VdfdffblergwYMqKipKRUVFqaZNm9pynDhxQnXo0MFj0yT79eun6tWrp/z8/FRwcLB6\n5513ys0wefJk1ahRIxUREaFSUlI8kmnBggWqf//+qnnz5qpFixbq4YcfVseOHfNops2bNyuLxaKi\noqJsU8XWrl1r+liVlis5OdnU8dq9e7eKiYlRUVFRqnnz5uq1115TSpX/u21WJrN/r0qkpaXZZqyY\n/TtVIjU11Zbp8ccfd9k4eeSerEIIITzPa+/oJIQQVZ0UeCGEqKKkwAshRBUlBV4IIaooKfBCCFFF\nSYEXQogq6v8Bwjqt6OQkuBEAAAAASUVORK5CYII=\n"
}
],
"prompt_number": 8
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"AMMENDMENT:"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"After some research, I found out that the method that I used to calculate the shape parameter is very inefficient since it is basically brute force method. It turns out that, I can use Newton-Raphson method which will find the shape parameter MUCH faster."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<center><h3>Newton-Raphson Method:</h3></center><br>\n",
"<center>$\\huge{X_{n+1}=X_n+\\frac{f(x)}{f'(x)}}$</center><br>\n",
"<center>where $X_n$ is an arbitrary initial value,</center><br>\n",
"<center>f(x) in our case is equal to our MLE equation above:</center><br>\n",
"<center>$\\large{f(x)=\\sum\\limits_{i=1}^r \\frac{ln(x_i)}{r}+\\frac{1}{k}-\\frac{\\sum\\limits_{i=1}^n (x_i)^kln(x_i)}{\\sum\\limits_{i=1}^n (x_i)^k}}$</center><br>\n",
"Due to the tediousness of the equation for f(x), some arbitrary variables (A,B,C,H) were used to simplify the Newton-Raphson equation:<br>\n",
"<center>$\\huge{k_{n+1}=k_n+\\frac{A+\\frac{1}{k_n}-\\frac{C_n}{B_n}}{\\frac{1}{k_n^2}+\\frac{(B_nH_n-C_n^2)}{B_n^2}}}$</center><br><br>\n",
"<center>where</center><br><center>$A=\\sum\\limits_{i=1}^r \\frac{ln(x_i)}{r}$ &nbsp;,&nbsp;&nbsp;&nbsp;&nbsp; $B=\\sum\\limits_{i=1}^n x_i^{k_n}$&nbsp;,&nbsp;&nbsp; $C=\\sum\\limits_{i=1}^n (x_i)^{k_n}\\space ln(x_i)$</center><br>\n",
"<center>and</center><br>\n",
"<center>$H=\\sum\\limits_{i=1}^n x_i^{k_n}(lnx_i)^2$</center><br><br>\n",
"<h3>But what do we use for the initial k value($k_n$)?</h3><br>\n",
"It has been suggested to use the following:<br>\n",
"<center>$k_n=\\left[\\frac{\\frac{6}{\\pi^2}\\left[\\sum\\limits_{i=1}^n (lnx_i)^2-\\left(\\sum\\limits_{i=1}^n lnx_i\\right)^2/n\\right]}{n-1} \\right]^{-\\frac{1}{2}}$</center><br>\n",
"Supposedly using this equation, we will get the shape parameter on average after 3.5 iterations to achieve 4-place accuracy."
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"Below is the translation of those equations above into Python equivalent code and interating Newton-Raphson method 10 times:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# give initial value for the shape paramter:\n",
"shape = (( (6.0/np.pi**2)*(np.sum(ln(dtf_all)**2) - ((np.sum(ln(dtf_all)))**2)/dtf_all.size) ) / (dtf_all.size-1))**-0.5\n",
"for i in range(1,11):\n",
" A = np.sum(ln(dtf_failed) * 1.0)/dtf_failed.size\n",
" B = np.sum(dtf_all**shape)\n",
" C = np.sum( (dtf_all**shape) * ln(dtf_all) )\n",
" H = np.sum( (dtf_all**shape) * (ln(dtf_all))**2 )\n",
" shape = shape + (A+(1.0/shape) - (C/B)) / ( (1.0/shape**2) + ( (B*H)-C**2 ) / B**2 )\n",
" print(\"shape\"+str(i)+\" \"+str(shape))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"shape1 2.97304267161\n",
"shape2 2.97444125054\n",
"shape3 2.97444177838\n",
"shape4 2.97444177838\n",
"shape5 2.97444177838\n",
"shape6 2.97444177838\n",
"shape7 2.97444177838\n",
"shape8 2.97444177838\n",
"shape9 2.97444177838\n",
"shape10 2.97444177838\n"
]
}
],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print(\"So it looks like the Newton-Raphson method calculated the shape value to be:\")\n",
"print(shape)\n",
"print(\"after only 3 iterations\")"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"So it looks like the Newton-Raphson method calculated the shape value to be:\n",
"2.97444177838\n",
"after only 3 iterations\n"
]
}
],
"prompt_number": 20
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"This is very close to the shape parameter value obtained earlier using the inefficient iterative method."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This IPython notebook Weibull analysis was made possible based on reference material from the <a href=\"http://www.weibull.nl/index.php/about-reliability/weibull-statistics\">weibull.nl</a> website and also from <a href=\"http://www.qualitydigest.com/jan99/html/body_weibull.html\">this</a> example of doing Weibull analysis using Excel."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[[back to top](#sections)]"
]
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment