Skip to content

Instantly share code, notes, and snippets.

@fonnesbeck
Created July 13, 2015 15:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save fonnesbeck/042a9ce5aee254f8b25e to your computer and use it in GitHub Desktop.
Save fonnesbeck/042a9ce5aee254f8b25e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Survival Models\n",
"\n",
"As the name implies, *survival analysis* often deals with analyzing mortality event data. More generally, however, it encompasses all manner of failure events, and sometimes includes non-failure events: the contraction of a disease, changes in governments, the occurrence of divorce. It can even be used to model non-failure events, such as the scoring of goals in a sporting event, or the duration of a pregnancy.\n",
"\n",
"As failure events are binary, the simplest approach is to use a binomial model as a likelihood, essentially turning the problem into a logistic regression. This formulation allows for the incorporation of covariates that may be predicitve of the events of interest. As an interesting case study of using binary loigistic regression to predict survival, we will look at the passengers of the RMS Titanic (Eaton & Haas 1995), and estimate the contribution of several variables recorded on the ship's register. This dataset has been used extensively as a test case for predictive modeling, including a Kaggle competition, and is available online in several locations, including the Vanderbilt University Department of Biostatistics website."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"titanic = pd.read_csv(\"data/titanic3.csv\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Some potential predictive variables of interest include `sex` and `age`, the passenger class `pclass`, the number of parents or children of the passenger onboard `parch`, and the number of siblings or spouses of the passenger `sibsp`."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.PairGrid at 0x10c1dedd8>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n",
"QmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x10c1decc0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"import seaborn as sb\n",
"\n",
"titanic['female'] = titanic.sex == 'female' \n",
"\n",
"sb.pairplot(titanic[['age', 'female', 'pclass', 'parch', 'sibsp', 'survived']].dropna(),\n",
" hue='survived', size=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It is helpful, prior to fitting a model, to transform some of the variables. Notice above that we recoded the variable `sex` from a string type to a boolean type, and renamed it `female`, which makes it obvious what the ones and zeros represent. Looking at the `parch` and `sibsp` variables, as one anticipates, the number of related passengers dorps off steeply after one or two, so we will want to aggregate the higher counts. In each case, let's aggregate all counts of two or more."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0 1002\n",
"1 170\n",
"2 113\n",
"3 8\n",
"5 6\n",
"4 6\n",
"9 2\n",
"6 2\n",
"dtype: int64"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"titanic.parch.value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0 891\n",
"1 319\n",
"2 42\n",
"4 22\n",
"3 20\n",
"8 9\n",
"5 6\n",
"dtype: int64"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"titanic.sibsp.value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"titanic.loc[titanic.parch>2, 'parch'] = 2\n",
"titanic.loc[titanic.sibsp>2, 'sibsp'] = 2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Next, we will standardize the `age` variable, so that the baseline is interpretable as the average age, and the parameters as change per standard deviation from average."
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"titanic['ages'] = (titanic.age - titanic.age.mean()) / titanic.age.std()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will also recode `pclass` so that they are in reverse order, and 3rd class (the most prevalent) is the baseline."
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"titanic['passenger_class'] = titanic.pclass.replace({3:0, 2:1, 1:2})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally, we may be interested in some interaction effects among the predictors. For example, the effect of passenger class on survival may vary by gender."
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"titanic['femaleXpclass'] = titanic.female*titanic.passenger_class"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can specify a binary logistic model in PyMC using a `Bernoulli` likelihood, and modeling the corresponding probability of survival `p` as a linear function of our set of variables, inverse-logit transformed to place them on the unit interval."
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"varnames = ['survived', 'passenger_class', 'female', 'ages', 'parch', 'sibsp', 'femaleXpclass']"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from pymc import Bernoulli, deterministic, Normal, invlogit\n",
"import numpy as np\n",
"\n",
"def titanic_model(dataset):\n",
" \n",
" # Extract variables and drop missing values\n",
" X = dataset[varnames].dropna()\n",
" \n",
" # Extract response\n",
" survived = X.pop('survived').values\n",
" \n",
" k = X.shape[1]\n",
" \n",
" β = Normal('β', np.zeros(k+1), np.ones(k+1)*0.001, value=np.zeros(k+1))\n",
" \n",
" @deterministic\n",
" def p(b=β):\n",
" return invlogit(b[0] + b[1:].dot(X.T.values))\n",
" \n",
" y = Bernoulli('y', p, value=survived, observed=True)\n",
" \n",
" return locals()"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from pymc import MCMC\n",
"\n",
"M_bin = MCMC(titanic_model(titanic))"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" [-----------------100%-----------------] 20000 of 20000 complete in 19.3 sec"
]
}
],
"source": [
"M_bin.sample(20000, 10000)"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Could not calculate Gelman-Rubin statistics. Requires multiple chains of equal length.\n"
]
},
{
"data": {
"image/png": [
"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\n",
"2u2v3+cwAAAAAElFTkSuQmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x12c554908>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from pymc import Matplot\n",
"\n",
"Matplot.summary_plot(M_bin.β, custom_labels=['intercept'] + varnames[1:])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The resulting forest plot suggests better expected probability of survival with better passenger class, female gender, and particularly for females in higher passenger clas categories. Whereas, survival declines with age and more siblings or spouses on board. The effect of parents and children is equivocal."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Non-linear Effects\n",
"\n",
"In order to avoid making the assumption that the relationship between age and survival is linear, we will modify the model above to account for this potential non-linearity. There are several possible approaches for this, including splines and Gaussian processes (which we will cover in Chapter 9). We will take a very simple approach and fit a polynomial function for age, which involves a very simple modification to the model, adding two parameters for the quadratic and cubic age terms."
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def titanic_poly(dataset):\n",
" \n",
" # Extract variables and drop missing values\n",
" X = dataset[varnames].dropna()\n",
" \n",
" # Extract response\n",
" survived = X.pop('survived').values\n",
" \n",
" X['age2'] = X.ages**2\n",
" X['age3'] = X.ages**3\n",
" \n",
" k = X.shape[1]\n",
" \n",
" β = Normal('β', np.zeros(k+1), np.ones(k+1)*0.001, value=np.zeros(k+1))\n",
" \n",
" @deterministic\n",
" def p(b=β):\n",
" return invlogit(b[0] + X.dot(b[1:]).values)\n",
" \n",
" y = Bernoulli('y', p, value=survived, observed=True)\n",
" \n",
" return locals()"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"M_poly = MCMC(titanic_poly(titanic))"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" [-----------------100%-----------------] 20000 of 20000 complete in 20.4 sec"
]
}
],
"source": [
"M_poly.sample(20000, 10000)"
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Could not calculate Gelman-Rubin statistics. Requires multiple chains of equal length.\n"
]
},
{
"data": {
"image/png": [
"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\n",
"TkSuQmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x145f254e0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Matplot.summary_plot(M_poly.β, custom_labels=['intercept'] + M_poly.X.columns.tolist())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The resulting fit suggests a slight curvilinear relationship with age."
]
},
{
"cell_type": "code",
"execution_count": 125,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"AElFTkSuQmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x145f117b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pylab as pl\n",
"\n",
"xvals = np.linspace(titanic.ages.min(), titanic.ages.max())\n",
"\n",
"beta_age = M_poly.β.stats()['mean'][[3,7,8]]\n",
"pl.plot(xvals, beta_age.dot([xvals, xvals**2, xvals**3]))\n",
"pl.xlabel('Standardized Age'); pl.ylabel('Age effect');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Imputation of missing values\n",
"\n",
"The biggest shortcoming of these models is not the assumptions regarding the functional form, but rather, how missing data have been treated. In the Titanic dataset, there were several passengers that did not have their ages recorded. The simplest solution is to discard these records from the analysis, which we did (notice the `dropna()` method called when the variables were extracted). However, this so-called *complete-case* analysis is not optimal; it discards the partial information contained on those records, and may lead to bias, depending on the nature of the missingness. \n",
"\n",
"Instead, we can impute these missing values by treating them as unknown quantities, just as we would with a variable. All we need is a model for age, and to include this as part of the overall model. In a Bayesian modeling framework, missing data are accommodated simply by treating them as unknown model parameters. Values for the missing data $\\tilde{y}$ are estimated naturally, using the posterior predictive distribution:\n",
"\n",
"$$p(\\tilde{y} | y) = \\int p(\\tilde{y}|\\theta) p(\\theta | y) d\\theta$$\n",
"\n",
"This describes additional data $\\tilde{y}$, which may either be considered unobserved data or potential future observations. We can use the posterior predictive distribution to model the likely values of missing data."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is the distribution of known ages. Although this distribution looks slighlty bimodal, for simplicity we will use a truncated normal distribution to model age, and use this to impute the missing values. Note that this implicitly assumes a missing completely at random (MCAR) scenario, which may or may not be true here."
]
},
{
"cell_type": "code",
"execution_count": 141,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1462c8438>"
]
},
"execution_count": 141,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": [
"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\n",
"P1hgawUP/qxEAAAAAElFTkSuQmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x1462d22e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"titanic.ages.dropna().hist(bins=40)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"PyMC supports imputation via *masked arrays* in Numpy. A Numpy `masked_array` simply combines a standard array with a binary mask that hides invalid (here, missing) values. Specifically, when an element of the mask is `True`, the corresponding element of the array is said to be masked (invalid)."
]
},
{
"cell_type": "code",
"execution_count": 199,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"masked_array(data = [3 5 -- 17 -3],\n",
" mask = [False False True False False],\n",
" fill_value = -999)"
]
},
"execution_count": 199,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from numpy.ma import masked_values\n",
"\n",
"example_data = [3, 5, -999, 17, -3]\n",
"example_data_masked = masked_values(example_data, value=-999)\n",
"example_data_masked"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here, the value -999 is a *sentinel value* that represents elements that are missing.\n",
"\n",
"A PyMC data stochastic node that is passed a `masked_array` as treats the unmasked values as regular data, but then turns the masked values into Stochastic nodes, to be estimated with the rest of the model. Thus, the node `age` below is a hybrid that includes both unobserved and observed stochastic elements. \n",
"\n",
"The missing values in the Pandas `DataFrame` are represented by `nan` values. We will replace these with an arbitrary sentinel value that is a valid standardized age. This is necessary because the chosen value will act as the initial value for the unobserved parts of the stochastic node, so leaving the missing value as `nan` may raise an error when the model is initialized. Here, we use zero as the sentinel value because there are no values that are exactly zero in the non-missing data (recall that the ages were standardized)."
]
},
{
"cell_type": "code",
"execution_count": 165,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from pymc import TruncatedNormal\n",
"\n",
"def titanic_imp(dataset):\n",
" \n",
" # Extract variables and drop missing values\n",
" X = dataset[varnames]\n",
" \n",
" # Extract response\n",
" survived = X.pop('survived').values\n",
" \n",
" # Imputation of age\n",
" age_masked = masked_values(X.pop('ages').fillna(0).values, value=0)\n",
" # Negative binomial parameters\n",
" mu = Normal('mu', 0, 0.01, value=0)\n",
" tau = Exponential('tau', 1, value=1)\n",
" # Imputation distribution\n",
" age = TruncatedNormal('age', mu=mu, tau=tau, a=-2.1, b=10000, value=age_masked, observed=True)\n",
" \n",
" k = X.shape[1] + 3\n",
" \n",
" β = Normal('β', np.zeros(k+1), np.ones(k+1)*0.001, value=np.zeros(k+1))\n",
" \n",
" @deterministic\n",
" def p(b=β, age=age):\n",
" A = [age, age**2, age**3]\n",
" return invlogit(b[0] + X.dot(b[1:-3]).values + np.dot(b[-3:], A))\n",
" \n",
" y = Bernoulli('y', p, value=survived, observed=True)\n",
" \n",
" return locals()\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 166,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"M_titanic_imp = MCMC(titanic_imp(titanic))"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" [-----------------100%-----------------] 20000 of 20000 complete in 43.2 sec"
]
}
],
"source": [
"M_titanic_imp.sample(20000, 10000)"
]
},
{
"cell_type": "code",
"execution_count": 169,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Could not calculate Gelman-Rubin statistics. Requires multiple chains of equal length.\n"
]
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x117df6fd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Matplot.summary_plot(M_titanic_imp.β, custom_labels=['intercept'] + M_poly.X.columns.tolist())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Below is the posterior distribution of one of the missing ages:"
]
},
{
"cell_type": "code",
"execution_count": 170,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": [
"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\n",
"GhO2ANCYsAWAxoQtADQmbAGgMWELAI0JWwBoTNgCQGPCFgAaE7YA0JiwBYDGhC0ANCZsAaAxYQsA\n",
"jQlbAGhM2AJAY8IWABoTtgDQmLAFgMaELQA0JmwBoDFhCwCNCVsAaEzYAkBjwhYAGhO2ANCYsAWA\n",
"xoQtADQmbAGgMWELAI2d7GpQSllK8tNJ3pxkPcnfqbX+fuvCAGBR9Lmy/bYkp2utb0nyaJKfaFsS\n",
"ACyWPmH71iT/Pklqrb+d5GubVgQAC6bzY+Qk55K8uGP51VLKiVrr3UY1LZyv+NLz2djY/H3lDQ/k\n",
"2T94cdfjF8+dztLSUu/lcesGF84k2djRYmNrXf8+ZlHHUenjKNc+L30c5drn+fnP4lju6mPv493j\n",
"dPU5ud/JY/Tpd3wdR8/Sxsa0iUlKKT+e5Ldqrb+0tfx/aq1vuh/FAcAi6PMx8vUk35QkpZS/kuS/\n",
"Nq0IABZMn4+RP5HkHaWU61vL721YDwAsnM6PkQGAe+OmFgDQmLAFgMaELQA0JmwBoLE+30burZTy\n",
"hiS/kOTBJHeSfGet9Y9mOcYiKKWcS/JvsnnDkAeS/HCt9T8fblXzrZTyriTvrrX+rcOuZZ64d/n+\n",
"lFK+LsmP1lr/2mHXMq9KKSeTfCTJQ0lOJflQrfVXDrWoOVRKOZHkZ5KUJHeTXK21/u6k9rO+sv3u\n",
"JJ+rtb49yc8n+Ucz7n9R/IMkv15r/fps/leqf3a45cy3UspPJvlQkqWutseQe5f3VEp5fzZPjqcP\n",
"u5Y590iS52utb0vyziRPHHI98+pbkmzUWt+a5FqSD09rPNOwrbX+VDZPiknypiQvzLL/BfITSf7F\n",
"1u8PJLl9iLUcBdeTfO9hFzGn3Lu8v88neddhF3EEPJ3N8Eg2M+KVQ6xlbtVaP5nke7YWH0pH3h34\n",
"Y+RSyvuS/FA2b2q5tPXve2utv1NK+Y0kX53kHQftf1F0zNMXJ/nXSb7/EEucG1Pm6mOllLcfanHz\n",
"y73Le6q1fqKU8mWHXce8q7W+lCSllJUkH0vywcOtaH7VWu+WUn42m58wvXta2wOHba31I9n8XH/c\n",
"Y3+9lFKS/GqSrzjoGItg0jyVUr4mm3/f/uFa62/e98Lm0LR9ion+NMnKjmVByz0rpVxO8vEkT9Ra\n",
"f/Gw65lntdb3lFLemOSzpZSvrLWO/aRyph8jl1I+UEp5ZGvxVpJXZ9n/oiilfFU2P6r5m7XW/3DY\n",
"9XCkuXf5/vnb/xSllC9K8qkk/7DW+tRh1zOvSimPlFI+sLW4nmSYzS9KjTXTbyNn86rkqVLKd2Uz\n",
"yN1HebwPZ/NLGj+19W3SG7VWf0viINy7fP/co3a6R5NcSHKtlPIj2Zyvd9Za7xxuWXPn40k+Wkr5\n",
"TDaz9AemzZF7IwNAY25qAQCNCVsAaEzYAkBjwhYAGhO2ANCYsAWAxoQtADT2/wF5vjyJaN3SlgAA\n",
"AABJRU5ErkJggg==\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x14b949fd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pl.hist(M_titanic_imp.age.trace()[0], bins=80);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Parametric survival models\n",
"\n",
"In the Titanic example, we were able to use a simple binomial model for the survival rate because the disaster was a discrete event. That is, the outcomes of each passenger on the passenger list was known shortly after the event occurred. In many biomedical situations, however, the study endpoint might not be reached for all subjects by the time the study is completed. The fate of these individuals, which we refer to as *right censored* is unknown to us, but treating them as known will bias estimates of the survival rate and of any treatment we may be studying.\n",
"\n",
"When we are dealing with censored events, survival analyses typically shift to analyzing *time to events* instead of the occurrence or non-occurence of events."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Some definitions\n",
"\n",
"**Density function** describes the distribution of times to events:\n",
" \n",
"$$f(t) = Pr(T=t)$$\n",
"\n",
"(or continuous equivalent)\n",
"\n",
"**Survival function** describes the probability of surviving to time $t$ or beyond:\n",
" \n",
"$$S(t) = Pr(T \\ge t)$$\n",
"\n",
"**Hazard function** describes the instantaneous failure rate, that is, the probability of an event at time $t$ given that it has not happend prior to $t$:\n",
" \n",
"$$\\lambda(t) = \\frac{f(t)}{S(t)}$$\n",
"\n",
"**Cumulative hazard function** integrates the hazard from time zero until $t$:\n",
"\n",
"$$\\Lambda(t) = \\int_0^t \\lambda(u) du$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exponential model\n",
"\n",
"A simple parametric approach to modeling failure times is the exponential model. This model assumes that failure times are distributed identically and independently as exponential random variables:\n",
" \n",
"$$f(t_i|\\lambda) = \\lambda \\exp(-\\lambda t_i)$$\n",
"\n",
"by definition, this implies that the survival function is:\n",
"\n",
"$$S(t_i|\\lambda) = \\exp(-\\lambda t_i)$$\n",
"\n",
"Accounting for censoring, from this we can write the likelihood function for $\\lambda$ as:\n",
"\n",
"$$L(\\lambda|\\mathbf{t},\\mathbf{\\nu}) = \\prod_{i=1}^n f(t_i|\\lambda)^{\\nu_i} S(t_i|\\lambda)^{1-\\nu_i} = \\lambda^{\\sum_i \\nu_i} \\exp\\left[-\\lambda \\sum_i t_i\\right]$$\n",
"\n",
"We typically wish to model $\\lambda$ as a function of one or more covariates, such as a treatment.\n",
"\n",
"$$\\lambda_i = \\phi(x_i^{\\prime} \\mathbf{\\beta})$$ \n",
"\n",
"Substituting and re-arranging gives:\n",
"\n",
"$$L(\\lambda|\\mathbf{t},\\mathbf{\\nu}, \\mathbf{\\beta}) = \\exp\\left[\\sum_i \\nu_i x_i^{\\prime} \\mathbf{\\beta}\\right] \\exp\\left[-\\sum_i t_i \\exp(x_i^{\\prime} \\mathbf{\\beta})\\right]$$\n",
"\n",
"Note, however that the hazard is constant (not time-varying), which is the important implication of the exponential model."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Below is an exponential model fit to data from the E1684 melanoma clinical trial comparing the effect of high-dose interferon to a control arm (Kirkwood et al. 2000)."
]
},
{
"cell_type": "code",
"execution_count": 171,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%run -i data/melanoma_data.py"
]
},
{
"cell_type": "code",
"execution_count": 174,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from pymc import observed\n",
"\n",
"def exp_survival_model():\n",
"\n",
" # Convert censoring indicators to indicators for failure event\n",
" failure = (censored==0).astype(int)\n",
" \n",
" # Intercept for survival rate\n",
" beta0 = Normal('beta0', mu=0.0, tau=0.0001, value=0.0)\n",
" # Treatment effect\n",
" beta1 = Normal('beta1', mu=0.0, tau=0.0001, value=0.0)\n",
"\n",
" # Survival rates\n",
" lam = Lambda('lam', lambda b0=beta0, b1=beta1, t=treat: np.exp(b0 + b1*t))\n",
"\n",
" @observed\n",
" def survival(value=t, lam=lam, f=failure):\n",
" \"\"\"Exponential survival likelihood, accounting for censoring\"\"\"\n",
" return sum(f*np.log(lam) - lam*value)\n",
" \n",
" return locals()"
]
},
{
"cell_type": "code",
"execution_count": 175,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" [-----------------100%-----------------] 10000 of 10000 complete in 1.5 sec"
]
}
],
"source": [
"E = MCMC(exp_survival_model())\n",
"E.sample(10000, 5000)"
]
},
{
"cell_type": "code",
"execution_count": 176,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"beta1:\n",
" \n",
"\tMean SD MC Error 95% HPD interval\n",
"\t------------------------------------------------------------------\n",
"\t-0.261 0.162 0.01 [-0.593 0.047]\n",
"\t\n",
"\t\n",
"\tPosterior quantiles:\n",
"\t\n",
"\t2.5 25 50 75 97.5\n",
"\t |---------------|===============|===============|---------------|\n",
"\t-0.568 -0.37 -0.267 -0.15 0.081\n",
"\t\n"
]
}
],
"source": [
"E.beta1.summary()"
]
},
{
"cell_type": "code",
"execution_count": 177,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Plotting beta1\n"
]
},
{
"data": {
"image/png": [
"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\n",
"RERERBL2/y5tv8I/jqfsAAAAAElFTkSuQmCC\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x153419dd8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Matplot.plot(E.beta1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Weibull model\n",
"\n",
"If a constant hazard rate is not a reasonable assumption, we can generalize the survivial model to allow the hazard to vary over time. The simplest non-constant model is to allow the hazard to vary linearly with log-time; this is the characteristic of the Weibull survival function.\n",
"\n",
"Dellaportas and Smith (1993) analysed data on photocarcinogenicity in four groups (irradiated control, vehicle control, test substance, positive control), each containing 20 mice, who have recorded a survival time and whether they died or were censored at that time. "
]
},
{
"cell_type": "code",
"execution_count": 178,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# treatment group assignments\n",
"group = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \n",
"1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, \n",
"2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, \n",
"3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3)\n",
"\n",
"# censoring\n",
"is_censored = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \n",
"0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, \n",
"0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, \n",
"0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0)\n",
"\n",
"# censoring time\n",
"last_t = (40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, \n",
"40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, \n",
"40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 10, 40, 40, 40, 40, \n",
"40, 40, 40, 40, 40, 24, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, \n",
"40, 40, 40, 40, 20, 40, 40, 40, 40, 29, 10, 40, 40, 40, 40, 40, \n",
"40)\n",
"\n",
"# number of treatment groups\n",
"M = 4\n",
"\n",
"# number of individuals\n",
"N = 80\n",
"\n",
"# failure time for each mouse\n",
"t = (12, 17, 21, 25, 11, 26, 27, 30, 13, 12, 21, 20, 23, 25, 23, \n",
"29, 35, 50, 31, 36, 32, 27, 23, 12, 18, 50, 50, 38, 29, 30, 50, \n",
"32, 50, 50, 50, 50, 25, 30, 37, 27, 22, 26, 50, 28, 19, 15, 12, \n",
"35, 35, 10, 22, 18, 50, 12, 50, 50, 31, 24, 37, 29, 27, 18, 22, \n",
"13, 18, 29, 28, 50, 16, 22, 26, 19, 50, 50, 17, 28, 26, 12, 17, \n",
"26)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will use a Weibull distribution to model the survival times:\n",
" \n",
"$$f(x \\mid \\alpha, \\beta) = \\frac{\\alpha x^{\\alpha - 1}\\exp(-(\\frac{x}{\\beta})^{\\alpha})}{\\beta^\\alpha}$$\n",
"\n",
"The baseline hazard function for this model is:\n",
" \n",
"$$\\lambda_0(t) = \\alpha t^{\\alpha-1}$$\n",
"\n",
"if we set $\\beta_i = \\exp(-\\beta^{\\prime}z_i)$ then we have:\n",
" \n",
"$$t_i \\sim \\text{Weibull}(\\alpha, \\beta_i)$$\n",
"\n",
"In this model, we account for censored observations by using a truncated Weibull, with the censoring time as the lower bound. PyMC does not have a truncated Weibull built-in, but we can easily create one by modfying the model's log-probability with a *factor potential*. Factor potentials don’t correspond to probabilities of variables conditional on parents, but are simply arbitrary probability terms that can be added to existing models. In our case, we want to constrain the latent (censored) failure times to be later than the last obervation period: $I(t>T)$. Lauritzen et al. (1990) and Jordan (2004) call these factor potentials. Formally, there is no accomodation in Bayesian hierarchical notation for these potentials. They are often used in cases where there is no natural dependence hierarchy.\n",
"\n",
"In PyMC, we can most easily specify a factor potential by adding a `@potential` decorator to a function that returns a log-probability, given the values of their parents. Potentials have no methods, nor do they have value or trace attributes, because they are not variables. Because of this, they cannot serve as parents of variables, and hence have no `children` attribute."
]
},
{
"cell_type": "code",
"execution_count": 179,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from pymc import Weibull, potential\n",
"\n",
"def mice_model():\n",
" \n",
" beta = Normal(\"beta\", 0, 0.0001, value=np.ones(M)*-10)\n",
" alpha = Gamma(\"alpha\", 1.0, 0.0001, value=4)\n",
" \n",
" theta = Lambda(\"theta\", lambda b=beta: 1./np.exp(b[np.array(group)]))\n",
" median_survival = Lambda(\"median_survival\", lambda b=beta, a=alpha: (np.log(2)*np.exp(-b))**(1/a))\n",
" veh_control = Lambda(\"veh_control\", lambda b=beta: b[1]-b[0])\n",
" test_sub = Lambda(\"test_sub\", lambda b=beta: b[2]-b[0])\n",
" pos_control = Lambda(\"pos_control\", lambda b=beta: b[3]-b[0])\n",
" \n",
" t_masked = np.ma.masked_equal(t, 50)\n",
" \n",
" time = Weibull(\"time\", alpha, theta, value=t_masked, observed=True)\n",
" \n",
" @potential\n",
" def censor(time=time):\n",
" if np.any((time < last_t)[t_masked.mask]):\n",
" return -np.inf\n",
" return 0\n",
" \n",
" return locals()"
]
},
{
"cell_type": "code",
"execution_count": 180,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"MM = MCMC(mice_model())"
]
},
{
"cell_type": "code",
"execution_count": 181,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" [-----------------100%-----------------] 20000 of 20000 complete in 4.8 sec"
]
}
],
"source": [
"MM.sample(20000, 10000)"
]
},
{
"cell_type": "code",
"execution_count": 182,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Could not calculate Gelman-Rubin statistics. Requires multiple chains of equal length.\n"
]
},
{
"data": {
"image/png": [
"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\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x15417d3c8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Matplot.summary_plot(MM.median_survival)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Semiparametric survival models\n",
"\n",
"Parametric models are effective if the underlying survival time distribution is known. However, the exact form of the underlying survival distribution is usually unknown and we may not be able to find an appropriate model. Semiparametric survival models relax the assumption of a known, parametric form for the survival function. The most popular semiparametric model is the Cox proportional hazards model, which replaces the assumption of a parametric survival time distribution with an assumption of proportional hazards. In other words, the ratio in the risk of death/failure between two groups does not vary over time.\n",
"\n",
"The proportional hazards assumption implies that the hazard function given a set of covariates $Z$ can be written as a function of a *baseline* hazard function and a function of only the covariates $g(Z)$. Using a simplified example, where $Z = 1$ for treated and $Z = 0$ for control individuals, and $\\lambda_1(t)$ is the hazard rate for the treated group and $\\lambda_0(t)$ the hazard for control, then we can write:\n",
" \n",
"$$\\lambda_1(t) = \\lambda(t|Z=1) = \\lambda_0(t)\\exp(\\beta Z) = \\lambda_0(t)\\exp(\\beta)$$\n",
"\n",
"The Cox model can be re-expressed as a linear model for the log of the hazard ratio:\n",
"\n",
"$$\\log\\left[\\frac{\\lambda_i(t)}{\\lambda_0(t)}\\right] = Z \\mathbf{\\beta}$$\n",
"\n",
"So, while the baseline hazard is non-parametric, the linear model is parametric, making the overall model semiparametric.\n",
"\n",
"In frequentist applications, the Cox model is estimated using the partial likelihood. In Bayesian applications, since we must always specify a parametric posterior distribution, we must re-express the Cox model in order to estimate it."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### Cox regression in PyMC\n",
"\n",
"This example implements the Cox model using the counting process notation introduced by Andersen and Gill (1982) \n",
"\n",
"If $N_i(t)$ is the count of events that have occurred up until time $t$, then we can consider an *intensity* process that characterizes the incremental increase in $N_i(t)$ over some small interval $dt$:\n",
" \n",
"$$I_i(t) dt = E(dN_i(t) \\,| \\, N_i(t), Y_i(t), z_i)$$\n",
"\n",
"if subject $i$ fails during $[t,t+dt)$, then $dN_i(t)=1$, making $I_i(t) dt$ a failure rate for this interval. As $dt \\rightarrow 0$, this probability converges to the hazard. Here is the proportional hazards form:\n",
" \n",
"$$I_i(t) = Y_i(t) \\lambda_0(t) \\exp(\\beta^{\\prime}z_i)$$\n",
"\n",
"Since we cannot estimate $\\lambda_0(t)$ non-parametrically, we instead model the increments $dN_i(t)=1$ as a *counting process* with a Poisson distribution:\n",
"\n",
"$$dN_i(t) \\sim Poisson(I_i(t) dt)$$\n",
"\n",
"where the Poisson mean is:\n",
"\n",
"$$I_i(t) dt = Y_i(t) \\lambda_0(t) \\exp(\\beta^{\\prime}z_i) d\\Lambda_0(t)$$\n",
"\n",
"One approach places a prior on the unknown hazard function $d\\Lambda_0(t)=\\lambda_0(t)$, but it is cleaner to invoke the \"multinomial-Poisson trick\", which assumes independent increments in the cumulative hazard function, and whose logarithms are given flat (constant) priors. \n",
"\n",
"$$\\log(\\lambda_{ij}) = \\lambda_i + \\beta_j^{\\prime} z_i$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Survival time, in weeks:"
]
},
{
"cell_type": "code",
"execution_count": 185,
"metadata": {
"collapsed": false,
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [],
"source": [
"obs_t = (1, 1, 2, 2, 3, 4, 4, 5, 5, 8, 8, 8, 8, 11, 11, 12, 12, 15, 17, 22, 23, 6, \n",
" 6, 6, 6, 7, 9, 10, 10, 11, 13, 16, 17, 19, 20, 22, 23, 25, 32, 32, 34, 35)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Vector of indicator variables for failure (1) or censored (0):"
]
},
{
"cell_type": "code",
"execution_count": 186,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"fail = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, \n",
" 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Vector of indicator variables for treatment (0.5) or placebo (-0.5):"
]
},
{
"cell_type": "code",
"execution_count": 187,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Z = (0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, \n",
" 0.5, 0.5, 0.5, 0.5, 0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, \n",
" -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Unique failure times, number of observations, and study duration:"
]
},
{
"cell_type": "code",
"execution_count": 188,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"t = 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, 22, 23, 35\n",
"N_obs = len(obs_t)\n",
"T = len(t) - 1"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Calculate risk set"
]
},
{
"cell_type": "code",
"execution_count": 189,
"metadata": {
"collapsed": false,
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"Y = np.array([[int(obs >= time) for time in t] for obs in obs_t])"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Counting process. Jump = 1 if $\\text{obs}_t \\in [ t_j, t_{j+1} )$"
]
},
{
"cell_type": "code",
"execution_count": 190,
"metadata": {
"collapsed": false,
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"dN = np.array([[Y[i,j]*(t[j+1] >= obs_t[i])*fail[i] for i in range(N_obs)] for j in range(T)])"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Model using Poisson trick:"
]
},
{
"cell_type": "code",
"execution_count": 191,
"metadata": {
"collapsed": false,
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"from pymc import Poisson\n",
"\n",
"def cox_model():\n",
" \n",
" beta0 = Normal('beta0', 0, 0.001, value=np.zeros(T))\n",
" beta1 = Normal('beta1', 0, 0.00001, value=0)\n",
"\n",
" def Idt(b0=beta0, b1=beta1): \n",
" # Poisson trick: independent log-normal hazard increments\n",
" return [[Y[i,j]*np.exp(b0[j] + b1*Z[i]) for i in range(N_obs)] for j in range(T)])\n",
"\n",
" dN_like = Poisson('dN_like', Idt, value=dN, observed=True)\n",
" \n",
" return locals()"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Initialize MCMC sampler."
]
},
{
"cell_type": "code",
"execution_count": 192,
"metadata": {
"collapsed": false,
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [],
"source": [
"M_cox = MCMC(cox_model())"
]
},
{
"cell_type": "code",
"execution_count": 194,
"metadata": {
"collapsed": false,
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" [-----------------100%-----------------] 20000 of 20000 complete in 141.8 sec"
]
}
],
"source": [
"M_cox.sample(20000, 10000)"
]
},
{
"cell_type": "code",
"execution_count": 196,
"metadata": {
"collapsed": false,
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"beta1:\n",
" \n",
"\tMean SD MC Error 95% HPD interval\n",
"\t------------------------------------------------------------------\n",
"\t1.428 0.305 0.011 [ 0.792 1.976]\n",
"\t\n",
"\t\n",
"\tPosterior quantiles:\n",
"\t\n",
"\t2.5 25 50 75 97.5\n",
"\t |---------------|===============|===============|---------------|\n",
"\t0.836 1.22 1.428 1.636 2.041\n",
"\t\n"
]
}
],
"source": [
"M_cox.beta1.summary()"
]
},
{
"cell_type": "code",
"execution_count": 197,
"metadata": {
"collapsed": false,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Plotting beta1\n"
]
},
{
"data": {
"image/png": [
"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\n",
"RU5ErkJggg==\n"
],
"text/plain": [
"<matplotlib.figure.Figure at 0x154b2b8d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Matplot.plot(M_cox.beta1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## References\n",
"\n",
"Dellaportas P and AFM Smith. Bayesian Inference for Generalized Linear and Proportional Hazards Models via Gibbs Sampling. Applied Statistics. 1993;42(3):443. doi:10.2307/2986324. \n",
"\n",
"Eaton, JP and CA Haas. Titanic: Triumph and Tragedy (2nd Edition). WW Norton, New York, New York. 1995. \n",
"\n",
"Jordan, MI. Graphical models. Statist. Sci. 2004;19(1):140–155. \n",
"\n",
"Kirkwood, JM, JG Ibrahim, VK Sondak, J Richards, LE Flaherty, MS Ernstoff, TJ Smith, U Rao, M Steele, and RH Blum. 2000. High- and low-dose interferon alfa-2b in high-risk melanoma: first analysis of intergroup trial E1690/S9111/C9190. J Clin Oncol. 2000;18(12):2444-2458. \n",
"\n",
"Lauritzen SL, AP Dawid, BN Larsen and H-G Leimer. Independence properties of directed Markov fields. Networks. 1990;20(5):491-505.\n",
"\n",
"---"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
" @font-face {\n",
" font-family: \"Computer Modern\";\n",
" src: url('http://mirrors.ctan.org/fonts/cm-unicode/fonts/otf/cmunss.otf');\n",
" }\n",
" div.cell{\n",
" width: 90%;\n",
"/* margin-left:auto;*/\n",
"/* margin-right:auto;*/\n",
" }\n",
" ul {\n",
" line-height: 145%;\n",
" font-size: 90%;\n",
" }\n",
" li {\n",
" margin-bottom: 1em;\n",
" }\n",
" h1 {\n",
" font-family: Helvetica, serif;\n",
" }\n",
" h4{\n",
" margin-top: 12px;\n",
" margin-bottom: 3px;\n",
" }\n",
" div.text_cell_render{\n",
" font-family: Computer Modern, \"Helvetica Neue\", Arial, Helvetica, Geneva, sans-serif;\n",
" line-height: 145%;\n",
" font-size: 130%;\n",
" width: 90%;\n",
" margin-left:auto;\n",
" margin-right:auto;\n",
" }\n",
" .CodeMirror{\n",
" font-family: \"Source Code Pro\", source-code-pro,Consolas, monospace;\n",
" }\n",
"/* .prompt{\n",
" display: None;\n",
" }*/\n",
" .text_cell_render h5 {\n",
" font-weight: 300;\n",
" font-size: 16pt;\n",
" color: #4057A1;\n",
" font-style: italic;\n",
" margin-bottom: 0.5em;\n",
" margin-top: 0.5em;\n",
" display: block;\n",
" }\n",
"\n",
" .warning{\n",
" color: rgb( 240, 20, 20 )\n",
" }\n",
"</style>\n",
"<script>\n",
" MathJax.Hub.Config({\n",
" TeX: {\n",
" extensions: [\"AMSmath.js\"]\n",
" },\n",
" tex2jax: {\n",
" inlineMath: [ ['$','$'], [\"\\\\(\",\"\\\\)\"] ],\n",
" displayMath: [ ['$$','$$'], [\"\\\\[\",\"\\\\]\"] ]\n",
" },\n",
" displayAlign: 'center', // Change this to 'center' to center equations.\n",
" \"HTML-CSS\": {\n",
" styles: {'.MathJax_Display': {\"margin\": 4}}\n",
" }\n",
" });\n",
"</script>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.core.display import HTML\n",
"def css_styling():\n",
" styles = open(\"styles/custom.css\", \"r\").read()\n",
" return HTML(styles)\n",
"css_styling()"
]
}
],
"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.4.2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment