{ "metadata": { "name": "sa.ipynb" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Survival Analysis" ] }, { "cell_type": "raw", "metadata": {}, "source": [ "An approach to modelling comsumer behaviour which is new to me is the application of Survival Analysis. Survival Analysis was initially used in demographics, medicine and biology to model the life of an organism. It is particularly useful as we often don't have the full set of \"deaths\" as many of the subjects may still be alive, yet we would like to model the population lifespan. Survival analysis is now more widley used and is an important component of engineering and marketing. Despite the inital slightly morbid terminology, death in marketing terms is usually a client terminating an account ;)" ] }, { "cell_type": "heading", "level": 5, "metadata": {}, "source": [ "Case Study: Telecom Customers." ] }, { "cell_type": "raw", "metadata": {}, "source": [ "For this case study I will continue using the dataset outlined in a previous post. It is a synthetically created consumer telecommunications dataset. It has a binary churn state, which is not always the case in the real world. To start off lets have a look at how the lifespans look." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from lifelines import *\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from ggplot import *\n", "from pylab import *\n", "%load_ext ipycache" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "data=pd.read_csv(\"E:/Github Stuff/srepho.github.io/Survival/survival.csv\")\n", "#data=pd.read_csv(\"D:/Users/soates/Documents/Github/srepho.github.io/Survival/survival.csv\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "ggplot(aes(x=\"Account_Length\"), data=data) + geom_histogram() + facet_grid(\"Churn\")" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n5ptvlt/v1yuvvKLZs2fT+2EkHo/rsssu0w033KCrr75azz//vC6//HKVlpaqvb1dv/3tb5VKpVRT\nUyOPx0PvP4AbXC6iublZ5eXlCgQCcrlcuuqqq3T48GGry0Ke9PT06Pjx45ozZ44kyeVyacSIETpy\n5Ihmz54tSbr66qv5HRgmJk6cmB41PG/y5MlyOs8dFquqqhQOhyVJR44c0cyZM9MjjuXl5Wpubi54\nzciNvnrv8/nU09Mj6dyxwOfzSaL3w4nP59P48eMlSV6vV2PGjFEkEpEk7d27VzfddFPG/PT+LzgN\nfRHhcFgf+9jH0t/7/X7b/qLYQVtbm0pLS7Vjxw6dOXNGEyZM0OLFi9XZ2alRo0ZJkkaNGpU+hYHh\nrbGxUVdddZUkKRKJqKqqKv0zv9+f/iOD4eHGG2/Uk08+qX379imVSumuu+6SRO+Hq7a2Np05c0aV\nlZU6fPiw/H6/xo0blzEPvf8LRhYvwo5DzXaWTCZ1+vRpfeITn9Ddd98tj8ejhoaGjHn4nbCH/fv3\ny+VyadasWVaXggLZuXOnlixZor/7u7/T4sWLtXPnTqtLQp5Eo1Ft3bpVixcvlsPhUH19vRYuXGh1\nWUWNsHgRPp9P7e3t6e/D4TCfFzmM+f1++f3+9EXt06dP1+nTpzVq1Kj0q8lIJMI1q8NcY2Ojmpqa\ndOutt6ancSwY/pqbmzVt2jRJ5/b982eR6P3w0tvbq61bt2rWrFmaNm2a2tra9P777+vxxx/Xo48+\nqnA4rCeeeEIdHR30/gMIixcxYcIEtba2qq2tTYlEQocOHVJ1dbXVZSFPfD6f/H6/3nvvPUnS0aNH\nFQwGdcUVV+j111+XJL322mu68sorrSwTedTU1KQDBw7oC1/4gjweT3p6dXW1Dh06pEQioba2NrW2\ntqZfVGB4KC8v17FjxyRJ77zzjkaPHi2J3g8nqVRKO3fuVDAY1Ny5cyVJY8eO1aZNm/SNb3xD3/jG\nN+T3+/XVr35Vo0aNovcfwPss9uP8W+ckk0nNmTNH119/vdUlIY/OnDmjXbt2qbe3N/3WKclkUs88\n84za29t565xhZNu2bTp27Ji6uro0atQoLVy4UA0NDert7U33t6qqSrfccoukc6emGxsb5XQ6bf0W\nGsPBh3tfW1uriooK7d69W4lEQh6PR8uWLUvfDEHvh4fjx4/rZz/7mcaOHZu+pGjRokWaOnVqep5H\n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\nAIz+DwIS9sgi+uZrAAAAAElFTkSuQmCC\n", "text": [ "" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 42, "text": [ "" ] } ], "prompt_number": 42 }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline\n", "figsize(12,12)\n", "\n", "from lifelines.plotting import plot_lifetimes\n", "\n", "#plt.xlim(0,25)\n", "#plt.vlines(10,0,30,lw=2, linestyles=\"--\")\n", "plt.xlabel('time')\n", "plt.title('Births and deaths of our population, at $t=10$')\n", "plot_lifetimes(data.Account_Length, event_observed=data.Churn)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n", "warning: you may want to subsample to less than 100 individuals.\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAtAAAALaCAYAAAAYzGT6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt4lOWd//HPJJmQBAKEcDRBwrEIoqBNIFhtCIpItB6w\nVNxV0K26WgsVW60t7mJbBUFtAcuvhWq3upVq3RYPgKKEoEACiNCqtILGYBKCgpwC5ECS+f1heWIg\nh5nMM3M/z8z7dV29LpjM4TOTsXznnu/9vT0+n88nAAAAAH6JMR0AAAAAcBMKaAAAACAAFNAAAABA\nACigAQAAgABQQAMAAAABoIAGAAAAAkABDQAAAASAAhoAAAAIAAU0EKHOPfdcvfXWWwHdJiMjQ2vX\nrg1RosBNnz5dDz74YMiuH4hwvDYffvihRo4cqc6dO+vJJ58M6WM5STCvbXve5wAQLApowKUyMjKU\nlJSk5ORkdevWTVdeeaXKysqsn7///vu65JJLWr19fn5+k8s8Ho88Hk/IMgcq0Dx25Tf12syfP1/j\nx4/X0aNHdffdd4f0sZzE39e2ud9LW+/zcGguV6js2LFDP/zhD5tctmLFCj3yyCOaN2+enn322bDk\nAKJdnOkAANrH4/Ho1VdfVW5urmpqanTXXXfp+9//vv7617+2eru6ujrFxcXJ4/HI5/OFKW37BZrR\njudk6rXZs2ePxo4dG/LHOfUecBunvmfDleuJJ57Qhg0b1KVLF+uyI0eO6Oc//7m2bdsmScrOztYV\nV1yh7t27hzwPEM1YgQYiQIcOHTR58mTt3LnTuuyrq2IZGRmaP3++zj//fHXq1Ek33nijPv30U111\n1VVKTk7WY489Zt1u+/btOv/889W1a1fdcMMNqqmpkSQ9+uijSk9PV+fOnTV06NAWV9zmzZunQYMG\nqXPnzho+fLhWrFjR5OcZGRl6/PHHm32M7du364ILLlDnzp11ww03qLq6utXn3dr19+7dq8mTJ6tn\nz54aMGCAFi9e7FfOm266KWSvzT/+8Q/l5OQoJSVF5557rl555RXrZ7m5uSooKNDdd9+tzp0766OP\nPgro9jExMSouLrb+fno7y6n3wHnnnafk5GQ1NDSccf8ZGRmaN2+ehg8frm7duunWW2+1nmNrj93W\nbdvK9lWB/l6+2v7hT8aW3nttac/75XTjx49XXV2dX4/XnFmzZunqq69uctlbb72lYcOGWX8///zz\ntW7dunY/BgA/+QC4UkZGhu/NN9/0+Xw+3/Hjx30333yzb9q0aU1+vnbtWp/P5/P169fPN2rUKF9Z\nWZmvurr6jJ+f0q9fP9/o0aN9FRUVvoMHD/rOOecc329+8xvfP//5T1/fvn19FRUVPp/P59uzZ4/v\n448/bjbXn//8Z+t6zz//vK9jx47W3089bnOPUVNT4zv77LN9v/rVr3x1dXW+F1980ef1en0PPvhg\ns4/T2vUbGhp8F1xwge/nP/+57+TJk77i4mLfgAEDfK+//nqrOfft2xey16a2ttY3cOBA39y5c30n\nT5705efn+5KTk30ffvihdZ2cnBzfU0891ezzben2u3bt8vl8Pp/H42nyuNOnT2/y2jX3Hjhdv379\nfCNGjPCVlZX5Dh486Lvooot8s2fP9p08ebLN7C3d1p9sX329A/29nLrMn9e3pfeePwLNdbqysjLf\nuHHjmlz28ccf+3784x+3+L8VK1accT+///3vfdOnT7f+vmTJEt/dd99t/f3+++/3Pfzww349JwDt\nxwo04FI+n0/XXHONUlJS1LVrV61du/aM3shTPB6PZsyYobS0NHXo0KHF+zx1vd69eyslJUVXXXWV\nduzYobi4ONXU1OiDDz7QyZMndfbZZ2vAgAHN3sf111+v3r17S5KmTJmiwYMHa8uWLU2u09xjFBUV\nqa6uTjNnzlRsbKwmT56szMzMFrO2dv0tW7bowIEDmj17tuLi4tS/f39997vf1Z/+9KeActr52hQV\nFen48eP68Y9/rLi4OI0bN05XXnmlli9f3uR6vhZaAVq6/XPPPddi5q/elz/vAY/Ho7vvvltpaWlK\nSUnRT3/6Uy1fvtyv7C3d1p9sXxXo7+UUf1/f5n6H/mhvLkl64403dM8996h3795NepQHDBiguXPn\ntvi/01ebJZ3RK3748GElJCRYf4+Pj9exY8f8ygWg/SigAZfyeDx66aWXdOjQIdXU1Gjx4sX65je/\nqc8//7zZ6/ft29ev+z1VJEhSYmKijh07poEDB+pXv/qV5syZo169emnq1KmqqKho9vbPPPOMRo0a\npZSUFKWkpOj999/XF1980eJjJCUl6dixY6qoqFBaWlqT6/Xr16/FQmvv3r0tXv/TTz/V3r17rQwp\nKSmaO3duk9emuZwHDhwI2Wuzd+/eM34H/fr1U3l5eZPLWtpM19Lt9+7d22rmr/LnPfDV65x99tna\nu3ev39mbu22g2vN7kfx/fZv7HYYylyRddtlliouL07333qubbrrJr9u05PT/HpKTk5tcVlVVpW7d\nugX1GADa5r5dJADO4PF4dO211+qOO+7Qhg0bdN111zV7ndb+3tL9njJ16lRNnTpVlZWVuuOOO3T/\n/ffrmWeeaXL9PXv26Pbbb1d+fr6ys7Pl8Xg0atQovzZY9enT54xiZ8+ePRo0aFDA1+/bt6/69++v\nXbt2NXvbtnKG4rU566yzVFpaKp/PZ912z549Gjp0aJuP5c/tk5KSdOLECev6FRUVZxSU/jyvTz/9\ntMmfzzrrLL+zn37bUx9w/Ml26j7b+3tJS0sL+PX1d6pKsO8Xn8+n7du368ILL2xyeXFxsZYtW9bi\n7caMGXPGKvTpjzVw4EC988471t8PHDigCy64wK/nBaD9WIEGXOzUP+A+n89ajT7nnHP8um2vXr30\n8ccf+3X/u3btUn5+vmpqatShQwclJCQoNjb2jOsfP35cHo9H3bt3V0NDg37/+9/r/fff9+sxsrOz\nFRcXp0WLFunkyZP6y1/+oq1bt7Z4u7Fjx7Z4/aysLCUnJ2v+/PmqqqpSfX293n//favQaCtnKF6b\nMWPGKCkpSfPnz9fJkydVUFCgV199VTfccEOz9xvo7UeOHKk//vGPqq+v12uvvdau2cg+n09LlixR\neXm5Dh48qIcfflg33HCDRo8e3Wb25m77ne98J6Bswfxe/MnY3PM9Zfr06brllltszyVJO3futP67\n/GobUXtaOE5/f1xyySXWBA5JevfddzV+/PgWswCwBwU04GKndv536dJFDz74oJ555hm/C+gHHnhA\nv/jFL5SSkqInnnii2eucms9bU1OjBx54QD169FCfPn104MABzZ0794zrDxs2TPfee6+ys7PVu3dv\nvf/++/rGN77Rao5Tj+H1evWXv/xF//M//6PU1FS98MILmjx5cou3a+36MTExevXVV7Vjxw4NGDBA\nPXr00O23366jR4/6lTMUr43X69Urr7yi1atXq0ePHrr77rv17LPPasiQIWfcb0vPt7XbL1y4UK+8\n8opSUlL03HPP6dprr23lVW+ex+PRjTfeqAkTJmjgwIEaPHiwZs+e7Vf2lm4bSLZgfi/+vr6nP99T\nr3dpaWmL79Vg3y+pqanq0qWLli9frm9+85st5mnLk08+qaeffloFBQV66KGHdPToUXXs2FH33Xef\n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\nn59vzZ4920S0iPTmm29a7733njV48GD7saauN+87zmrs2vOe756qqiqrtLTUsizLOn78uNWvXz+r\nrKyM+98FTV177n/3nDhxwrIsyzp9+rQ1fPhw66233nLs3vfECrSkRs8iX7lypaZNm6b4+Hilp6er\nT58+KikpMZAucn35gJv4+Hj7gBuE3tn3/KpVqzR9+j8P85g+fbpWrFhhIlZEGjVqlJKTkxs81tT1\n5n3HWY1de4n3fLf07NlTQ4f+85CaTp06aeDAgaqsrOT+d0FT117i/ndLhw4dJEl1dXXy+/1KTk52\n7N73TAH91FNPKTMzU3fccYe9nL5v3z6lpaXZ35OWlmbffHBGYwfccI1Dz+fzaezYsbrsssu0aNEi\nSVJ1dbVSUlIkSSkpKaqurjYZMeI1db1533EH7/nuKy8vV2lpqYYPH87977J/XfsRI0ZI4v53SyAQ\n0NChQ5WSkmK30zh177tWQI8bN05Dhgz5yn9WrVqlu+66S7t379b777+vXr166Sc/+UmTz8OBLM7i\nepqxceNGlZaWavXq1frNb36jt956q8HXfT4f/924qLnrzX8XzuI9331ffPGFrr32Wi1YsEBJSUkN\nvsb9H1pffPGFrrvuOi1YsECdOnXi/ndRTEyM3n//fVVUVOjNN99UYWFhg68Hc++7NsZu7dq1Lfq+\nO++8U5MmTZIkpaamau/evfbXKioqlJqaGpJ80ersa7x3794Gn8AQGr169ZIkde/eXVOnTlVJSYlS\nUlK0f/9+9ezZU1VVVerRo4fhlJGtqevN+07offne5j0/9E6fPq1rr71Wt912m6655hpJ3P9u+de1\nv/XWW+1rz/3vvi5dumjixIl69913Hbv3PdHCUVVVZf/5pZdesndrT548WS+++KLq6uq0e/dubd++\n3Z5YAGdcdtll2r59u8rLy1VXV6dly5Zp8uTJpmNFtJqaGh0/flySdOLECb3++usaMmSIJk+erKVL\nl0qSli5dar/ZIjSaut6874Qe7/nusSxLd9xxhwYNGqT77rvPfpz7P/Sauvbc/+44ePCg3R5TW1ur\ntWvXKisry7l7P5S7H1vqtttus4YMGWJdeuml1pQpU6z9+/fbX3vkkUesjIwMq3///taaNWsMpoxc\nBQUFVr9+/ayMjAzr0UcfNR0n4u3atcvKzMy0MjMzrUsuucS+5ocOHbLGjBlj9e3b1xo3bpx15MgR\nw0kjx0033WT16tXLio+Pt9LS0qwlS5ac83rzvuOcs6/94sWLec930VtvvWX5fD4rMzPTGjp0qDV0\n6FBr9erV3P8uaOzaFxQUcP+7ZNu2bVZWVpaVmZlpDRkyxJo3b55lWef+/9rWXH8OUgEAAABawRMt\nHAAAAEC4oIAGAAAAWoECGgAAAGgFCmgAAACgFSigAQAAgFaggAYAAABagQIaADzo2LFj+u1vfyvp\nnwcvXH/99YYTAQD+hTnQAOBB5eXlmjRpkj788EPTUQAAZ4kzHQAA8FUPPPCAdu7cqaysLPXt21cf\nf/yxPvzwQ/3xj3/UihUrVFNTo+3bt+snP/mJTp48qT//+c9KSEhQQUGBkpOTtXPnTt1zzz06cOCA\nOnTooEWLFql///6m/1kAEBFo4QAAD5o7d64yMjJUWlqq+fPnN/jaRx99pJdeeklbt27VQw89pM6d\nO+u9995Tbm6unn32WUnS9773PT311FN65513NH/+fN19990m/hkAEJFYgQYAD/pyd93ZnXZXXHGF\nOnbsqI4dO6pr166aNGmSJGnIkCHatm2bTpw4oeLi4gZ903V1de4EB4AoQAENAGEmISHB/nNMTIz9\n95iYGNXX1ysQCCg5OVmlpaWmIgJARKOFAwA8KCkpScePH2/Vz/xrpTopKUkXX3yx/vrXv9qPb9u2\nzfGMABCtKKABwIO6deumyy+/XEOGDNGsWbPk8/kkST6fz/7zv/7+5T//6+/PP/+8Fi9erKFDh2rw\n4MFatWqVu/8AAIhgjLEDAAAAWoEVaAAAAKAVKKABAACAVqCABgAAAFqBAhoAAABoBQpoAAAAoBUo\noAEAAIBWoIAGAAAAWoECGgAAAGiF/w8raueyZjmi+wAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 14 }, { "cell_type": "raw", "metadata": {}, "source": [ "So the above graph shows us the time that each client was with the company until either the end of the assessment period (in which case they are coloured blue) or they left (the red lines with the bulbous end). Part of the problem that survival analysis attempts to answer is how we can guestimate what will happen to the population on average, even though we can't see the end of those blue lines." ] }, { "cell_type": "code", "collapsed": false, "input": [ "data.Churn.describe()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "count 3333\n", "mean 0.1449145\n", "std 0.3520674\n", "min False\n", "25% 0\n", "50% 0\n", "75% 0\n", "max True\n", "dtype: object" ] } ], "prompt_number": 15 }, { "cell_type": "raw", "metadata": {}, "source": [ "As we can see from the above statistics and as mentioned in my pervious post on predicting which clients would \"churn\" only about 15% of the clients actuall churn." ] }, { "cell_type": "code", "collapsed": false, "input": [ "kmf = KaplanMeierFitter()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 43 }, { "cell_type": "code", "collapsed": false, "input": [ "kmf.fit(data[\"Account_Length\"], event_observed=data[\"Churn\"])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 44, "text": [ "" ] } ], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "kmf.survival_function_.plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 45, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n119/Peecc06S3rsDfvWrX828efMye/bsLFy4MPfcc0/a29vz05/+tMErZX+78MIL88tf/jJvvPFG\nxo0bl5tuuinXX3/9XnMxderULFy4MFOnTk1ra2vuuusuH00W4sM5ufHGG7NmzZqsX78+LS0tGT9+\nfN+NluSkTM8++2zuv//+vstmJr2XK/N+UjY3sAAAoAhDfgMLAABoBgZfAACKYPAFAKAIBl8AAIpg\n8AUAoAgGXwAAimDwBRhEf/rTn/K9730vSe8NFc4///xBed2lS5fm1ltvTZLccMMNWb169aC8LkBJ\nXMcXYBB1dnbmrLPOygsvvDCor3vjjTfm4IMPztVXXz2orwtQEju+AIPo+uuvz6ZNmzJr1qwsXLiw\n77a5P/zhD3P22Wdn3rx5GT9+fJYvX55bbrklxx9/fObOnZu33347SbJp06aceeaZmT17dr7whS/k\n97//fb+fcckll+Shhx5KkrS3t2fp0qU54YQTMmPGjL7nb9++PZdeemlOOumkHH/88Xnsscf20/8B\ngOZl8AUYRMuWLcuECROybt263HzzzXs89uKLL+aRRx7Jb37zm3zrW9/KIYcckueffz5z587Nfffd\nlyS5/PLLc8cdd+S3v/1tbr755lx55ZX9fkZLS0vfrVRbWlpyxBFH5He/+12uuOKK3HLLLUmSb3/7\n2/nSl76UX//613nqqadyzTXXZMeOHUP82wM0t9ZGLwBgOPlge+zDTbLTTjstI0aMyIgRIzJq1Kic\nddZZSZLp06dnw4YN2b59e5577rk9esE7d+6s+zPPPffcJMnxxx+fhx9+OEny5JNP5vHHH+8bhP/y\nl7+kq6srkydP/tt+QYADmMEXYD/51Kc+1ff1QQcd1Hd+0EEHpaenJ++9914OO+ywrFu3bq//fvcu\n70Cv+4lPfCI9PT1933/44YczceLEwVo+wAFP1QFgEI0cOTJbt279SP9m987wyJEjM378+PzsZz/r\n+/6GDRv6Pa+K+fPn5/bbb+87H2iYBiiJwRdgEB1++OE5+eSTM3369Fx77bV7dHE/uGP74a93nz/w\nwAO55557ctxxx2XatGl7/FHaQDu+e3udJUuW5N13382MGTMybdq03HDDDYP2OwIcqFzODACAItjx\nBQCgCAZfAACKYPAFAKAIBl8AAIpg8AUAoAgGXwAAimDwBQCgCAZfAACK8P+GkWaJHaobTgAAAABJ\nRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 45 }, { "cell_type": "code", "collapsed": false, "input": [ "naf = NelsonAalenFitter()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 46 }, { "cell_type": "code", "collapsed": false, "input": [ "naf.fit(data[\"Account_Length\"], event_observed=data[\"Churn\"])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 47, "text": [ "" ] } ], "prompt_number": 47 }, { "cell_type": "code", "collapsed": false, "input": [ "print naf.cumulative_hazard_.head()\n", "naf.plot()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " NA-estimate\n", "timeline \n", "0 0.000000\n", "1 0.000300\n", "2 0.000601\n", "3 0.000601\n", "4 0.000601\n" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 48, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAr4AAALOCAYAAABPpRC0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X2QnWV5P/BrQ1AIWdhATYJJ6FICkvCSXYikSpWNLQiM\npCiCUGuJxBZBq4wv9aVjBYaqjFEGTMtYdRRKh+Cg1rRNMoziqoWB+JJFx0yF8GMlBJIacXEDExJg\nf3+ku54ku/vcu3vOnuec+/OZyUyePSfn3ODX4+Wd77mfloGBgYEAAIAmN6XeCwAAgMlg8AUAIAsG\nXwAAsmDwBQAgCwZfAACyYPAFACALow6+W7ZsiaVLl8ZJJ50UJ598ctxyyy0HPKe7uzuOOOKI6Ozs\njM7OzrjhhhtqtlgAABivqaM9ePDBB8dNN90UHR0dsXPnzjj99NPj7LPPjgULFuzzvLPOOivWrFlT\n04UCAMBEjLrjO3v27Ojo6IiIiOnTp8eCBQviySefPOB57oEBAEDZJXd8e3t7Y+PGjbFkyZJ9ft7S\n0hL3339/LFq0KM4///zYtGlT1RcJAAATNWrVYdDOnTvjrW99a9x8880xffr0fR477bTTYsuWLTFt\n2rRYt25dXHjhhfHwww/XZLEAADBeLQMFPYU9e/bEm970pjjvvPPimmuuKXzBY489Nn7yk5/EkUce\nuc/P58yZM2xNAgAAqmXRokXR09Mz7GOj7vgODAzEihUrYuHChSMOvdu3b4+ZM2dGS0tLbNiwIQYG\nBg4YeiMinnzySV1gCi1fvjy+9rWv1XsZlJiMkEJOSCEnzamlpWXEx0YdfO+7776444474tRTT43O\nzs6IiPjUpz4Vjz/+eEREXHnllXH33XfHrbfeGlOnTo1p06bF6tWrq7h0AACojlEH3z/5kz+Jl156\nadQXeM973hPvec97qroo8tXe3l7vJVByMkIKOSGFnOTHndsola6urnovgZKTEVLICSnkJD8GXwAA\nspB0nBkAQKM78sgj47e//W29l0GVzJgxI55++ukx/ZnC48yqpaWlxakOAEDdmEWay0j/eY72n7Oq\nAwAAWTD4Uird3d31XgIlJyOkkBNgOAZfAACyoOMLAGTBLDJ2jz/+eJx00knxu9/9btQ7otWDji8A\nQANqb2+PWbNmxXPPPTf0sy9/+cuxdOnSoeuBgYH4oz/6ozjppJNquo5777136PqYY46J/v7+mgy9\n1157bbzjHe+o+uuOxuBLqejlUURGSCEnNKKXXnopbr755hEf/8EPfhDPP/98/PrXv44f//jHNVlD\ns++KG3wBAOqspaUlPvShD8XKlSvjmWeeGfY5t912W1x00UXx53/+53HbbbeN+nrPP/98fOhDH4o/\n/MM/jNmzZ8dVV10Vu3btioiIHTt2xJve9KaYMWNGHHXUUfH6178+BgYG4h3veEc8/vjjccEFF0Rr\na2usXLkyent7Y8qUKfHSSy9FxN673X3iE5+IM888M1pbW2PZsmWxY8eOePvb3x5HHHFEnHHGGfGr\nX/1qaB3vf//745hjjokjjjgiFi9eHP/93/8dERHr16+PT3/603HXXXdFa2trdHZ2RkTEM888EytW\nrIhXvvKVMXfu3PjEJz4x9N7VYPClVNw+kiIyQgo5oREtXrw4urq6YuXKlQc89txzz8U3vvGNeNvb\n3haXXHJJrF69Ovbs2TPia330ox+NzZs3x0MPPRSbN2+OrVu3xvXXXx8REZ/73Odi3rx5sWPHjvjf\n//3f+PSnPx0tLS3xr//6r3HMMcfEf/7nf0Z/f3986EMfGva177rrrrjjjjti69at8eijj8ZrXvOa\nWLFiRTz99NOxYMGCuO6664aee8YZZ8RDDz0Uv/3tb+Mv/uIv4uKLL47du3fHueeeGx//+Mfj0ksv\njf7+/ti4cWNERCxfvjxe9rKXxaOPPhobN26Me+65J7785S9P5F/rPgy+AAAl0NLSEtdff3184Qtf\niB07duzz2De/+c04/PDD48wzz4w3vOENERHxX//1X8O+zsDAQHzpS1+Kz3/+89HW1hbTp0+Pj33s\nY7F69eqIiHjZy14WTz31VPT29sZBBx0UZ5555pjW+M53vjOOPfbYOPzww+O8886LE044Id7whjfE\nQQcdFBdffPHQEBsR8fa3vz1mzJgRU6ZMiQ984APx/PPPxy9/+cuhdVbWKrZv3x7r1q2Lm266KQ49\n9NB4xSteEddcc83QuqvB4Eup6OVRREZIISeMV0tLdX6N10knnRRvetOb4jOf+cw+Xyi77bbb4i1v\neUtERBx00EFx4YUXDtUdPvWpT0Vra2u0trbG1VdfHTt27IjnnnsuTj/99JgxY0bMmDEjzjvvvKFh\n+sMf/nDMnz8/zjnnnDjuuOPixhtvHNMaZ82aNfT7Qw45JGbOnLnP9c6dO4euV65cGQsXLoy2traY\n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\n7NmzJy666KL4y7/8y7jwwgsPeHzOnDmxZcuWoesnnngi5syZM+xrLV++PNrb2yMioq2tLTo6Oob+\nmmEwfK7zvh5UlvW4du26Ma97enpKtR7XrhvletOm7ti2LaKjY+91T8/ex8t8vXlzT+zc2RcREdu2\n9cZoRj3Hd2BgIC6//PI46qij4qabbhr2OWvXro1Vq1bF2rVr44EHHohrrrlm2C+3OccXAKDcmv0c\n31F3fO+7776444474tRTT43Ozs6IiPjUpz4Vjz/+eEREXHnllXH++efH2rVrY/78+XHYYYfFV7/6\n1SovHwAAJs6d2yiV7u7uob9ugeHICCnkhBRycqBm3/GdMslrAQCAurDjCwBARNjxBQCApmDwpVQG\nj1WBkcgIKeSEFHKSH4MvAABZ0PEFACAidHwBAKApGHwpFX0risgIKeSEFHKSH4MvAABZ0PEFACAi\ndHwBAKApGHwpFX0risgIKeSEFHKSH4MvAABZ0PEFACAidHwBAKApGHwpFX0risgIKeSEFHKSH4Mv\nAABZ0PEFACAidHwBAKApGHwpFX0risgIKeSEFHKSH4MvAABZ0PEFACAidHwBAKApGHwpFX0risgI\nKeSEFHKSH4MvAABZ0PEFACAidHwBAKApGHwpFX0risgIKeSEFHKSH4MvAABZ0PEFACAidHwBAKAp\nGHwpFX0risgIKeSEFHKSH4MvAABZ0PEFACAidHwBAKApGHwpFX0risgIKeSEFHKSH4MvAABZ0PEF\nACAidHwBAKApGHwpFX0risgIKeSEFHKSH4MvAABZ0PEFACAidHwBAKApGHwpFX0risgIKeSEFHKS\nH4MvAABZ0PEFACAidHwBAKApGHwpFX0risgIKeSEFHKSH4MvAABZ0PEFACAidHwBAKApGHwpFX0r\nisgIKeSEFHKSH4MvAABZ0PEFACAidHwBAKApGHwpFX0risgIKeSEFHKSH4MvAABZ0PEFACAidHwB\nAKApGHwpFX0risgIKeSEFHKSH4MvAABZ0PEFACAidHwBAKApGHwpFX0risgIKeSEFHKSH4MvAABZ\n0PEFACAidHwBAKApGHwpFX0risgIKeSEFHKSH4MvAABZ0PEFACAidHwBAKApGHwpFX0risgIKeSE\nFHKSH4MvAABZ0PEFACAidHwBAKApGHwpFX0risgIKeSEFHKSH4MvAABZ0PEFACAidHwBAKApGHwp\n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\n9a/XeaVMtssuuyy+//3vx44dO2LevHlx/fXXx0c/+tFhc7Fw4cK45JJLYuHChTF16tT453/+Z381\nmYn9c3LddddFd3d39PT0REtLSxx77LFDN1uSkzzdd999cccddwwdmxmx97gynyd5cwMLAACyUPMb\nWAAAQBkYfAEAyILBFwCALBh8AQDIgsEXAIAsGHwBAMiCwRegip555pm49dZbI2LvDRUuvvjiqrzu\ntddeG5/73OciIuKTn/xkfPe7363K6wLkxDm+AFXU29sbF1xwQfz85z+v6uted911MX369PjgBz9Y\n1dcFyIkdX4Aq+uhHPxqPPvpodHZ2xiWXXDJ029yvfe1rceGFF8Y555wTxx57bKxatSpWrlwZp512\nWrzmNa+J3/72txER8eijj8Z5550Xixcvjte//vXxy1/+8oD3WL58eXzjG9+IiIj29va49tpr4/TT\nT49TTz116PnPPvtsXHHFFbFkyZI47bTTYs2aNZP0bwCgvAy+AFV04403xnHHHRcbN26Mz372s/s8\n9otf/CK+9a1vxY9+9KP4+7//+zj88MPjpz/9abzmNa+J22+/PSIi/uZv/ia+8IUvxI9//OP47Gc/\nG1dfffUB79HS0jJ0K9WWlpZ4xSteET/5yU/iqquuipUrV0ZExD/+4z/Gn/7pn8aDDz4Y9957b3z4\nwx+O5557rsb/9ADlNrXeCwBoJpXtsf2bZEuXLo3DDjssDjvssGhra4sLLrggIiJOOeWU+NnPfhbP\nPvts3H///fv0gnfv3l34nm95y1siIuK0006Lb37zmxERcc8998R//Md/DA3Czz//fGzZsiVe9apX\nTewfEKCBGXwBJsnLX/7yod9PmTJl6HrKlCnxwgsvxEsvvRQzZsyIjRs3DvvnB3d5R3rdgw46KF54\n4YWhn3/zm9+M448/vlrLB2h4qg4AVdTa2hr9/f1j+jODO8Otra1x7LHHxt133z3085/97GcHPC/F\nG9/4xrjllluGrkcapgFyYvAFqKKjjjoqzjzzzDjllFPi7/7u7/bp4lbu2O7/+8Hrf/u3f4uvfOUr\n0dHRESeffPI+X0obacd3uNf5xCc+EXv27IlTTz01Tj755PjkJz9ZtX9GgEblODMAALJgxxcAgCwY\nfAEAyILBFwCALBh8AQDIgsEXAIAsGHwBAMiCwRcAgCwYfAEAyML/B2gesXzlbraFAAAAAElFTkSu\nQmCC\n", "text": [ "" ] } ], "prompt_number": 48 }, { "cell_type": "code", "collapsed": false, "input": [ "del data[\"Phone\"]\n", "del data[\"State\"]\n", "del data[\"Area_Code\"]\n", "del data[\"Intl_Plan\"]\n", "del data[\"Vmail_Plan\"]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 79 }, { "cell_type": "code", "collapsed": false, "input": [ "data.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
StateAccount_LengthArea_CodePhoneIntl_PlanVmail_PlanVmail_MessageDay_MinsDay_CallsDay_Charge...Eve_CallsEve_ChargeNight_MinsNight_CallsNight_ChargeIntl_MinsIntl_CallsIntl_ChargeCustServ_CallsChurn
0 KS 128 415 382-4657 no yes 25 265.1 110 45.07... 99 16.78 244.7 91 11.01 10.0 3 2.70 1 True
1 OH 107 415 371-7191 no yes 26 161.6 123 27.47... 103 16.62 254.4 103 11.45 13.7 3 3.70 1 True
2 NJ 137 415 358-1921 no no 0 243.4 114 41.38... 110 10.30 162.6 104 7.32 12.2 5 3.29 0 True
3 OH 84 408 375-9999 yes no 0 299.4 71 50.90... 88 5.26 196.9 89 8.86 6.6 7 1.78 2 True
4 OK 75 415 330-6626 yes no 0 166.7 113 28.34... 122 12.61 186.9 121 8.41 10.1 3 2.73 3 True
\n", "

5 rows \u00d7 21 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 12, "text": [ " State Account_Length Area_Code Phone Intl_Plan Vmail_Plan \\\n", "0 KS 128 415 382-4657 no yes \n", "1 OH 107 415 371-7191 no yes \n", "2 NJ 137 415 358-1921 no no \n", "3 OH 84 408 375-9999 yes no \n", "4 OK 75 415 330-6626 yes no \n", "\n", " Vmail_Message Day_Mins Day_Calls Day_Charge ... Eve_Calls \\\n", "0 25 265.1 110 45.07 ... 99 \n", "1 26 161.6 123 27.47 ... 103 \n", "2 0 243.4 114 41.38 ... 110 \n", "3 0 299.4 71 50.90 ... 88 \n", "4 0 166.7 113 28.34 ... 122 \n", "\n", " Eve_Charge Night_Mins Night_Calls Night_Charge Intl_Mins Intl_Calls \\\n", "0 16.78 244.7 91 11.01 10.0 3 \n", "1 16.62 254.4 103 11.45 13.7 3 \n", "2 10.30 162.6 104 7.32 12.2 5 \n", "3 5.26 196.9 89 8.86 6.6 7 \n", "4 12.61 186.9 121 8.41 10.1 3 \n", "\n", " Intl_Charge CustServ_Calls Churn \n", "0 2.70 1 True \n", "1 3.70 1 True \n", "2 3.29 0 True \n", "3 1.78 2 True \n", "4 2.73 3 True \n", "\n", "[5 rows x 21 columns]" ] } ], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "s = ' + '.join(data.columns) + ' -1' \n", "print s" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "State + Account_Length + Area_Code + Phone + Intl_Plan + Vmail_Plan + Vmail_Message + Day_Mins + Day_Calls + Day_Charge + Eve_Mins + Eve_Calls + Eve_Charge + Night_Mins + Night_Calls + Night_Charge + Intl_Mins + Intl_Calls + Intl_Charge + CustServ_Calls + Churn -1\n" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "import patsy" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "X = patsy.dmatrix(\"State + Account_Length + Area_Code + Phone + Intl_Plan + Vmail_Plan + Vmail_Message + Day_Mins + Day_Calls + Day_Charge + Eve_Mins + Eve_Calls + Eve_Charge + Night_Mins + Night_Calls + Night_Charge + Intl_Mins + Intl_Calls + Intl_Charge + CustServ_Calls -1\", data, return_type='dataframe')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "X.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
State[AK]State[AL]State[AR]State[AZ]State[CA]State[CO]State[CT]State[DC]State[DE]State[FL]...Eve_MinsEve_CallsEve_ChargeNight_MinsNight_CallsNight_ChargeIntl_MinsIntl_CallsIntl_ChargeCustServ_Calls
0 0 0 0 0 0 0 0 0 0 0... 197.4 99 16.78 244.7 91 11.01 10.0 3 2.70 1
1 0 0 0 0 0 0 0 0 0 0... 195.5 103 16.62 254.4 103 11.45 13.7 3 3.70 1
2 0 0 0 0 0 0 0 0 0 0... 121.2 110 10.30 162.6 104 7.32 12.2 5 3.29 0
3 0 0 0 0 0 0 0 0 0 0... 61.9 88 5.26 196.9 89 8.86 6.6 7 1.78 2
4 0 0 0 0 0 0 0 0 0 0... 148.3 122 12.61 186.9 121 8.41 10.1 3 2.73 3
\n", "

5 rows \u00d7 3401 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ " State[AK] State[AL] State[AR] State[AZ] State[CA] State[CO] \\\n", "0 0 0 0 0 0 0 \n", "1 0 0 0 0 0 0 \n", "2 0 0 0 0 0 0 \n", "3 0 0 0 0 0 0 \n", "4 0 0 0 0 0 0 \n", "\n", " State[CT] State[DC] State[DE] State[FL] ... Eve_Mins Eve_Calls \\\n", "0 0 0 0 0 ... 197.4 99 \n", "1 0 0 0 0 ... 195.5 103 \n", "2 0 0 0 0 ... 121.2 110 \n", "3 0 0 0 0 ... 61.9 88 \n", "4 0 0 0 0 ... 148.3 122 \n", "\n", " Eve_Charge Night_Mins Night_Calls Night_Charge Intl_Mins Intl_Calls \\\n", "0 16.78 244.7 91 11.01 10.0 3 \n", "1 16.62 254.4 103 11.45 13.7 3 \n", "2 10.30 162.6 104 7.32 12.2 5 \n", "3 5.26 196.9 89 8.86 6.6 7 \n", "4 12.61 186.9 121 8.41 10.1 3 \n", "\n", " Intl_Charge CustServ_Calls \n", "0 2.70 1 \n", "1 3.70 1 \n", "2 3.29 0 \n", "3 1.78 2 \n", "4 2.73 3 \n", "\n", "[5 rows x 3401 columns]" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "X.columns" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 59, "text": [ "Index([u'State[AK]', u'State[AL]', u'State[AR]', u'State[AZ]', u'State[CA]', u'State[CO]', u'State[CT]', u'State[DC]', u'State[DE]', u'State[FL]', u'State[GA]', u'State[HI]', u'State[IA]', u'State[ID]', u'State[IL]', u'State[IN]', u'State[KS]', u'State[KY]', u'State[LA]', u'State[MA]', u'State[MD]', u'State[ME]', u'State[MI]', u'State[MN]', u'State[MO]', u'State[MS]', u'State[MT]', u'State[NC]', u'State[ND]', u'State[NE]', u'State[NH]', u'State[NJ]', u'State[NM]', u'State[NV]', u'State[NY]', u'State[OH]', u'State[OK]', u'State[OR]', u'State[PA]', u'State[RI]', u'State[SC]', u'State[SD]', u'State[TN]', u'State[TX]', u'State[UT]', u'State[VA]', u'State[VT]', u'State[WA]', u'State[WI]', u'State[WV]', u'State[WY]', u'Intl_Plan[T.yes]', u'Vmail_Plan[T.yes]', u'Churn[T.True]', u'Account_Length', u'Area_Code', u'Vmail_Message', u'Day_Mins', u'Day_Calls', u'Day_Charge', u'Eve_Mins', u'Eve_Calls', u'Eve_Charge', u'Night_Mins', u'Night_Calls', u'Night_Charge', u'Intl_Mins', u'Intl_Calls', u'Intl_Charge', u'CustServ_Calls'], dtype='object')" ] } ], "prompt_number": 59 }, { "cell_type": "code", "collapsed": false, "input": [ "data.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
StateAccount LengthArea CodeIntl PlanVMail PlanVMail MessageDay MinsDay CallsDay ChargeEve MinsEve CallsEve ChargeNight MinsNight CallsNight ChargeIntl MinsIntl CallsIntl ChargeCustServ CallsChurn
0 KS 128 415 no yes 25 265.1 110 45.07 197.4 99 16.78 244.7 91 11.01 10.0 3 2.70 1 True
1 OH 107 415 no yes 26 161.6 123 27.47 195.5 103 16.62 254.4 103 11.45 13.7 3 3.70 1 True
2 NJ 137 415 no no 0 243.4 114 41.38 121.2 110 10.30 162.6 104 7.32 12.2 5 3.29 0 True
3 OH 84 408 yes no 0 299.4 71 50.90 61.9 88 5.26 196.9 89 8.86 6.6 7 1.78 2 True
4 OK 75 415 yes no 0 166.7 113 28.34 148.3 122 12.61 186.9 121 8.41 10.1 3 2.73 3 True
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 33, "text": [ " State Account Length Area Code Intl Plan VMail Plan VMail Message \\\n", "0 KS 128 415 no yes 25 \n", "1 OH 107 415 no yes 26 \n", "2 NJ 137 415 no no 0 \n", "3 OH 84 408 yes no 0 \n", "4 OK 75 415 yes no 0 \n", "\n", " Day Mins Day Calls Day Charge Eve Mins Eve Calls Eve Charge \\\n", "0 265.1 110 45.07 197.4 99 16.78 \n", "1 161.6 123 27.47 195.5 103 16.62 \n", "2 243.4 114 41.38 121.2 110 10.30 \n", "3 299.4 71 50.90 61.9 88 5.26 \n", "4 166.7 113 28.34 148.3 122 12.61 \n", "\n", " Night Mins Night Calls Night Charge Intl Mins Intl Calls Intl Charge \\\n", "0 244.7 91 11.01 10.0 3 2.70 \n", "1 254.4 103 11.45 13.7 3 3.70 \n", "2 162.6 104 7.32 12.2 5 3.29 \n", "3 196.9 89 8.86 6.6 7 1.78 \n", "4 186.9 121 8.41 10.1 3 2.73 \n", "\n", " CustServ Calls Churn \n", "0 1 True \n", "1 1 True \n", "2 0 True \n", "3 2 True \n", "4 3 True " ] } ], "prompt_number": 33 }, { "cell_type": "code", "collapsed": false, "input": [ "del X[\"Churn[T.True]\"]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 61 }, { "cell_type": "code", "collapsed": false, "input": [ "X[\"Churn\"] = data[\"Churn\"]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "from lifelines.datasets import generate_rossi_dataset\n", "from lifelines import CoxPHFitter\n", "from lifelines import statsitics.concordance_index\n", "\n", "rossi_dataset = generate_rossi_dataset()\n", "cf = CoxPHFitter(alpha=0.95, tie_method='Efron')\n", "cf.fit(rossi_dataset, duration_col='week', event_col='arrest')\n", "\n", "print cf.summary()\n", "\n", "\n", "\n", "lifelines.statsitics.concordance_index" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " coef exp(coef) se(coef) z p lower 0.95 upper 0.95\n", "fin -0.379022 0.684531 0.191364 -1.980629 0.047633 -0.754172 -0.003872\n", "age -0.057246 0.944362 0.021983 -2.604155 0.009210 -0.100340 -0.014151\n", "race 0.314130 1.369067 0.308019 1.019839 0.307805 -0.289709 0.917969\n", "wexp -0.151115 0.859749 0.212125 -0.712386 0.476226 -0.566963 0.264733\n", "mar -0.432783 0.648702 0.381797 -1.133541 0.256987 -1.181255 0.315690\n", "paro -0.084983 0.918528 0.195748 -0.434144 0.664184 -0.468726 0.298760\n", "prio 0.091112 1.095391 0.028630 3.182426 0.001460 0.034986 0.147237\n", "None\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "cf.durations.head()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "313 1\n", "100 2\n", "183 3\n", "416 4\n", "79 5\n", "Name: week, dtype: int64" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "rossi_dataset.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
weekarrestfinageracewexpmarparoprio
0 20 1 0 27 1 0 0 1 3
1 17 1 0 18 1 0 0 1 8
2 25 1 0 19 0 1 0 1 13
3 52 0 1 23 1 1 1 1 1
4 52 0 0 19 0 1 0 1 3
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ " week arrest fin age race wexp mar paro prio\n", "0 20 1 0 27 1 0 0 1 3\n", "1 17 1 0 18 1 0 0 1 8\n", "2 25 1 0 19 0 1 0 1 13\n", "3 52 0 1 23 1 1 1 1 1\n", "4 52 0 0 19 0 1 0 1 3" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "from lifelines import statistics" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "statistics.concordance_index( rossi_dataset['week'], cf.durations, event_observed=rossi_dataset['arrest'])" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "0.48917215904975736" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "from lifelines.utils import k_fold_cross_validation" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 87 }, { "cell_type": "code", "collapsed": false, "input": [ "cf = CoxPHFitter(alpha=0.95, tie_method='Efron')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "cf.fit(X, duration_col='Account_Length', event_col='Churn')" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "ValueError", "evalue": "delta contains nan value(s). Converge halted.", "output_type": "pyerr", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mcf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mduration_col\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Account_Length'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mevent_col\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Churn'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;32mC:\\Users\\Stephen\\AppData\\Local\\Enthought\\Canopy\\User\\lib\\site-packages\\lifelines\\estimation.pyc\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, df, duration_col, event_col, show_progress, initial_beta, include_likelihood)\u001b[0m\n\u001b[0;32m 995\u001b[0m hazards_ = self._newton_rhaphson(df, T, E, initial_beta=initial_beta,\n\u001b[0;32m 996\u001b[0m \u001b[0mshow_progress\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mshow_progress\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 997\u001b[1;33m include_likelihood=include_likelihood)\n\u001b[0m\u001b[0;32m 998\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 999\u001b[0m self.hazards_ = pd.DataFrame(hazards_.T, columns=df.columns,\n", "\u001b[1;32mC:\\Users\\Stephen\\AppData\\Local\\Enthought\\Canopy\\User\\lib\\site-packages\\lifelines\\estimation.pyc\u001b[0m in \u001b[0;36m_newton_rhaphson\u001b[1;34m(self, X, T, E, initial_beta, step_size, epsilon, show_progress, include_likelihood)\u001b[0m\n\u001b[0;32m 938\u001b[0m \u001b[0mbeta\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdelta\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mbeta\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 939\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0misnull\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdelta\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msum\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 940\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"delta contains nan value(s). Converge halted.\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 941\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mnorm\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdelta\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<\u001b[0m \u001b[0mepsilon\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 942\u001b[0m \u001b[0mconverging\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mFalse\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mValueError\u001b[0m: delta contains nan value(s). Converge halted." ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "cf.summary()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " coef exp(coef) se(coef) z p lower 0.95 upper 0.95\n", "Vmail_Message 0.003974 1.003982 0.001351 2.940537 0.003276 0.001325 0.006623\n", "Day_Mins -0.134447 0.874200 1.106259 -0.121533 0.903269 -2.303151 2.034258\n", "Day_Calls -0.002494 0.997509 0.000933 -2.672612 0.007526 -0.004323 -0.000665\n", "Day_Charge 0.780957 2.183560 6.507411 0.120010 0.904475 -11.976138 13.538052\n", "Eve_Mins 0.108991 1.115152 0.556185 0.195962 0.844640 -0.981351 1.199334\n", "Eve_Calls -0.000125 0.999875 0.000942 -0.132629 0.894487 -0.001972 0.001722\n", "Eve_Charge -1.288985 0.275550 6.543494 -0.196987 0.843837 -14.116818 11.538848\n", "Night_Mins 0.077512 1.080595 0.298030 0.260080 0.794802 -0.506746 0.661769\n", "Night_Calls 0.000554 1.000554 0.000975 0.568107 0.569962 -0.001358 0.002466\n", "Night_Charge -1.728339 0.177579 6.622481 -0.260981 0.794108 -14.711017 11.254340\n", "Intl_Mins 0.819233 2.268760 1.760719 0.465283 0.641728 -2.632471 4.270938\n", "Intl_Calls 0.006350 1.006370 0.007608 0.834627 0.403928 -0.008565 0.021265\n", "Intl_Charge -3.072109 0.046323 6.521514 -0.471073 0.637589 -15.856851 9.712634\n", "CustServ_Calls -0.059976 0.941787 0.014996 -3.999558 0.000063 -0.089374 -0.030579\n" ] } ], "prompt_number": 93 }, { "cell_type": "code", "collapsed": false, "input": [ "scores=k_fold_cross_validation(cf, data, duration_col='Account_Length', event_col='Churn')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 89 }, { "cell_type": "code", "collapsed": false, "input": [ "scores.mean()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 90, "text": [ "0.4954231541874119" ] } ], "prompt_number": 90 }, { "cell_type": "code", "collapsed": false, "input": [ "cf.summary()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " coef exp(coef) se(coef) z p lower 0.95 upper 0.95\n", "Vmail_Message 0.003974 1.003982 0.001351 2.940537 0.003276 0.001325 0.006623\n", "Day_Mins -0.134447 0.874200 1.106259 -0.121533 0.903269 -2.303151 2.034258\n", "Day_Calls -0.002494 0.997509 0.000933 -2.672612 0.007526 -0.004323 -0.000665\n", "Day_Charge 0.780957 2.183560 6.507411 0.120010 0.904475 -11.976138 13.538052\n", "Eve_Mins 0.108991 1.115152 0.556185 0.195962 0.844640 -0.981351 1.199334\n", "Eve_Calls -0.000125 0.999875 0.000942 -0.132629 0.894487 -0.001972 0.001722\n", "Eve_Charge -1.288985 0.275550 6.543494 -0.196987 0.843837 -14.116818 11.538848\n", "Night_Mins 0.077512 1.080595 0.298030 0.260080 0.794802 -0.506746 0.661769\n", "Night_Calls 0.000554 1.000554 0.000975 0.568107 0.569962 -0.001358 0.002466\n", "Night_Charge -1.728339 0.177579 6.622481 -0.260981 0.794108 -14.711017 11.254340\n", "Intl_Mins 0.819233 2.268760 1.760719 0.465283 0.641728 -2.632471 4.270938\n", "Intl_Calls 0.006350 1.006370 0.007608 0.834627 0.403928 -0.008565 0.021265\n", "Intl_Charge -3.072109 0.046323 6.521514 -0.471073 0.637589 -15.856851 9.712634\n", "CustServ_Calls -0.059976 0.941787 0.014996 -3.999558 0.000063 -0.089374 -0.030579\n" ] } ], "prompt_number": 85 }, { "cell_type": "code", "collapsed": false, "input": [ "foo=cf.baseline_hazard_" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 108 }, { "cell_type": "code", "collapsed": false, "input": [ "foo.iloc[6]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 112, "text": [ "baseline hazard 0.001312\n", "Name: 6, dtype: float64" ] } ], "prompt_number": 112 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }