Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save gdsaxton/b9cf3f4190f74571cb8f6d67b8c648f0 to your computer and use it in GitHub Desktop.
Save gdsaxton/b9cf3f4190f74571cb8f6d67b8c648f0 to your computer and use it in GitHub Desktop.
Logistic Regression Tutorial
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For those interested in learning logistic regression, this tutorial is self-contained. This is also this eighth in a series of notebooks designed to show you how to analyze social media data. For demonstration purposes we are looking at tweets sent by CSR-related Twitter accounts -- accounts related to ethics, equality, the environment, etc. -- of Fortune 200 firms in 2013. I assume you have already downloaded the data and have completed the steps taken in previous chapters:\n",
"\n",
"- <a href=\"http://nbviewer.ipython.org/github/gdsaxton/PANDAS/blob/master/Chapter%201%20-%20Import%20Data%2C%20Select%20Cases%20and%20Variables%2C%20Save%20DataFrame.ipynb\" target=\"_blank\">Chapter 1 - Import Data, Select Cases and Variables, Save DataFrame</a>\n",
"- <a href=\"http://nbviewer.ipython.org/github/gdsaxton/PANDAS/blob/master/Chapter%202%20-%20Aggregating%20and%20Analyzing%20Data%20by%20Twitter%20Account.ipynb\" target=\"_blank\">Chapter 2 - Aggregating and Analyzing Data by Twitter Account</a>\n",
"- <a href=\"http://nbviewer.ipython.org/github/gdsaxton/PANDAS/blob/master/Chapter%203%20-%20Analyzing%20Twitter%20Data%20by%20Time%20Period.ipynb\" target=\"_blank\">Chapter 3 - Analyzing Twitter Data by Time Period</a>\n",
"- <a href=\"http://nbviewer.ipython.org/github/gdsaxton/PANDAS/blob/master/Chapter%204%20-%20Analyzing%20Hashtags.ipynb\" target=\"_blank\">Chapter 4 - Analyzing Hashtags</a>\n",
"- <a href=\"http://nbviewer.ipython.org/github/gdsaxton/PANDAS/blob/master/Chapter%205%20-%20Generating%20New%20Variables.ipynb\" target=\"_blank\">Chapter 5 - Generating New Variables</a>\n",
"- <a href=\"http://nbviewer.ipython.org/github/gdsaxton/PANDAS/blob/master/Chapter%206%20-%20Producing%20a%20Summary%20Statistics%20Table%20for%20Publication.ipynb\" target=\"blank\">Chapter 6 - Producing a Summary Statistics Table for Publication</a>\n",
"- <a href=\"http://nbviewer.ipython.org/github/gdsaxton/PANDAS/blob/master/Chapter%207%20-%20Analyzing%20Audience%20Reaction%20on%20Twitter.ipynb\" target=\"blank\">Chapter 7 - Analyzing Audience Reaction on Twitter</a>\n",
"\n",
"In this notebook I will show you how to run, interpret, and output a logistic regression. Whenever you have a <i>binary</i> dependent variable such as `RTs_binary`, you'll want to run logistic or probit model for your regressions. \n",
"<br>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Chapter 8: Logistic Regression"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In our dataframe we have four potential dependent variables: `retweet_count`, `favorite_count`, `RTs_binary`, and `favorites_binary`. The first two are ratio-level <i>count</i> variables, while the last two are binary `(0,1)` variables. \n",
"\n",
"Whenever you have a <i>count</i> dependent variable, you'll want to run a Poisson or Negative Binomial model for your regressions. With social media-based count data, such as the number of followers, the number of tweets, or the number of retweets, Poisson is rarely a good fit. Thus we typically run the negative binomial model. \n",
"\n",
"In this tutorial we will focus on `RTs_binary`. This variable numerically differentiates retweeted tweets from ignored tweets. As we saw in <a href=\"http://nbviewer.ipython.org/github/gdsaxton/PANDAS/blob/master/Chapter%207%20-%20Analyzing%20Audience%20Reaction%20on%20Twitter.ipynb\" target=\"blank\">Chapter 7</a>, `45%` of all tweets in our database never receive a retweet; our binary variable thus taps a meaningful distinction between the retweeted and non-retweeted messages. \n",
"\n",
"In turn, with binary dependent variables such as `RTs_binary`, the logit or probit model is commonly used. For ease of presentation, in this tutorial I will focus on logistic regression using the example of `RTs_binary`. I'll show you how to run logistic regression. Just as importantly, I will show you how to run multiple models and present the output in an almost publication-ready format."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Import packages and set viewing options"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As per normal, we will first import several necessary Python packages and set some options for viewing the data. As with prior chapters, we will be using the <a href=\"http://pandas.pydata.org/\">Python Data Analysis Library,</a> or <i>PANDAS</i>, extensively for our data manipulations."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"from pandas import DataFrame\n",
"from pandas import Series"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#Set PANDAS to show all columns in DataFrame\n",
"pd.set_option('display.max_columns', None)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I'm using version 0.16.2 of PANDAS"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'0.16.2'"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.__version__"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>In this tutorial we will be using the increasingly powerful Python statistics package `StatsModels`. With this package, Python is now able to compete with other statistical programs such as SPSS, Stata, SAS, and `R`. While it's not yet as powerful as those other tools, it is relatively new and becoming more powerful every day. You will find you can do almost everything you need to do right in Python."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.6.1\n"
]
}
],
"source": [
"import statsmodels\n",
"import statsmodels.api as sm\n",
"import statsmodels.formula.api as smf #FOR USING 'R'-STYLE FORMULAS FOR REGRESSIONS\n",
"print statsmodels.__version__"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>I like suppressing scientific notation in my numbers. So, if you'd rather see \"0.48\" than \"4.800000e-01\", then run the following line:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"pd.set_option('display.float_format', lambda x: '%.2f' % x)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Import graphing packages"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.4.3\n"
]
}
],
"source": [
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"print matplotlib.__version__"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#NECESSARY FOR XTICKS OPTION, ETC.\n",
"from pylab import*"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.6.0\n"
]
}
],
"source": [
"import seaborn as sns\n",
"print sns.__version__"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"plt.rcParams['figure.figsize'] = (15, 5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"### Read in Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In <a href=\"http://nbviewer.ipython.org/github/gdsaxton/PANDAS/blob/master/Chapter%204%20-%20Analyzing%20Hashtags.ipynb\" target=\"_blank\">Chapter 4</a> we created a version of the dataframe that omitted all tweets that were retweets, allowing us to focus only on original messages sent by the 41 Twitter accounts. In <a href=\"http://nbviewer.ipython.org/github/gdsaxton/PANDAS/blob/master/Chapter%205%20-%20Generating%20New%20Variables.ipynb\" target=\"_blank\">Chapter 5</a> we then added 6 new variables to this dataset. Let's now open this saved file. As we can see in the operations below this dataframe contains 60 variables for 26,257 tweets."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"# of variables in dataframe: 60\n",
"# of tweets in dataframe: 26257\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>rowid</th>\n",
" <th>query</th>\n",
" <th>tweet_id_str</th>\n",
" <th>inserted_date</th>\n",
" <th>language</th>\n",
" <th>coordinates</th>\n",
" <th>retweeted_status</th>\n",
" <th>created_at</th>\n",
" <th>month</th>\n",
" <th>year</th>\n",
" <th>content</th>\n",
" <th>from_user_screen_name</th>\n",
" <th>from_user_id</th>\n",
" <th>from_user_followers_count</th>\n",
" <th>from_user_friends_count</th>\n",
" <th>from_user_listed_count</th>\n",
" <th>from_user_favourites_count</th>\n",
" <th>from_user_statuses_count</th>\n",
" <th>from_user_description</th>\n",
" <th>from_user_location</th>\n",
" <th>from_user_created_at</th>\n",
" <th>retweet_count</th>\n",
" <th>favorite_count</th>\n",
" <th>entities_urls</th>\n",
" <th>entities_urls_count</th>\n",
" <th>entities_hashtags</th>\n",
" <th>entities_hashtags_count</th>\n",
" <th>entities_mentions</th>\n",
" <th>entities_mentions_count</th>\n",
" <th>in_reply_to_screen_name</th>\n",
" <th>in_reply_to_status_id</th>\n",
" <th>source</th>\n",
" <th>entities_expanded_urls</th>\n",
" <th>entities_media_count</th>\n",
" <th>media_expanded_url</th>\n",
" <th>media_url</th>\n",
" <th>media_type</th>\n",
" <th>video_link</th>\n",
" <th>photo_link</th>\n",
" <th>twitpic</th>\n",
" <th>num_characters</th>\n",
" <th>num_words</th>\n",
" <th>retweeted_user</th>\n",
" <th>retweeted_user_description</th>\n",
" <th>retweeted_user_screen_name</th>\n",
" <th>retweeted_user_followers_count</th>\n",
" <th>retweeted_user_listed_count</th>\n",
" <th>retweeted_user_statuses_count</th>\n",
" <th>retweeted_user_location</th>\n",
" <th>retweeted_tweet_created_at</th>\n",
" <th>Fortune_2012_rank</th>\n",
" <th>Company</th>\n",
" <th>CSR_sustainability</th>\n",
" <th>specific_project_initiative_area</th>\n",
" <th>English</th>\n",
" <th>RTs_binary</th>\n",
" <th>favorites_binary</th>\n",
" <th>hashtags_binary</th>\n",
" <th>mentions_binary</th>\n",
" <th>URLs_binary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>67340</td>\n",
" <td>humanavitality</td>\n",
" <td>306897327585652736</td>\n",
" <td>2014-03-09 13:46:50.222857</td>\n",
" <td>en</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2013-02-27 22:43:19.000000</td>\n",
" <td>2</td>\n",
" <td>2013</td>\n",
" <td>@louloushive (Tweet 2) We encourage other empl...</td>\n",
" <td>humanavitality</td>\n",
" <td>274041023</td>\n",
" <td>2859</td>\n",
" <td>440</td>\n",
" <td>38</td>\n",
" <td>25</td>\n",
" <td>1766</td>\n",
" <td>This is the official Twitter account for Human...</td>\n",
" <td>NaN</td>\n",
" <td>Tue Mar 29 16:23:02 +0000 2011</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>louloushive</td>\n",
" <td>1</td>\n",
" <td>louloushive</td>\n",
" <td>306218267737989120.00</td>\n",
" <td>web</td>\n",
" <td>NaN</td>\n",
" <td>nan</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>121</td>\n",
" <td>19</td>\n",
" <td>nan</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>nan</td>\n",
" <td>nan</td>\n",
" <td>nan</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>79</td>\n",
" <td>Humana</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1.00</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>39454</td>\n",
" <td>FundacionPfizer</td>\n",
" <td>308616393706844160</td>\n",
" <td>2014-03-09 13:38:20.679967</td>\n",
" <td>es</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2013-03-04 16:34:17.000000</td>\n",
" <td>3</td>\n",
" <td>2013</td>\n",
" <td>¿Sabes por qué la #vacuna contra la #neumonía ...</td>\n",
" <td>FundacionPfizer</td>\n",
" <td>188384056</td>\n",
" <td>2464</td>\n",
" <td>597</td>\n",
" <td>50</td>\n",
" <td>11</td>\n",
" <td>2400</td>\n",
" <td>Noticias sobre Responsabilidad Social y Fundac...</td>\n",
" <td>México</td>\n",
" <td>Wed Sep 08 16:14:11 +0000 2010</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>vacuna, neumonía</td>\n",
" <td>2</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>nan</td>\n",
" <td>web</td>\n",
" <td>NaN</td>\n",
" <td>nan</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>138</td>\n",
" <td>20</td>\n",
" <td>nan</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>nan</td>\n",
" <td>nan</td>\n",
" <td>nan</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>40</td>\n",
" <td>Pfizer</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.00</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" rowid query tweet_id_str inserted_date \\\n",
"0 67340 humanavitality 306897327585652736 2014-03-09 13:46:50.222857 \n",
"1 39454 FundacionPfizer 308616393706844160 2014-03-09 13:38:20.679967 \n",
"\n",
" language coordinates retweeted_status created_at month \\\n",
"0 en NaN NaN 2013-02-27 22:43:19.000000 2 \n",
"1 es NaN NaN 2013-03-04 16:34:17.000000 3 \n",
"\n",
" year content \\\n",
"0 2013 @louloushive (Tweet 2) We encourage other empl... \n",
"1 2013 ¿Sabes por qué la #vacuna contra la #neumonía ... \n",
"\n",
" from_user_screen_name from_user_id from_user_followers_count \\\n",
"0 humanavitality 274041023 2859 \n",
"1 FundacionPfizer 188384056 2464 \n",
"\n",
" from_user_friends_count from_user_listed_count \\\n",
"0 440 38 \n",
"1 597 50 \n",
"\n",
" from_user_favourites_count from_user_statuses_count \\\n",
"0 25 1766 \n",
"1 11 2400 \n",
"\n",
" from_user_description from_user_location \\\n",
"0 This is the official Twitter account for Human... NaN \n",
"1 Noticias sobre Responsabilidad Social y Fundac... México \n",
"\n",
" from_user_created_at retweet_count favorite_count \\\n",
"0 Tue Mar 29 16:23:02 +0000 2011 0 0 \n",
"1 Wed Sep 08 16:14:11 +0000 2010 1 0 \n",
"\n",
" entities_urls entities_urls_count entities_hashtags \\\n",
"0 NaN 0 NaN \n",
"1 NaN 0 vacuna, neumonía \n",
"\n",
" entities_hashtags_count entities_mentions entities_mentions_count \\\n",
"0 0 louloushive 1 \n",
"1 2 NaN 0 \n",
"\n",
" in_reply_to_screen_name in_reply_to_status_id source \\\n",
"0 louloushive 306218267737989120.00 web \n",
"1 NaN nan web \n",
"\n",
" entities_expanded_urls entities_media_count media_expanded_url media_url \\\n",
"0 NaN nan NaN NaN \n",
"1 NaN nan NaN NaN \n",
"\n",
" media_type video_link photo_link twitpic num_characters num_words \\\n",
"0 NaN 0 0 0 121 19 \n",
"1 NaN 0 0 0 138 20 \n",
"\n",
" retweeted_user retweeted_user_description retweeted_user_screen_name \\\n",
"0 nan NaN NaN \n",
"1 nan NaN NaN \n",
"\n",
" retweeted_user_followers_count retweeted_user_listed_count \\\n",
"0 nan nan \n",
"1 nan nan \n",
"\n",
" retweeted_user_statuses_count retweeted_user_location \\\n",
"0 nan NaN \n",
"1 nan NaN \n",
"\n",
" retweeted_tweet_created_at Fortune_2012_rank Company CSR_sustainability \\\n",
"0 NaN 79 Humana 0 \n",
"1 NaN 40 Pfizer 0 \n",
"\n",
" specific_project_initiative_area English RTs_binary favorites_binary \\\n",
"0 1 1.00 0 0 \n",
"1 1 0.00 1 0 \n",
"\n",
" hashtags_binary mentions_binary URLs_binary \n",
"0 0 1 0 \n",
"1 1 0 0 "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_pickle('Original 2013 CSR Tweets with 3 binary variables.pkl')\n",
"print \"# of variables in dataframe:\", len(df.columns)\n",
"print \"# of tweets in dataframe:\", len(df)\n",
"df.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['rowid', 'query', 'tweet_id_str', 'inserted_date', 'language', 'coordinates', 'retweeted_status', 'created_at', 'month', 'year', 'content', 'from_user_screen_name', 'from_user_id', 'from_user_followers_count', 'from_user_friends_count', 'from_user_listed_count', 'from_user_favourites_count', 'from_user_statuses_count', 'from_user_description', 'from_user_location', 'from_user_created_at', 'retweet_count', 'favorite_count', 'entities_urls', 'entities_urls_count', 'entities_hashtags', 'entities_hashtags_count', 'entities_mentions', 'entities_mentions_count', 'in_reply_to_screen_name', 'in_reply_to_status_id', 'source', 'entities_expanded_urls', 'entities_media_count', 'media_expanded_url', 'media_url', 'media_type', 'video_link', 'photo_link', 'twitpic', 'num_characters', 'num_words', 'retweeted_user', 'retweeted_user_description', 'retweeted_user_screen_name', 'retweeted_user_followers_count', 'retweeted_user_listed_count', 'retweeted_user_statuses_count', 'retweeted_user_location', 'retweeted_tweet_created_at', 'Fortune_2012_rank', 'Company', 'CSR_sustainability', 'specific_project_initiative_area', 'English', 'RTs_binary', 'favorites_binary', 'hashtags_binary', 'mentions_binary', 'URLs_binary']\n"
]
}
],
"source": [
"print df.columns.tolist()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"### Create sub-set of data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For ease of presentation, let's create a more limited version of our data -- we'll keep just 8 columns."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"# of variables in dataframe: 8\n",
"# of tweets in dataframe: 26257\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>RTs_binary</th>\n",
" <th>English</th>\n",
" <th>hashtags_binary</th>\n",
" <th>mentions_binary</th>\n",
" <th>URLs_binary</th>\n",
" <th>from_user_followers_count</th>\n",
" <th>from_user_statuses_count</th>\n",
" <th>num_characters</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>1.00</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2859</td>\n",
" <td>1766</td>\n",
" <td>121</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>0.00</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2464</td>\n",
" <td>2400</td>\n",
" <td>138</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" RTs_binary English hashtags_binary mentions_binary URLs_binary \\\n",
"0 0 1.00 0 1 0 \n",
"1 1 0.00 1 0 0 \n",
"\n",
" from_user_followers_count from_user_statuses_count num_characters \n",
"0 2859 1766 121 \n",
"1 2464 2400 138 "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = df[['RTs_binary', 'English', 'hashtags_binary', 'mentions_binary', 'URLs_binary', 'from_user_followers_count', 'from_user_statuses_count', 'num_characters', ]]\n",
"print \"# of variables in dataframe:\", len(df.columns)\n",
"print \"# of tweets in dataframe:\", len(df)\n",
"df.head(2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"### Describe the Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As shown below, we have our dependent variable `RTs_binary` and 7 potential independent (explanatory) variables, four of which are binary and three of which are ratio-level. "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>count</th>\n",
" <th>mean</th>\n",
" <th>std</th>\n",
" <th>min</th>\n",
" <th>max</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>RTs_binary</th>\n",
" <td>26257.00</td>\n",
" <td>0.55</td>\n",
" <td>0.50</td>\n",
" <td>0.00</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>English</th>\n",
" <td>26257.00</td>\n",
" <td>0.97</td>\n",
" <td>0.17</td>\n",
" <td>0.00</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>hashtags_binary</th>\n",
" <td>26257.00</td>\n",
" <td>0.63</td>\n",
" <td>0.48</td>\n",
" <td>0.00</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mentions_binary</th>\n",
" <td>26257.00</td>\n",
" <td>0.61</td>\n",
" <td>0.49</td>\n",
" <td>0.00</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>URLs_binary</th>\n",
" <td>26257.00</td>\n",
" <td>0.62</td>\n",
" <td>0.49</td>\n",
" <td>0.00</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>from_user_followers_count</th>\n",
" <td>26257.00</td>\n",
" <td>48397.00</td>\n",
" <td>103199.48</td>\n",
" <td>58.00</td>\n",
" <td>424892.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>from_user_statuses_count</th>\n",
" <td>26257.00</td>\n",
" <td>5190.04</td>\n",
" <td>4004.43</td>\n",
" <td>9.00</td>\n",
" <td>16594.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>num_characters</th>\n",
" <td>26257.00</td>\n",
" <td>111.11</td>\n",
" <td>29.89</td>\n",
" <td>9.00</td>\n",
" <td>159.00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count mean std min max\n",
"RTs_binary 26257.00 0.55 0.50 0.00 1.00\n",
"English 26257.00 0.97 0.17 0.00 1.00\n",
"hashtags_binary 26257.00 0.63 0.48 0.00 1.00\n",
"mentions_binary 26257.00 0.61 0.49 0.00 1.00\n",
"URLs_binary 26257.00 0.62 0.49 0.00 1.00\n",
"from_user_followers_count 26257.00 48397.00 103199.48 58.00 424892.00\n",
"from_user_statuses_count 26257.00 5190.04 4004.43 9.00 16594.00\n",
"num_characters 26257.00 111.11 29.89 9.00 159.00"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.round(df.describe(), 2).T[['count','mean', 'std', 'min', 'max']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"## Logit Regressions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As an aside, StatsModels has a wiki page, https://github.com/statsmodels/statsmodels/wiki/Examples with a collection \"official\" and user-contributed examples, tutorials and recipes. \n",
"\n",
"StatsModels has two main ways of writing regression equations. Here I'll be using the `\"R-style\"` of writing regression formulas. For a more detailed explanation see http://statsmodels.sourceforge.net/devel/example_formulas.html \n",
"\n",
"Let's run a simple model with two explanatory variables: `hashtags_binary` and `from_users_followers_count`."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimization terminated successfully.\n",
" Current function value: 0.654336\n",
" Iterations 5\n"
]
}
],
"source": [
"mod_logit = smf.logit(formula='RTs_binary ~ hashtags_binary + from_user_followers_count', data=df).fit()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>To get the summary of the above model -- including the degress of freedom, coefficients, etc. -- we use the `summary` command."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Logit Regression Results \n",
"==============================================================================\n",
"Dep. Variable: RTs_binary No. Observations: 26257\n",
"Model: Logit Df Residuals: 26254\n",
"Method: MLE Df Model: 2\n",
"Date: Sun, 02 Aug 2015 Pseudo R-squ.: 0.05021\n",
"Time: 16:09:36 Log-Likelihood: -17181.\n",
"converged: True LL-Null: -18089.\n",
" LLR p-value: 0.000\n",
"=============================================================================================\n",
" coef std err z P>|z| [95.0% Conf. Int.]\n",
"---------------------------------------------------------------------------------------------\n",
"Intercept -0.5396 0.022 -24.708 0.000 -0.582 -0.497\n",
"hashtags_binary 0.9466 0.026 35.767 0.000 0.895 0.998\n",
"from_user_followers_count 3.033e-06 1.47e-07 20.648 0.000 2.75e-06 3.32e-06\n",
"=============================================================================================\n",
"Chi-squared value: 1816.45530301\n"
]
}
],
"source": [
"print mod_logit.summary()\n",
"print \"Chi-squared value:\", mod_logit.llr #TO GET THE CHI-SQUARED VALUE"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>With a logit regression we are particularly interested in several pieces of information:\n",
"\n",
"<b>Model Summary:</b>\n",
"\n",
"First, we are interested in the performance of the entire regression model. \n",
"\n",
"- <b><i>`Log-Likelihood:`</i></b> The log-likelihood value of the final model. The value `-17181` has no meaning in and of itself; rather, this number can be used to help compare nested models.\n",
"- <b><i>`No. Observations:`</i></b> The number of observations used in the regression.\n",
"- <b><i>`Chi-squared:`</i></b> \"This is the likelihood ratio (LR) chi-square test.\"It is a measure of model fit.\n",
"- <b><i>`LLR p-value:`</i></b> The p-value for the chi-square test\n",
" - The chi-squared probability of getting a log-likelihood ratio statistic greater than llr. llr has a chi-squared distribution with degrees of freedom `df_model`.\n",
" - \"This is the probability of obtaining the chi-square statistic given that the null hypothesis is true. In other words, this is the probability of obtaining this chi-square statistic (`1816.5`) if there is in fact no effect of the independent variables, taken together, on the dependent variable. This is, of course, the p-value, which is compared to a critical value, perhaps .05 or .01 to determine if the overall model is statistically significant. In this case, the model is statistically significant because the p-value is less than .000\" (www.ats.ucla.edu)\n",
"- <b><i>`Pseudo R-squ:`</i></b> The 'pseudo' R-squared\n",
" - \"This is the pseudo R-squared. Logistic regression does not have an equivalent to the R-squared that is found in OLS regression; however, many people have tried to come up with one. There are a wide variety of pseudo-R-square statistics. Because this statistic does not mean what R-square means in OLS regression (the proportion of variance explained by the predictors), we suggest interpreting this statistic with great caution.\" (www.ats.ucla.edu)\n",
"\n",
"\n",
"Below the model summary we have the parameter estimates. These are used for making determinations of the relationships for each of the individual variables.\n",
"\n",
"<b>Parameter Estimates:</b>\n",
"\n",
"- <b><i>`coef`</i></b> - Parameter coefficients\n",
" - \"These are the values for the logistic regression equation for predicting the dependent variable from the independent variable. They are in log-odds units. Similar to OLS regression, the prediction equation is\" (www.ats.ucla.edu)\n",
"\n",
" - log(p/1-p) = b0 + b1$*$hashtags_binary + b2$*$from_user_followers_count\n",
" \n",
" - where p is the probability of being retweeted. Expressed in terms of the variables used in this example, the logistic regression equation is\n",
"\n",
" - log(p/1-p) = -0.5396 + 0.9466$*$hashtags_binary + 3.033e-06$*$from_user_followers_count\n",
"\n",
" - \"These estimates tell you about the relationship between the independent variables and the dependent variable, where the dependent variable is on the logit scale. These estimates tell the amount of increase in the predicted log odds of `RTs_binary` = 1 that would be predicted by a 1 unit increase in the predictor, holding all other predictors constant. Note: For the independent variables which are not significant, the coefficients are not significantly different from 0, which should be taken into account when interpreting the coefficients. (See the columns with the z-values and p-values regarding testing whether the coefficients are statistically significant). Because these coefficients are in log-odds units, they are often difficult to interpret, so they are often converted into odds ratios.\" (www.ats.ucla.edu) I will show you how to do this later\n",
"\n",
" - `hashtags_binary` - The coefficient (or parameter estimate) for the variable hashtags_binary is 0.9466. This means that for a one-unit increase in female (in other words, going from no hashtags to hashtags), we expect a 0.9466 increase in the log-odds of the dependent variable `RTs_binary`, holding all other independent variables constant.\n",
" \n",
" - `from_user_followers_count` - For every one-unit increase in `from_user_followers_count` (so, for every additional follower), we expect a 3.033e-06 increase in the log-odds of `RTs_binary`, holding all other independent variables constant.\n",
" \n",
" - constant - This is the expected value of the log-odds of `RTs_binary` when all of the predictor variables equal zero. In most cases, this is not interesting. Also, oftentimes zero is not a realistic value for a variable to take.\n",
"\n",
"\n",
"- <b><i>`std err`</i></b> - \"These are the standard errors associated with the coefficients. The standard error is used for testing whether the parameter is significantly different from 0; by dividing the parameter estimate by the standard error you obtain a z-value (see the column with z-values and p-values). The standard errors can also be used to form a confidence interval for the parameter, as shown in the last two columns of this table.\" (www.ats.ucla.edu)\n",
"\n",
"\n",
"- <b><i>`z and P>|z|`</i></b> - z-value and 2-tailed p-value\n",
"\n",
" - \"These columns provide the z-value and 2-tailed p-value used in testing the null hypothesis that the coefficient (parameter) is 0. If you use a 2-tailed test, then you would compare each p-value to your preselected value of alpha. Coefficients having p-values less than alpha are statistically significant. For example, if you chose alpha to be 0.05, coefficients having a p-value of 0.05 or less would be statistically significant (i.e., you can reject the null hypothesis and say that the coefficient is significantly different from 0). If you use a 1-tailed test (i.e., you predict that the parameter will go in a particular direction), then you can divide the p-value by 2 before comparing it to your preselected alpha level.\" (www.ats.ucla.edu) \n",
" - With a 2-tailed test and alpha of 0.05, you may reject the null hypothesis that the coefficient for `hashtags_binary` is equal to 0. The coefficient of 0.9466 is significantly greater than 0. The coefficient for `from_user_followers_count` of 3.033e-06 is also significantly different from 0 using alpha of 0.05 because its p-value is 0.000, which is smaller than 0.05.\n",
" \n",
" \n",
"- <b><i>`[95.0% Conf. Int.]`</i></b> - \"This shows a 95% confidence interval for the coefficient. This is very useful as it helps you understand how high and how low the actual population value of the parameter might be. The confidence intervals are related to the p-values such that the coefficient will not be statistically significant if the confidence interval includes 0.\" (www.ats.ucla.edu) \n",
"\n",
" \n",
"\n",
"For a more detailed description of the model summary and parameter estimates, see http://www.ats.ucla.edu/stat/stata/output/stata_logistic.htm\n",
"\n",
"\n",
"<b>TL/DR</b> - `hashtags_binary` and `from_user_followers_count` both have a significant positive relationship with `RTs_binary`."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"## Interpreting the Coefficients"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I'm now going to switch to a fairly detailed tutorial on how to interpret the logit coefficients. As noted above, the coefficients provided in a logistic regression are different than those seen in, say, an OLS regression regression. The logit coefficients are in `log-odd` units: \"These estimates tell the amount of increase in the predicted log odds of RTs_binary = 1 that would be predicted by a 1 unit increase in the predictor, holding all other predictors constant.\" (www.ats.ucla.edu)\n",
"\n",
"To help walk you through how the coefficients are created -- along with how to interpret them -- I will run an even simpler logit model including only a single binary variable. "
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimization terminated successfully.\n",
" Current function value: 0.663751\n",
" Iterations 4\n"
]
},
{
"data": {
"text/plain": [
"Intercept -0.40\n",
"hashtags_binary 0.94\n",
"dtype: float64"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mod_logit4 = smf.logit(formula='RTs_binary ~ hashtags_binary', data=df).fit()\n",
"mod_logit4.params"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The coefficient (or parameter estimate) for the variable `hashtags_binary` is 0.94. This means that for a one-unit increase in female (in other words, going from no hashtags to hashtags), we expect a 0.94 increase in the log-odds of the dependent variable `RTs_binary`.\n",
"\n",
"I will now cover four different relevant values for our variables: 1) odds, 2) probabilities, 3) odds ratios, and 4) the log of odds."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Part I: The Odds"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To see how the two parameters shown above are calculated, let's take a look at the crosstab of the variables `hashtags_binary` with `RTs_binary`."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>RTs_binary</th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" </tr>\n",
" <tr>\n",
" <th>hashtags_binary</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>5846</td>\n",
" <td>3912</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>6077</td>\n",
" <td>10422</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"RTs_binary 0 1\n",
"hashtags_binary \n",
"0 5846 3912\n",
"1 6077 10422"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.crosstab(df['hashtags_binary'], df['RTs_binary'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What are the odds of a no-tag tweet (`hashtags_binary=0`) being retweeted and what are the odds of a hashtag tweet (`hashtags_binary=1`) being retweeted? We can manually calculate these odds from the above table. First, the odds of a tweet with no tags being retweeted are `3912/5846` = **0.669**. Such tweets are less likely to be shared than not shared. It might help if I put this in \"gambling\" form: The odds are ``0.669:1``.\n",
"\n",
"Note that `probability` can range from 0 to 1, while `odds` can range from 0 to positive infinity. A tweet with a probability of being retweeted of 1 means a 100% chance, a probability of 0.5 indicates 50/50 chances, and a probability of 0 indicates no chance of being retweeted. In contrast, an odds value of 1 indicates an equal chance of the tweet being retweeted or not retweeted (the odds of being retweeted versus not being retweeted are 1 to 1). Any odds value of greater than 1 thus indicates a higher likelihood of being retweeted than not retweeted.\n",
"\n",
"For a complete description of probability vs. odds, see http://www.ats.ucla.edu/stat/mult_pkg/faq/general/odds_ratio.htm "
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.6691755046185426"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from __future__ import division #To make sure PANDAS always returns a float\n",
"(3912/(3912+5846))/(5846/(3912+5846))"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.6691755046185426"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#OR, AFTER CANCELLATION\n",
"3912/5846"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Second, the odds of a tweet with one or more tags being retweeted are **1.718**, indicating that they are more likely to be shared than not shared. If you are more used to gambling terminology, the odds are `1.72:1`"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"1.7178177023240482"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"10422/6067"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Part II: The Probabilities\n",
"\n",
"Probabilities range between 0 and 1. So, if the probability of a message being retweeted is 0.63, then the probability of the message not being retweeted is `1-0.63=0.37`. \n",
"\n",
"Odds, in turn range from 0 to infinity are based on the probabilities. Specifically, in our context odds are defined as the ratio of probability of being retweeted and the probability of not being retweeted:\n",
"\n",
"$$\\text{odds}(RT) = \\frac{\\Pr(RT=1)}{\\Pr(RT=0)} = \\frac{\\Pr(RT=1)}{1 - \\Pr(RT=1)} = \\frac{0.632}{1 - 0.632} = \\frac{0.632}{0.368} = 1.72 $$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In fact, as we will calculate below, these are the relevant probabilities. To convert from odds to probabilities, we can rely on an alternative formula:\n",
"\n",
"$$\\Pr(RT=1) = \\frac{\\text{Odds}(RT)}{1 + \\text{Odds}(RT)} = 1 - \\frac{1}{1 + \\text{Odds}(RT)}$$\n",
"\n",
"\n",
"Above we have calculated the odds, so let's now plug them in to get our probabilities. First, the probability of a hashtag tweet being retweeted is:"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.6320577354600037"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"1.7178177023240482/(1+1.7178177023240482)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"or"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.6320577354600037"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(10422/6067)/(1+(10422/6067))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"or"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.6320577354600037"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"1 - 1/(1+(10422/6067))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And the probability of a hashtag tweet not being retweeted is `1-0.632=0.368`. If we wish, we can work out the calculation."
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.3679422645399964"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"1/(1+(10422/6067))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Given that we have the relevant odds, let's write a function to implement our equation:\n",
"\n",
"$$\\Pr(RT=1) = \\frac{\\text{Odds}(RT)}{1 + \\text{Odds}(RT)}$$"
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def Probability(odds):\n",
" return odds / (1 + odds)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Probability a hashtag tweet will be retweeted"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.63205773546\n",
"0.63205773546\n"
]
}
],
"source": [
"print Probability(10422/6067)\n",
"print Probability(1.7178177023240482) #ALTERNATIVELY, JUST PLUGGING IN THE ODDS "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Probability a hashtag tweet will not be retweeted"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.3679422645399964"
]
},
"execution_count": 102,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Probability(6067/10422)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Probability a no-tag tweet will be retweeted"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.400901824144\n",
"0.400901824144\n"
]
}
],
"source": [
"print Probability(3912/5846)\n",
"print Probability(0.6691755046185426) #ALTERNATIVELY, JUST PLUGGING IN THE ODDS "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Probability a no-tag tweet will not be retweeted"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.5990981758557081"
]
},
"execution_count": 110,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Probability(5846/3912)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>For many people, the probabilities are more intuitive. It's good to know how to calculate them."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Part III: The `Odds Ratio`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We now can use the odds to calculate the `odds ratio`, or the ratio of the odds between two conditions -- between including a tag and not including a tag. We are especially interested here in the ratio of the odds of hashtag tweets to non-hashtag tweets. As with the odds noted earlier, this is how we will interpret the odds ratio (OR):\n",
"\n",
" - OR < 1 - including tag associated with lower odds of being retweeted\n",
" - OR = 1 - including tag does not affect odds of being retweeted\n",
" - OR > 1 - including tag associated with higher odds of being retweeted\n",
"\n",
"The **ratio** of the odds for hashtag to non-hashtag tweets is \n",
"\n",
"&nbsp; &nbsp; &nbsp; &nbsp; `odds(hashtag)/odds(no hashtag)` = `(10422/6067)/(3912/5846) = 1.718/0.669 =` **2.56**\n",
"\n",
"Note that on some websites you might see this alternative presentation (which I think is less intuitive than above:\n",
"\n",
"&nbsp; &nbsp; &nbsp; &nbsp; `odds(hashtag)/odds(no hashtag)` = `(10422/6067)/(3912/5846) = (10422*5846)/(3912*6077) =` **2.56**\n",
"\n",
"Check out the UCLA site for a detailed example of interpreting the odds ratio: http://www.ats.ucla.edu/stat/stata/faq/oratio.htm. See also: http://stats.stackexchange.com/questions/133623/help-me-understand-adjusted-odds-ratio-in-logistic-regression. For another tutorial on how to compute odds ratios and predicted probabilities, see http://blog.yhathq.com/posts/logistic-regression-and-python.html\n",
"\n",
"We can check our math here:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"2.5628417920934914"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(10422*5846)/(3912*6077)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Alternatively, we get the same by dividing the odds (calculated in Part I) of a retweet for a hashtag tweet by the odds of a retweet for a non-hashtag tweet."
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"2.5670660244852725"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"1.7178177023240482/0.6691755046185426"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So the odds for for hashtag tweets are 10422 to 6067 (`1.718:1`), the odds for non-tag tweets are 3912 to 5846 (`0.669:1`), and the odds ratio of **2.56** indicates the odds of a retweet for hashtag tweets are about **156% higher** (`(2.56 - 1) * 100`) than the odds for non-hashtag tweets.\n",
"\n",
"We can do the following as a short-hand way of getting the odds ratios."
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Intercept 0.67\n",
"hashtags_binary 2.56\n",
"dtype: float64\n"
]
}
],
"source": [
"print np.exp(mod_logit4.params)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And if we want the odds ratios plus the confidence intervals. "
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 2.5% 97.5% OR\n",
"Intercept 0.64 0.70 0.67\n",
"hashtags_binary 2.43 2.70 2.56\n"
]
}
],
"source": [
"# odds ratios and 95% CI\n",
"params = mod_logit4.params\n",
"conf = mod_logit4.conf_int()\n",
"conf['OR'] = params\n",
"conf.columns = ['2.5%', '97.5%', 'OR']\n",
"print np.exp(conf)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Part IV: The log of odds (our regression coefficients)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As seen in our initial logit regression output, the log of odds of a tweet with a hashtag being shared are **0.943**, calcluated as the log of the ratio of the odds of a hashtag tweet being shared to an no-tag tweet being shared. This is the `hashtags_binary` parameter value in our logit regression above."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.94276362204334552"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"log((10422/6067)/(3912/5846))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Taking the exponent of the log of the odds will give us the odds ratio again"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"2.5670660244852725"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"exp(log((10422/6067)/(3912/5846)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The **_log of odds_** of a no-tag post being shared, in turn, is **-0.402**. This is the intercept value in the above logit regression. Note that it is the intercept value because, when there is no tag, the value for `hashtags_binary` will be `0`, that is, our equation becomes:\n",
"\n",
" - log(p/1-p) = b0 + b1*hashtags_binary\n",
" \n",
"or\n",
"\n",
" - log(p/1-p) = -0.40 + 0.94*hashtags_binary \n",
" \n",
"or \n",
"\n",
" - log(p/1-p) = -0.40 + 0.94*0 = -0.40"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-0.40170891451648333"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"log(3912/5846)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"or"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-0.40170891451648333"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"log(0.6691755046185426)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Taking the exponent of the log of the odds will give us the odds again"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.66917550461854258"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"exp(-0.40170891451648333)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we want to directly get the coefficients (in log odds form)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Intercept -0.40\n",
"hashtags_binary 0.94\n",
"dtype: float64"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mod_logit4.params"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Taking the exponent of the log of the odds will give us the odds."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"Intercept 0.67\n",
"hashtags_binary 2.56\n",
"dtype: float64"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"exp(mod_logit4.params)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Summary - Interpreting the Coefficients\n",
"\n",
"I hope this helps explain the meaning of the coefficients. Given the difficulty of interpreting log odds, you may wish to show the odds ratios instead in your manuscript. In our plots below we will also show the probabilities.\n",
"\n",
"Let's quickly put it all together. We have covered four different versions of our variables' parameters. First, there is the log of odds -- our initial logit regression coefficients. Second, we have the odds, which range from 0 to positive infinity. Third, we have the odds ratio, which relates to the ratio of the odds of one condition vs. another. And fourth, we have the probabilities of being retweeted and not retweeted. The following table lays out the relevant values for the only variable in our model, `hashtags_binary`.\n",
"\n",
"For me, the most important, most readily intelligible pieces of information are the following -- and these are what I would convey to the readers. To start, I'd relate that the odds of a tweet being retweeted are **2.56 times higher** for a tweet with a hashtag compared to one without a hashtag; I would, in other words, refer to the odds ratio shown in the fourth column for `hashtags=1`. I might also use this same information in a different way and say that the odds of a retweet for hashtag tweets are about **156% higher** than they are for non-tag tweets. Second, I would also likely point out that the probability of a hashtag tweet being retweeted is **0.632**. The rest can remain unsaid."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"| condition (value of `hashtags_binary`) | log of odds (regression coef.) | odds(RT) | odds ratio (vs. other condition)| Pr(RT) | Pr(~RT) |\n",
"|-----------|-------------|----------|------------|--------|---------|\n",
"| no tag &nbsp; (`hashtags_binary=0`) | -0.40 | 0.669 | 0.39 | 0.401 | 0.599 |\n",
"| tag &nbsp; (`hashtags_binary=1`) | 0.94 | 1.718 | 2.56 | 0.632 | 0.368 |"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"## Run three separate logit regressions and keep only publication-needed parameters"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"OK, let's now switch gears. You will usually have to run more than one regression in any analysis. It will help both you and the reader if you are able to present the results side-by-side in a single table. Moreover, it will make your task much easier if you are able to directly export your results rather than copying and pasting individual coefficients. Fortunately,`StatsModels` has this capability. I will now take you through the steps necessary to produce a single table for including in your manuscript.`"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Optimization terminated successfully.\n",
" Current function value: 0.654336\n",
" Iterations 5\n",
"Optimization terminated successfully.\n",
" Current function value: 0.637146\n",
" Iterations 5\n",
"Optimization terminated successfully.\n",
" Current function value: 0.626327\n",
" Iterations 5\n"
]
}
],
"source": [
"#logit = sm.Logit(data['admit'], data[train_cols])\n",
"mod_logit = smf.logit(formula='RTs_binary ~ hashtags_binary + from_user_followers_count', data=df).fit()\n",
"mod_logit2 = smf.logit(formula='RTs_binary ~ hashtags_binary + from_user_followers_count + num_characters', data=df).fit()\n",
"mod_logit3 = smf.logit(formula='RTs_binary ~ hashtags_binary + from_user_followers_count + num_characters + URLs_binary', data=df).fit()"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"results_logit=[mod_logit, mod_logit2, mod_logit3]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To show all three sets of results at once we will rely on the `summary_col` feature of StatsModels. Go here to see what can be done in <i>summary2</i>: https://github.com/statsmodels/statsmodels/blob/master/statsmodels/iolib/summary2.py"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"===================================================================\n",
" RTs_binary I RTs_binary II RTs_binary III\n",
"-------------------------------------------------------------------\n",
"Intercept -0.5396*** -1.9525*** -1.9536*** \n",
" (0.0218) (0.0542) (0.0553) \n",
"URLs_binary 0.6898*** \n",
" (0.0290) \n",
"from_user_followers_count 0.0000*** 0.0000*** 0.0000*** \n",
" (0.0000) (0.0000) (0.0000) \n",
"hashtags_binary 0.9466*** 0.6451*** 0.6370*** \n",
" (0.0265) (0.0285) (0.0288) \n",
"num_characters 0.0142*** 0.0103*** \n",
" (0.0005) (0.0005) \n",
"===================================================================\n",
"Standard errors in parentheses.\n",
"* p<.1, ** p<.05, ***p<.01\n"
]
}
],
"source": [
"from statsmodels.iolib.summary2 import summary_col\n",
"print summary_col(results_logit, stars=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>The above is fine, but we need a few more pieces of information. Specifically, we'll customize extra info on the bottom panel and change the float format."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# TO SEE WHAT MODEL VALUES ARE\n",
"mod_logit?"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#HELP FOR SUMMARY_COL\n",
"summary_col?"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"simpletable\">\n",
"<tr>\n",
" <td></td> <th>RTs_binary I</th> <th>RTs_binary II</th> <th>RTs_binary III</th>\n",
"</tr>\n",
"<tr>\n",
" <th>Intercept</th> <td>-0.54***</td> <td>-1.95***</td> <td>-1.95***</td> \n",
"</tr>\n",
"<tr>\n",
" <th></th> <td>(0.02)</td> <td>(0.05)</td> <td>(0.06)</td> \n",
"</tr>\n",
"<tr>\n",
" <th>URLs_binary</th> <td></td> <td></td> <td>0.69***</td> \n",
"</tr>\n",
"<tr>\n",
" <th></th> <td></td> <td></td> <td>(0.03)</td> \n",
"</tr>\n",
"<tr>\n",
" <th>from_user_followers_count</th> <td>0.00***</td> <td>0.00***</td> <td>0.00***</td> \n",
"</tr>\n",
"<tr>\n",
" <th></th> <td>(0.00)</td> <td>(0.00)</td> <td>(0.00)</td> \n",
"</tr>\n",
"<tr>\n",
" <th>hashtags_binary</th> <td>0.95***</td> <td>0.65***</td> <td>0.64***</td> \n",
"</tr>\n",
"<tr>\n",
" <th></th> <td>(0.03)</td> <td>(0.03)</td> <td>(0.03)</td> \n",
"</tr>\n",
"<tr>\n",
" <th>num_characters</th> <td></td> <td>0.01***</td> <td>0.01***</td> \n",
"</tr>\n",
"<tr>\n",
" <th></th> <td></td> <td>(0.00)</td> <td>(0.00)</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Model:</th> <td>Logit</td> <td>Logit</td> <td>Logit</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Pseudo R-squared</th> <td>0.05</td> <td>0.08</td> <td>0.09</td> \n",
"</tr>\n",
"<tr>\n",
" <th>LLR p-value (p-value for Chi-squared):</th> <td>0.0000</td> <td>0.0000</td> <td>0.0000</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Chi-squared:</th> <td>1816.5</td> <td>2719.1</td> <td>3287.3</td> \n",
"</tr>\n",
"<tr>\n",
" <th>N</th> <td>26257</td> <td>26257</td> <td>26257</td> \n",
"</tr>\n",
"<tr>\n",
" <th>Log-Likelihood:</th> <td>-17181.</td> <td>-16730.</td> <td>-16445.</td> \n",
"</tr>\n",
"</table>"
],
"text/plain": [
"<class 'statsmodels.iolib.summary2.Summary'>\n",
"\"\"\"\n",
"\n",
"================================================================================\n",
" RTs_binary I RTs_binary II RTs_binary III\n",
"--------------------------------------------------------------------------------\n",
"Intercept -0.54*** -1.95*** -1.95*** \n",
" (0.02) (0.05) (0.06) \n",
"URLs_binary 0.69*** \n",
" (0.03) \n",
"from_user_followers_count 0.00*** 0.00*** 0.00*** \n",
" (0.00) (0.00) (0.00) \n",
"hashtags_binary 0.95*** 0.65*** 0.64*** \n",
" (0.03) (0.03) (0.03) \n",
"num_characters 0.01*** 0.01*** \n",
" (0.00) (0.00) \n",
"Model: Logit Logit Logit \n",
"Pseudo R-squared 0.05 0.08 0.09 \n",
"LLR p-value (p-value for Chi-squared): 0.0000 0.0000 0.0000 \n",
"Chi-squared: 1816.5 2719.1 3287.3 \n",
"N 26257 26257 26257 \n",
"Log-Likelihood: -17181. -16730. -16445. \n",
"================================================================================\n",
"Standard errors in parentheses.\n",
"* p<.1, ** p<.05, ***p<.01\n",
"\"\"\""
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#http://nbviewer.ipython.org/gist/vincentarelbundock/4324362\n",
"custom_info = {'N': lambda x: str(int(x.nobs)), \n",
" 'Pseudo R-squared': lambda x: '%.2f' % x.prsquared, \n",
" # McFadden's pseudo-R-squared. `1 - (llf / llnull)`\n",
" 'Log-Likelihood:': lambda x: \"%#8.5g\" % x.llf, \n",
" #llf : float --> Value of the loglikelihood\n",
" 'Chi-squared:': lambda x: \"%#8.5g\" % x.llr, \n",
" #llr : float --> Likelihood ratio chi-squared statistic; `-2*(llnull - llf)`\n",
" 'LLR p-value (p-value for Chi-squared):': lambda x: \"%#8.5g\" % x.llr_pvalue, \n",
" # llr_pvalue : float --> The chi-squared probability of getting a log-likelihood ratio\n",
" # statistic greater than llr. llr has a chi-squared distribution\n",
" # with degrees of freedom `df_model`.\n",
" 'Model:': lambda x: x.model.__class__.__name__,\n",
" #'Model Family:': lambda x: x.family.__class.__name__,\n",
" }\n",
"summary_col([mod_logit, mod_logit2, mod_logit3], stars=True, info_dict=custom_info, float_format='%.2f')"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"<br>We can now copy and paste the above table into Word or Excel and then format it for our manuscript. Alternatively, we can generate a copy of the table in HTML, LaTeX, or text format. There is no CSV option, but you can paste the HTML into http://www.convertcsv.com/html-table-to-csv.htm and get a CSV version."
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'<table class=\"simpletable\">\\n<tr>\\n <td></td> <th>RTs_binary I</th> <th>RTs_binary II</th> <th>RTs_binary III</th>\\n</tr>\\n<tr>\\n <th>Intercept</th> <td>-0.54***</td> <td>-1.95***</td> <td>-1.95***</td> \\n</tr>\\n<tr>\\n <th></th> <td>(0.02)</td> <td>(0.05)</td> <td>(0.06)</td> \\n</tr>\\n<tr>\\n <th>URLs_binary</th> <td></td> <td></td> <td>0.69***</td> \\n</tr>\\n<tr>\\n <th></th> <td></td> <td></td> <td>(0.03)</td> \\n</tr>\\n<tr>\\n <th>from_user_followers_count</th> <td>0.00***</td> <td>0.00***</td> <td>0.00***</td> \\n</tr>\\n<tr>\\n <th></th> <td>(0.00)</td> <td>(0.00)</td> <td>(0.00)</td> \\n</tr>\\n<tr>\\n <th>hashtags_binary</th> <td>0.95***</td> <td>0.65***</td> <td>0.64***</td> \\n</tr>\\n<tr>\\n <th></th> <td>(0.03)</td> <td>(0.03)</td> <td>(0.03)</td> \\n</tr>\\n<tr>\\n <th>num_characters</th> <td></td> <td>0.01***</td> <td>0.01***</td> \\n</tr>\\n<tr>\\n <th></th> <td></td> <td>(0.00)</td> <td>(0.00)</td> \\n</tr>\\n<tr>\\n <th>Model:</th> <td>Logit</td> <td>Logit</td> <td>Logit</td> \\n</tr>\\n<tr>\\n <th>Pseudo R-squared</th> <td>0.05</td> <td>0.08</td> <td>0.09</td> \\n</tr>\\n<tr>\\n <th>LLR p-value (p-value for Chi-squared):</th> <td>0.0000</td> <td>0.0000</td> <td>0.0000</td> \\n</tr>\\n<tr>\\n <th>Chi-squared:</th> <td>1816.5</td> <td>2719.1</td> <td>3287.3</td> \\n</tr>\\n<tr>\\n <th>N</th> <td>26257</td> <td>26257</td> <td>26257</td> \\n</tr>\\n<tr>\\n <th>Log-Likelihood:</th> <td>-17181.</td> <td>-16730.</td> <td>-16445.</td> \\n</tr>\\n</table>'"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"summary_col([mod_logit, mod_logit2, mod_logit3], stars=True, info_dict=custom_info, float_format='%.2f').as_html()"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'\\\\begin{table}\\n\\\\caption{}\\n\\\\begin{center}\\n\\\\begin{tabular}{lccc}\\n\\\\hline\\n & RTs_binary I & RTs_binary II & RTs_binary III \\\\\\\\\\n\\\\hline\\n\\\\hline\\n\\\\end{tabular}\\n\\\\begin{tabular}{llll}\\nIntercept & -0.54*** & -1.95*** & -1.95*** \\\\\\\\\\n & (0.02) & (0.05) & (0.06) \\\\\\\\\\nURLs_binary & & & 0.69*** \\\\\\\\\\n & & & (0.03) \\\\\\\\\\nfrom_user_followers_count & 0.00*** & 0.00*** & 0.00*** \\\\\\\\\\n & (0.00) & (0.00) & (0.00) \\\\\\\\\\nhashtags_binary & 0.95*** & 0.65*** & 0.64*** \\\\\\\\\\n & (0.03) & (0.03) & (0.03) \\\\\\\\\\nnum_characters & & 0.01*** & 0.01*** \\\\\\\\\\n & & (0.00) & (0.00) \\\\\\\\\\nModel: & Logit & Logit & Logit \\\\\\\\\\nPseudo R-squared & 0.05 & 0.08 & 0.09 \\\\\\\\\\nLLR p-value (p-value for Chi-squared): & 0.0000 & 0.0000 & 0.0000 \\\\\\\\\\nChi-squared: & 1816.5 & 2719.1 & 3287.3 \\\\\\\\\\nN & 26257 & 26257 & 26257 \\\\\\\\\\nLog-Likelihood: & -17181. & -16730. & -16445. \\\\\\\\\\n\\\\hline\\n\\\\end{tabular}\\n\\\\end{center}\\n\\\\end{table}'"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"summary_col([mod_logit, mod_logit2, mod_logit3], stars=True, info_dict=custom_info, float_format='%.2f').as_latex()"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'\\n================================================================================\\n RTs_binary I RTs_binary II RTs_binary III\\n--------------------------------------------------------------------------------\\nIntercept -0.54*** -1.95*** -1.95*** \\n (0.02) (0.05) (0.06) \\nURLs_binary 0.69*** \\n (0.03) \\nfrom_user_followers_count 0.00*** 0.00*** 0.00*** \\n (0.00) (0.00) (0.00) \\nhashtags_binary 0.95*** 0.65*** 0.64*** \\n (0.03) (0.03) (0.03) \\nnum_characters 0.01*** 0.01*** \\n (0.00) (0.00) \\nModel: Logit Logit Logit \\nPseudo R-squared 0.05 0.08 0.09 \\nLLR p-value (p-value for Chi-squared): 0.0000 0.0000 0.0000 \\nChi-squared: 1816.5 2719.1 3287.3 \\nN 26257 26257 26257 \\nLog-Likelihood: -17181. -16730. -16445. \\n================================================================================\\nStandard errors in parentheses.\\n* p<.1, ** p<.05, ***p<.01'"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"summary_col([mod_logit, mod_logit2, mod_logit3], stars=True, info_dict=custom_info, float_format='%.2f').as_text()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"## Generating and Plotting Predicted Probabilities\n",
"\n",
"We can now get to the culmination of our analyses. In any statistical analysis, you want to clearly spell out the practical effect of your variables of interest. One of the beautiful things about a logit analysis is that we can graphically display the `predicted probabilities`; specifically, we can show a plot of the probabilities of receiving a retweet that are predicted by our model, holding all other values constant at some meaningful level. In so doing, we are able to present the effects of our variables of interest in a way that is intuitively easy for most readers to grasp. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First, we have to create another version of our data. The end point should be easy to understand but the code might not be. What we are going to do is to recreate the dataset with a number of different logical combinations of our two independent variables. This will allow us to see how the predicted probability of receiving a retweet increases or decreases across different variables. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First, let's manually add an intercept to our dataframe."
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df['intercept'] = 1.0"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We don't need all of the possible values of `from_user_followers_count` for our plots. So to make it simpler, let's create a range of values, let's call it `followers`, that includes 10 values: our minimum value, our maximum value, and eight linearly spaced follower values between the observed minimum and maximum values."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 5.80000000e+01 4.72617778e+04 9.44655556e+04 1.41669333e+05\n",
" 1.88873111e+05 2.36076889e+05 2.83280667e+05 3.30484444e+05\n",
" 3.77688222e+05 4.24892000e+05]\n"
]
}
],
"source": [
"followers = np.linspace(df['from_user_followers_count'].min(), df['from_user_followers_count'].max(), 10)\n",
"print followers"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we'll generate the combinations using a helper function called `cartesian` that I found on the `yhat` site and originally came from here: http://stackoverflow.com/questions/1208118/using-numpy-to-build-an-array-of-all-combinations-of-two-arrays"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def cartesian(arrays, out=None):\n",
" \"\"\"\n",
" Generate a cartesian product of input arrays.\n",
"\n",
" Parameters\n",
" ----------\n",
" arrays : list of array-like\n",
" 1-D arrays to form the cartesian product of.\n",
" out : ndarray\n",
" Array to place the cartesian product in.\n",
"\n",
" Returns\n",
" -------\n",
" out : ndarray\n",
" 2-D array of shape (M, len(arrays)) containing cartesian products\n",
" formed of input arrays.\n",
"\n",
" Examples\n",
" --------\n",
" >>> cartesian(([1, 2, 3], [4, 5], [6, 7]))\n",
" array([[1, 4, 6],\n",
" [1, 4, 7],\n",
" [1, 5, 6],\n",
" [1, 5, 7],\n",
" [2, 4, 6],\n",
" [2, 4, 7],\n",
" [2, 5, 6],\n",
" [2, 5, 7],\n",
" [3, 4, 6],\n",
" [3, 4, 7],\n",
" [3, 5, 6],\n",
" [3, 5, 7]])\n",
"\n",
" \"\"\"\n",
"\n",
" arrays = [np.asarray(x) for x in arrays]\n",
" dtype = arrays[0].dtype\n",
"\n",
" n = np.prod([x.size for x in arrays])\n",
" if out is None:\n",
" out = np.zeros([n, len(arrays)], dtype=dtype)\n",
"\n",
" m = n / arrays[0].size\n",
" out[:,0] = np.repeat(arrays[0], m)\n",
" if arrays[1:]:\n",
" cartesian(arrays[1:], out=out[0:m,1:])\n",
" for j in xrange(1, arrays[0].size):\n",
" out[j*m:(j+1)*m,1:] = out[0:m,1:]\n",
" return out"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>We then invoke the `cartesian` function for three variables -- a constant term, our `followers` array, and values of 0 and 1. This is how to create a dataframe where values of all other variables (in our case, the `intercept` and `from_user_followers_count`) are repeated for different values of `[0,1]`. Note that we're not directly tapping into our dataframe `df` here; instead, we are creating a dataset that includes all meaningful combinations for the `hashtags_binary` and our 10 linearly spaced observed values of `from_user_followers_count`."
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>intercept</th>\n",
" <th>from_user_followers_count</th>\n",
" <th>hashtags_binary</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.00</td>\n",
" <td>58.00</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.00</td>\n",
" <td>58.00</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.00</td>\n",
" <td>47261.78</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.00</td>\n",
" <td>47261.78</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1.00</td>\n",
" <td>94465.56</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1.00</td>\n",
" <td>94465.56</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1.00</td>\n",
" <td>141669.33</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1.00</td>\n",
" <td>141669.33</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1.00</td>\n",
" <td>188873.11</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1.00</td>\n",
" <td>188873.11</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1.00</td>\n",
" <td>236076.89</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>1.00</td>\n",
" <td>236076.89</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>1.00</td>\n",
" <td>283280.67</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>1.00</td>\n",
" <td>283280.67</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>1.00</td>\n",
" <td>330484.44</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>1.00</td>\n",
" <td>330484.44</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>1.00</td>\n",
" <td>377688.22</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>1.00</td>\n",
" <td>377688.22</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>1.00</td>\n",
" <td>424892.00</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>1.00</td>\n",
" <td>424892.00</td>\n",
" <td>1.00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" intercept from_user_followers_count hashtags_binary\n",
"0 1.00 58.00 0.00\n",
"1 1.00 58.00 1.00\n",
"2 1.00 47261.78 0.00\n",
"3 1.00 47261.78 1.00\n",
"4 1.00 94465.56 0.00\n",
"5 1.00 94465.56 1.00\n",
"6 1.00 141669.33 0.00\n",
"7 1.00 141669.33 1.00\n",
"8 1.00 188873.11 0.00\n",
"9 1.00 188873.11 1.00\n",
"10 1.00 236076.89 0.00\n",
"11 1.00 236076.89 1.00\n",
"12 1.00 283280.67 0.00\n",
"13 1.00 283280.67 1.00\n",
"14 1.00 330484.44 0.00\n",
"15 1.00 330484.44 1.00\n",
"16 1.00 377688.22 0.00\n",
"17 1.00 377688.22 1.00\n",
"18 1.00 424892.00 0.00\n",
"19 1.00 424892.00 1.00"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"combos = pd.DataFrame(cartesian([[1.], followers, [0,1]]))\n",
"combos.columns = ['intercept', 'from_user_followers_count', 'hashtags_binary']\n",
"combos "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>We then use the `predict` command to generate our predicted probabilities. Note that these probabilities are based on our `mod_logit` results. For instance, the value of `0.37` for `retweets_pred` in the first row tells us that with a 58 followers and no hashtag, our logit regression predicts there will be a 37% probability that the tweet will be retweeted. The second row value, in turn, suggests a 60% probability if a company with 58 followers includes a hashtag."
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>intercept</th>\n",
" <th>from_user_followers_count</th>\n",
" <th>hashtags_binary</th>\n",
" <th>retweets_pred</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.00</td>\n",
" <td>58.00</td>\n",
" <td>0.00</td>\n",
" <td>0.37</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.00</td>\n",
" <td>58.00</td>\n",
" <td>1.00</td>\n",
" <td>0.60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.00</td>\n",
" <td>47261.78</td>\n",
" <td>0.00</td>\n",
" <td>0.40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.00</td>\n",
" <td>47261.78</td>\n",
" <td>1.00</td>\n",
" <td>0.63</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1.00</td>\n",
" <td>94465.56</td>\n",
" <td>0.00</td>\n",
" <td>0.44</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" intercept from_user_followers_count hashtags_binary retweets_pred\n",
"0 1.00 58.00 0.00 0.37\n",
"1 1.00 58.00 1.00 0.60\n",
"2 1.00 47261.78 0.00 0.40\n",
"3 1.00 47261.78 1.00 0.63\n",
"4 1.00 94465.56 0.00 0.44"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"combos['retweets_pred'] = mod_logit.predict(combos)\n",
"combos.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Plotting Method #1 - Custom, Step-by-Step Grouping and Plotting"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"After generating our predictions we can visualize the results with a few plots. First we are going to create a pivot table -- essentially, the same as `combos` except we're indexing on two variables. This makes the plotting easier."
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"20\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>retweets_pred</th>\n",
" </tr>\n",
" <tr>\n",
" <th>from_user_followers_count</th>\n",
" <th>hashtags_binary</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">58.00</th>\n",
" <th>0.00</th>\n",
" <td>0.37</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.00</th>\n",
" <td>0.60</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">47261.78</th>\n",
" <th>0.00</th>\n",
" <td>0.40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.00</th>\n",
" <td>0.63</td>\n",
" </tr>\n",
" <tr>\n",
" <th>94465.56</th>\n",
" <th>0.00</th>\n",
" <td>0.44</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" retweets_pred\n",
"from_user_followers_count hashtags_binary \n",
"58.00 0.00 0.37\n",
" 1.00 0.60\n",
"47261.78 0.00 0.40\n",
" 1.00 0.63\n",
"94465.56 0.00 0.44"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grouped = pd.pivot_table(combos, values=['retweets_pred'], index=['from_user_followers_count', 'hashtags_binary'], aggfunc=np.mean)\n",
"print len(grouped)\n",
"grouped.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>Now we can plot each of the levels."
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA5EAAAFpCAYAAAAFjKziAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVOX+B/DPOTOAICCKiKIsosiq5BouuKWplaZlSle9\n7dttuS1aWmZaamq22qKV18yb10zLX9utrlevmVpWmsomuICAbIogO8yc5/fHYQ4ch82EGYHP+/Wa\n12xnzjznmQH98H3O80hCCAEiIiIiIiKiRpDt3QAiIiIiIiJqORgiiYiIiIiIqNEYIomIiIiIiKjR\nGCKJiIiIiIio0RgiiYiIiIiIqNEYIomIiIiIiKjRGCKJqMVJT09HaGgopk6dql1uvvlmbN++/bL3\nNWfOHHz77bd1Pr9582Zs3boVADB27FhMnDgRU6dOxbRp03DjjTdi8uTJ2Lt3LwoLC7W2XH/99YiM\njNTuv/LKK41qS0VFBe666y58//332mMff/wxduzYUev2u3btwtKlSy/jaKulp6ejf//+DW732Wef\nYfPmzQCALVu24P333/9T71fb+4eEhOCzzz7TPb5+/XosWLCgSd4DUD+zo0ePNtn+6lNUVISYmBhM\nnjwZ//nPf3TPrVmzBkOHDtV9Z6dOnYq4uLh69zl27FjExsbil19+weTJk5uz+XaTl5eHkJCQWp8L\nCQlBfn5+k7zPnDlzdD9bNS1cuLDBz6Kp1fXdjI2NxWOPPWbTthARXS6jvRtARPRntGvXTheusrOz\nMXnyZERERCA4OLhJ3iMjIwM7duzQQiQAvPrqqwgPD9fuf//991iwYAF++uknrT0HDx7ESy+9VGf4\nq83hw4exZMkSnD59Grfffrv2+OzZszF9+nSMGDECnTt31r1m7NixGDt27J89vEb5/fff0adPHwBA\nTExMk+5blmW88sorGDx4MAICAgAAkiQ16XsAgK2WQ05ISEBeXh5++OEHq+ckScKNN96IhQsXXvZ+\nm6NPWhJbfH779+9v8u93Y9R2bBEREXjrrbds3hYiosvBEElErYK3tzf8/f2RkpKCuLg4bNu2DWVl\nZXBzc8PGjRvxzjvv4Ntvv4XBYEBAQAAWLVqkhbL//ve/WL9+PcrKyjB58mQ8+OCDAIB169bh5ptv\n1r1Pzf/0CSGQlpaGjh071rmNxY4dO/DRRx/pHpMkCatWrUJQUBD++c9/4oknnsCHH36o20aWZUyc\n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\n53d79OjR+P7777F//34cOHAA77zzDrZs2QJfX996j6223z2XurQPASArKwszZ85ETEwMBg0ahAkT\nJuB///uftl3N338GgwExMTHYtm0bcnNz7XLuJxG1PpydlYhavejoaGzfvl37S/2mTZswePBgLYRY\nwmhBQQG+++47jBw5Eh06dIC7uzvS09Pr3G///v0xbdo0LF68uFkn/0hLS0OPHj3qDEpmsxljx45F\naWkpYmJisGjRIpw6dQqOjo6IjIzUZlctLCzE//3f/2H48OG69u7btw933HEHpkyZgk6dOmH//v3a\nf5YNBoMu0NR3nJIkYdSoUfjhhx9QVFQEANi2bVujKjITJ07EyJEjsXHjRu2xTp06aRW+vLw8/P77\n7w3up7Z2WgLE2bNnceDAAQwbNgxRUVHYt28fTp06BQD48ccfMXXqVJSXl9d7jJbXpaWlAQAOHDiA\n7OzsBv+IUN8+R4wYgS1btsBkMkFRFHzyyScYMWJEvdt/8sknANRgvXXrVm37cePG4cMPP0RwcDAc\nHBwQFRWF1157DRMmTAAADB8+HN988w1yc3MBAFu3btXOOb20jTExMUhISMC0adPw4osv4uLFi7h4\n8aJum/3792PMmDGIiYlBREQEdu7cqX13ajtmSZIwcOBAnDhxAomJiQCqP5/GEkJg3759mDZtGm69\n9VYEBARg165dWpiv7WfB8h2u63MwGo3auYVxcXGYO3cuxo0bh6ysLJw5cwaKomiVwuzsbADQzSz8\n1FNP4dtvv8UNN9yARYsWwdXVFVlZWQ0ey6XfzaFDh1qdd13b8cfGxsLT0xMPPfQQhg8fjt27dwOw\n/oOZxW233YadO3ciPj4e48ePb7BdREQNYSWSiFqk+oLJpc9Nnz4dmZmZuO2226AoCvz9/bF69Wrt\neXd3d9xyyy0oKyvDnDlzMHjwYADqELW9e/fqZku91JNPPomJEydi69at2tC0prZ3715MmjTJ6nHL\ncRoMBjz77LN46qmn4ODgAEmSsHz5cjg6OmL16tV48cUXsX37dlRWVmLKlCmYNm0a0tPTtdc//PDD\nWLVqFdatW4dOnTphwoQJSE1NBaBO2vLiiy9q79dQIIyKisKMGTMwc+ZMtGvXDkFBQXB2dq5120v3\ntXDhQl1QnDNnDubOnYuJEyeie/fuuPbaa+t830v3VfN+ZWUlpk2bBpPJhOeffx7+/v4AgBdffBFP\nPvmkVmV677334OzsXO9x9urVCy+88AIeffRRmM1mODs747333tNV5+pqX137/Nvf/oaVK1di6tSp\nMJlMiIyMxPPPP1/n8SxcuBAvvfQSJk+ejIqKCowcOVKbDGro0KHIycnBrFmzAKiB89///jfGjBmj\n3b/33ntx9913Q5IkuLm54Z133qm1jfPmzcOyZcvwxhtvQJIkPPLII1bDu2NiYjB37lxMnToV7u7u\nuO6667BhwwYIIeo85k6dOmH16tWYN28eHBwcMHjw4Dr7prbPVZIk3H333Vi0aBF27NiBjh07Yty4\ncfjxxx/r/VmobX8W1113HZ544gksXboU999/P6ZNm4YuXbqgd+/eGDlyJM6cOYOoqCgsWLAA9957\nLxwdHREaGqp9t//2t79h4cKF+PTTT2EwGDB+/Hjt90h9avtu1gyftfWhJEkYMWIEtm/fjgkTJsDT\n0xPXXXcdvLy8tOHYtfV537590atXrwYrv0REjSGJ5vzzORFRC5aeno7HHnvssislTclsNuOWW27B\nhg0b0KlTJ7u1o7FiY2Nx+PBhzJkzBwCwYcMGHDt2DK+99pqdW0Z0ZdLT07Fjxw48/PDDkCQJP/zw\nA9avX49PP/3U3k1rUF5eHm677TZs3rxZO6eTiOhKsBJJRFSHHj16aMs12Os8ok2bNuHOO+9sEQES\nAAICAvDBBx9oa2t2795dq2QStWRdu3ZFTk4OJk+eDIPBAHd3dyxfvrzO7b/66iusX7++1uemTJmi\nDSNublu3bsXrr7+OBx98kAGSiJoMK5FERERERETUaJxYh4iIiIiIiBqNIZKIiIiIiIgajSGSiIiI\niIiIGo0hkoiIiIiIiBqNIZKIiIiIiIgajSGSiIiIiIiIGo0hkoiIiIiIiBqNIZKIiIiIiIgajSGS\niIiIiIiIGo0hkoiIiIiIiBqNIZKIiIiIiIgajSGSiIiIiIiIGs1o7wYoioLFixcjKSkJDg4OWLZs\nGfz8/LTnv/76a6xfvx5OTk6YOHEi7rzzTvs1loiIiIiIqI2zeyVy586dqKysxJYtWzB37lysWLFC\ne+7ChQt47bXXsHHjRvzrX//Cf//7X8THx9uxtURERERERG2b3UPkoUOHEB0dDQCIjIxEbGys9lxa\nWhpCQkLg7u4OSZIQGRmJX3/91V5NJSIiIiIiavPsHiKLiorg6uqq3TcYDFAUBQDg7++PEydO4Pz5\n8ygtLcWBAwdQVlZmr6YSERERERG1eXY/J9LV1RXFxcXafUVRIMtqtu3QoQMWLFiARx99FB4eHggP\nD0fHjh3r3Z8QApIkNWubiYiIiIiI2iq7h8gBAwZg9+7dmDRpEv744w8EBwdrz5lMJsTGxmLz5s2o\nqKjA7Nmzcd9999W7P0mSkJtb2NzNphq8vNzY5zbGPrc99rntsc9tj31ue+xz22Of2x773Pa8vNya\ndf92D5Hjx4/Hvn37EBMTAwB4+eWX8fXXX6OkpAQzZsyALMu45ZZbIMsyYmJi4Ovra+cWExERERER\ntV2SEELYuxFNjX/psC3+dcn22Oe2xz63Pfa57bHPbY99bnvsc9tjn9tec1ci7T6xDhEREREREbUc\nDJFERERERETUaAyRRERERERE1GgMkURERERERNRoDJFERERERETUaG0yRB469BteeOFZ3WPvvbcG\n//7315e1n/Xr12HHju1Wj+/Zsxvnzp27ojZOnz4ZlZWVzfaa115bicOHf2/Utps3b7rsviEiIiIi\notapTYZISZIa9dif2Q8AbNu2BSUlRZe9v+Zqjy23JSIiIiKi1s1o7wbYQ21LY1oeUxQFq1YtQ05O\nDs6fP4cRI0bivvsewp49u/DJJx/DaDSic2cvLFmyHEII/PTTHuze/V9cvJiPe+99CLIsITk5CUuX\nLsa7736IDz9ci+PHE1BQUIDevYPw7LMvID8/H0uWPIfKykr4+fnj0KHfsGXLF7W2af36dcjKysSF\nC3nIysrCY489iSFDorBv31589NEHEALo0ycY8+Y9q71m2bLFGDduAq69dih+/nk/du36D5599gXs\n2LENX375BTw8OqGsrBRjxoyDyWTCK68sR0ZGOhRFwX33PYT+/Qfixx//h48++hAdOnSAJEkYP35i\nc34kRERERETUQrTJEAmoQ1offfQB7f7Zsxm4994HkZOTjYiIvrjppqkoLy/HrbfeiPvuewg7d/6A\nWbP+ilGjxuK7775BcXExJEmCl5c3nnnmORw+/Ds2b/4Yr7zyJoKC+mDevGdRUVEOd3d3vP76O1AU\nBX/960ycO5eLzZs/xqhRYzB16nT8+usv+PXXX+ptq6OjI1avfgu//voLtmz5BAMHDsYbb7yCDz74\nGB4eHti8eRNycrK17SVJ0qqHlusLFy5g69Z/4eOPP4Usy3j00QcghMBXX+2Ah0dHLFiwCAUF+Xjk\n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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1101d8f50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"colors = 'rbgyrbgy'\n",
"for col in combos.hashtags_binary.unique():\n",
" plt_data = grouped.ix[grouped.index.get_level_values(1)==col]\n",
" plt.plot(plt_data.index.get_level_values(0), plt_data['retweets_pred'], color=colors[int(col)])\n",
"\n",
"plt.xlabel('# Followers', labelpad=15)\n",
"plt.ylabel(\"P(share=1)\", labelpad=15)\n",
"plt.legend(['no', 'yes'], loc='upper left', title='Hashtag Included')\n",
"plt.title(\"Prob(RT=1) isolating \" + \"Number of Followers\" + \" and hashtags_binary\", y=1.05)\n",
"savefig('predicted probabilities example (red-blue).png', bbox_inches='tight', dpi=300, format='png')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>Can you see how simplistic yet powerful such a plot is? Here we can clearly see the effects of our two variables. First, for `from_user_followers_count`, we can see a clear positive relationship between the number of followers and the probability of a tweet being retweeted. We can also see a clear difference in the predicted probabilities for a tweet with and without a hashtag across the entire observed range of number of followers. \n",
"\n",
"Without including a hashtag, a company needs to have around 180,000 followers before one of its tweets has a 50/50 chance of being retweeted; in contrast, any tweet with a hashtag stands at least a 60% chance of being retweeted, and this steadily increases to 84% at the maximum observed number of followers."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Plotting Method #2 - Formula"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we want to run these plots on multiple variables we can put the above steps together into one function. Thanks to `yhat` for the function: http://blog.yhathq.com/posts/logistic-regression-and-python.html"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def isolate_and_plot(variable):\n",
" # isolate gre and class rank\n",
" \n",
" #NOTE v. 0.16 OF PANDAS REQUIRES 'index=' rather than 'rows=' \n",
" #grouped = pd.pivot_table(combos, values=['retweets_pred'], rows=[variable, 'hashtags_binary'], aggfunc=np.mean)\n",
" grouped = pd.pivot_table(combos, values=['retweets_pred'], index=[variable, 'hashtags_binary'], aggfunc=np.mean)\n",
"\n",
" colors = 'rbgyrbgy'\n",
" for col in combos.hashtags_binary.unique():\n",
" plt_data = grouped.ix[grouped.index.get_level_values(1)==col]\n",
" plt.plot(plt_data.index.get_level_values(0), plt_data['retweets_pred'],\n",
" color=colors[int(col)])\n",
" \n",
" plt.xlabel(variable, labelpad=15)\n",
" plt.ylabel(\"P(share=1)\", labelpad=15)\n",
" plt.legend(['no', 'yes'], loc='upper left', title='Hashtag Included')\n",
" plt.title(\"Prob(share=1) isolating \" + variable + \" and hashtags_binary\", y=1.05)\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>We then invoke the function as follows to produce the plot for our chosen variable."
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nbRvat2+PUaNG4Zdffqn36yZNmoQVK1b8pa2JiKh1kURjf5IiIrpO5eTk4Omnn8a3335r66b8KbGx\nsRg/fjyGDx9u66Y0qrS0FO+99x6eeuopODo6IjExEY899hj27dtn66YRtQk7duxAu3btMHz4cMiy\njKeffhpDhw5tFcHs3//+N7777jt88MEHtm4KEVkJK5FE1Gp169YNkydPxubNm1vFG63aEhISoFar\nW0WABJQhvXZ2dpg6dappwZK/Muzzz7rvvvvMFlYxMs75qz3Xtjk999xz9e7199ZbbyEgIKBFnrel\n2ao/yVJQUBAWLlyIN998EzqdDgMHDsS0adPqPb6h1+Sbb77Z4DD55jRjxgwUFRU1616zRHT9YyWS\niIiIiIiImowL6xAREREREVGTMUQSERERERFRkzFEEhERERERUZMxRBIREREREVGTMUQSERERERFR\nkzFEEhERERERUZMxRBIREREREVGTMUQSERERERFRkzFEEhERERERUZMxRBIREREREVGTMUQSERER\nERFRkzFEEhERERERUZNpbN0AWZYRFxeHtLQ02NnZIT4+Hn5+fqbHt2/fjg0bNsDBwQHjxo3DAw88\nYLvGEhERERER3eBsXonctWsXdDodNm/ejLlz52L58uWmxy5duoQ33ngDn332Gb788kv897//RVJS\nkg1bS0REREREdGOzeYg8cuQIYmJiAABRUVFISEgwPZadnY3Q0FC4ublBkiRERUXh0KFDtmoqERER\nERHRDc/mIbK0tBQuLi6m+2q1GrIsAwD8/f1x+vRpXLx4ERUVFTh48CAqKytt1VQiIiIiIqIbns3n\nRLq4uKCsrMx0X5ZlqFRKtnV3d8e8efPw1FNPwcPDAxEREWjfvn2D5xNCQJKkFm0zERERERHRjcrm\nIbJv377Ys2cPxo8fj2PHjiEkJMT0mF6vR0JCAjZt2gStVov7778fjzzySIPnkyQJBQUlLd1sqsXL\ny5V9bmXsc+tjn1sf+9z62OfWxz63Pva59bHPrc/Ly7VFz2/zEDl69Gjs378f06dPBwAsW7YM27dv\nR3l5Oe666y6oVCrceeedUKlUmD59Onx9fW3cYiIiIiIiohuXJIQQtm5Ec+NfOqyLf12yPva59bHP\nrY99bn3sc+tjn1sf+9z62OfW19KVSJsvrENEREREREStB0MkERERERERNRlDJBERERERETUZQyQR\n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\n6+9//7tuuOEG3XfffSovL1deXh5jXo8mTpyon//855Iiq0W8Xi/XegM73ZgHAgGu9QY0btw4uk4H\nMQAADKBJREFUzZ8/X5K0Z88etWvXToFAgOu8AZ085m3btuU6j4OHHnpI1113nTp06CCJ313i4eQx\nb0zXebMJkWVlZdElmJJkmqYsy3Kxo6YpOTlZN998s5555hnNmzdPd911l+PxlJQUHT16VGVlZWrT\npo3j82VlZSorK1NKSoqjtry83PFvU/35lmzChAkyTTP6sV3rpJ36HOO6nqMlOnnMBw8erF/96ld6\n/vnn1b17dy1dulTl5eWMeT1q3bp19PX/4he/0J133un4vsy1Xv9OHvP//u//Vk5ODtd6AzNNU7Nn\nz9bChQs1efJkvqfHwcljznXesFatWqWzzjpLI0aMkBT5vYXrvGGdPOaSGtV13mxCZGpqqsrLy6Mf\nW5Ylj6fZvLy46dWrly6//PLo+2lpaTp48GD08bKyMrVt2/aU8a6+gGt/vry8XG3btlVKSoqjtvo5\nUKP2tVqfY1zXc0AaP368MjMzo+8XFhYy5g3gyy+/1E033aQpU6Zo0qRJXOtxUHvML7vsMq71OFm8\neLHefvtt/frXv1ZlZWX081znDad6zOfMmaPhw4dznTegVatWad26dZo+fbqKioo0e/Zsx0wV13n9\nO92Yjxo1qtFc580mZeXm5urDDz+UJG3evFkZGRkud9Q0rVq1SosXL5Yk7du3T+Xl5Ro+fLg++eQT\nSdKHH36o8847Tzk5Ofr0009VWVmpo0ePavv27RowYIDj36G6NjU1VQkJCfr8889l27bWrl2r8847\nz7XX2BgNGjSoQcY4NzdX//jHP2Tbtvbu3SvLspSWlubmS200fvKTnygvL0+StG7dOvl8Psa8npWW\nluq//uu/dPfdd+vKK6+UxLXe0E435lzrDWv16tV66qmnJElJSUnyeDzy+Xxc5w3o5DE3DEN33HEH\n13kDev755/Xcc8/pueee08CBA/Xb3/5WI0aM4DpvQCeP+eLFi/Wzn/2s0Vznhl17LroJs21bc+fO\nVXFxsSRp0aJF6t27t8tdNT2hUEj33HOP9u7dK0m6++67lZaWpjlz5igYDKpv375asGCBDMPQSy+9\npBdffFGWZWnGjBkaP368Tpw4oV/96lc6cOCAEhMT9cgjjyg9PV1btmzRgw8+qHA4rBEjRujOO+90\n+ZW674svvtBdd92lFStWaNeuXQ02xkuXLtWHH34oy7J07733Kjc31+VX7p7aY15UVKR58+bJ6/Xq\nnHPO0fz585WSksKY16MFCxbo7bffdnwvvu+++7Rw4UKu9QZyujG/6667tHjxYq71BnLixAnNnj1b\npaWlCoVCuvXWW9WnTx++pzeg0415ly5d+J4eJ9OnT9f8+fNlGAbXeZxUj3lFRUWjuc6bTYgEAAAA\nADS8ZrOcFQAAAADQ8AiRAAAAAICYESIBAAAAADEjRAIAAAAAYkaIBAAAAADEjBAJAAAAAIgZIRIA\nAAAAEDNCJAAAAAAgZoRIAAAAAEDMCJEAAAAAgJgRIgEAAAAAMSNEAgAAAABiRogEAAAAAMSMEAkA\nAAAAiBkhEgAAAAAQM0IkAAAAACBmhEgAQL265557dPHFF+vNN990u5V6ZVmWbr75Zk2ePFkbN248\nbc0XX3yhsWPHSpJmz56tV199NZ4tNgovvvii3njjDbfbAAA0IK/bDQAAmpfVq1crPz9fXm/z+hHz\n1VdfqaSkRB999FFM9YZhyDCMBu6q8fnXv/6loUOHut0GAKABNa+f8AAAV91+++2ybVsXXHCB2rZt\nq44dOyopKUnPPPOMFi5cqPXr18swDF1++eW65ZZbtGHDBj355JOSpM8++0wXX3yx2rRpozVr1si2\nbf3hD39Qenp6nV9v7Nixev7559WlSxdt2LBBS5cu1XPPPadnn31Wq1evlsfjUXZ2tubPn69wOKyH\nHnpIGzduVDgc1tSpU/Uf//Ef2rBhgx5++GFZlqWMjAwtWrTotF/rtttu06FDh3T11Vfr5Zdf1pNP\nPqnXXntNHo9HI0aM0N13311nn6+88oqWL18uSfL5fJozZ44eeeQR9evXT9ddd51Wrlyp5cuX6803\n31QwGNT48eP17rvvau3atXrssccUCoXUrVs3PfDAA0pLS9PYsWM1ePBgFRYW6tlnn9VvfvMblZaW\nSpJmzpwZnQ09nT179uiee+7RoUOHlJSUpAULFigjI+O0PbZu3VoDBw5UUVGRJGnVqlXauHGjFi1a\npLFjx+qKK67QP/7xDx0/fly//e1vdfjwYb3//vvasGGDzjnnHA0fPrzOPgAATRfLWQEA9aY6EP7v\n//6v9uzZoyVLlmjZsmV64YUXtG/fPr322mt66aWX9Ne//lUffPCBJCkvL0+LFy/WG2+8ob/85S9K\nT0/XK6+8ooyMjO+1LDIcDuvpp5/WqlWrtGrVKnk8Hu3bt08rV66UYRhatWqVXnrpJb377rv69NNP\nJUm7d+/Wn/70pzoDZPVrO+ecc/Tyyy/rgw8+0Pvvv69XX31Vq1ev1u7du/WXv/zltH+vuLhYTz31\nlJ5//nm99tprSk5O1tKlSzVmzBh9/PHHkqSPP/5YR44c0cGDB/XPf/5T5557rg4fPqxHH31Uy5Yt\n06uvvqrhw4dryZIl0ecdPXq03n77ba1fv17dunXTqlWr9PDDD0dfU13mzZuniRMn6rXXXtPMmTP1\n+9//XiUlJaft8WQnz6y2b99eL730kq699lo99dRTuvDCCzV27Fj94he/IEACQDNGiAQA1DvbtpWe\nnq4uXbpIkjZs2KCpU6fKMAwlJSVp8uTJ+vjjj2UYhvr37x+dsWzfvr0uuOACSVLXrl115MiR7/y1\nTdPUueeeq6uuukpLly7V9ddfr44dO+rjjz/We++9pylTpmjatGnav3+/tm7dKsMw1Lt3b6Wmpp7x\nNVVbv369Jk2apMTERJmmqauuuio6y3ry3/n00081duxYtWvXTpI0bdo0rV+/XkOHDlV+fr4sy9LO\nnTt16aWXauPGjfroo480ZswYbdmyRV9++aWmT5+uKVOm6M9//rN2794dfe6cnBxJUm5urtasWaOf\n/exn2rRpk376059+6+vYuHGjrrjiCkmRIPq73/1On3zyyWl7PJORI0dKkvr166dvvvnmtGMFAGh+\nWM4KAGgQrVq1ir5v27YjWFiWpVAoJElKSEhw/D3TNGP+GoZhRJ+3+vkk6YknntCWLVv0wQcf6Cc/\n+YmWLFkiy7L0y1/+UuPGjZMkff3110pJSdHmzZsdvcbi5Ndj27bj69dmWdZpaxMTE5WRkaH/+7//\nU58+fTRkyBCtW7dOmzZt0i233KJ//vOfys3N1e9//3tJUkVFhcrLy6PPk5SUJEnq2bOn3nrrLX30\n0Ud6//33tWzZMr311lt19p6QkODoZ9u2bTG/nmAw6Pi4etxq/ztUfwwAaL6YiQQANLhhw4Zp9erV\nsixLx48f1+uvv65hw4b92zNW7du319atWyVJ7777riTp0KFDuvTSS9W/f3/9/Oc/1/Dhw1VcXKxh\nw4bpxRdfVCgUUllZmX784x8rLy/ve7+eN954QxUVFQqFQnrllVfqfD1DhgzRe++9p8OHD0uSVq5c\nqWHDhkmSxowZo8cff1xDhw7VkCFD9O6776p169ZKS0tTTk6ONm/erF27dkmKBOOHH374lOd/4YUX\n9Nhjj2nixIm6//779fXXX6usrKzO3s8777zozrlr167V/fff/609Vo+xbdt67733zjg2pmmeEjYB\nAM0LM5EAgHpVPQtVezbqmmuu0c6dO3XFFVcoGAzqiiuu0Lhx47Rhw4Z/a9bqjjvu0IIFC7R06VKN\nGDFChmGoffv2mjZtmq6++molJSWpa9euuvLKK5WYmKhdu3Zp6tSpCoVCuvrqq3X++efrk08+ibmH\n6roxY8aosLBQV111lUKhkEaOHKnp06dr7969jucyDEMZGRm69dZbdcMNNygUCsnn82nevHmSIstJ\n582bpyFDhqht27ZKT0/XmDFjJEkdOnTQgw8+qDvvvFPhcFidO3c+bYi8/PLLNWvWLE2ePFkJCQm6\n4447vnVp7v3336/77rtPL7zwgpKTk7VgwQL17du3zh5nzZql2267TR06dFBubq5j2Wrt11n9ui+8\n8EI9+uijateunSZMmBDTuAIAmhbD5sYFAAAAAECMmIkEADRqN95442k32Lnuuut0zTXX1OvXevPN\nN/X000+f8nnDMPTqq6/W69dqSA899JDWrVt3yuezs7P1wAMPuNARAKA5YSYSAAAAABAzNtYBAAAA\nAMSMEAkAAAAAiBkhEgAAAAAQM0IkAAAAACBmhEgAAAAAQMwIkQAAAACAmP1/Giadi1rbDt8AAAAA\nSUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1101cfdd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"isolate_and_plot('from_user_followers_count')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Plotting Method #3: Create Separate Dataframes for each Condition and Plot Individually\n",
"\n",
"This method might be easier for some people to follow. Notice that in grouped we have two indices; our command `grouped.index.get_level_values(1)==1` is asking for all those values where our second index, `hashtags_binary` has values of 1. If we want to get the first index we would write `grouped.index.get_level_values(0)==`."
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"plt_data1 = grouped.ix[grouped.index.get_level_values(1)==1]\n",
"plt_data0 = grouped.ix[grouped.index.get_level_values(1)==0]"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>retweets_pred</th>\n",
" </tr>\n",
" <tr>\n",
" <th>from_user_followers_count</th>\n",
" <th>hashtags_binary</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>58.00</th>\n",
" <th>0.00</th>\n",
" <td>0.37</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47261.78</th>\n",
" <th>0.00</th>\n",
" <td>0.40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>94465.56</th>\n",
" <th>0.00</th>\n",
" <td>0.44</td>\n",
" </tr>\n",
" <tr>\n",
" <th>141669.33</th>\n",
" <th>0.00</th>\n",
" <td>0.47</td>\n",
" </tr>\n",
" <tr>\n",
" <th>188873.11</th>\n",
" <th>0.00</th>\n",
" <td>0.51</td>\n",
" </tr>\n",
" <tr>\n",
" <th>236076.89</th>\n",
" <th>0.00</th>\n",
" <td>0.54</td>\n",
" </tr>\n",
" <tr>\n",
" <th>283280.67</th>\n",
" <th>0.00</th>\n",
" <td>0.58</td>\n",
" </tr>\n",
" <tr>\n",
" <th>330484.44</th>\n",
" <th>0.00</th>\n",
" <td>0.61</td>\n",
" </tr>\n",
" <tr>\n",
" <th>377688.22</th>\n",
" <th>0.00</th>\n",
" <td>0.65</td>\n",
" </tr>\n",
" <tr>\n",
" <th>424892.00</th>\n",
" <th>0.00</th>\n",
" <td>0.68</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" retweets_pred\n",
"from_user_followers_count hashtags_binary \n",
"58.00 0.00 0.37\n",
"47261.78 0.00 0.40\n",
"94465.56 0.00 0.44\n",
"141669.33 0.00 0.47\n",
"188873.11 0.00 0.51\n",
"236076.89 0.00 0.54\n",
"283280.67 0.00 0.58\n",
"330484.44 0.00 0.61\n",
"377688.22 0.00 0.65\n",
"424892.00 0.00 0.68"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plt_data0"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>retweets_pred</th>\n",
" </tr>\n",
" <tr>\n",
" <th>from_user_followers_count</th>\n",
" <th>hashtags_binary</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>58.00</th>\n",
" <th>1.00</th>\n",
" <td>0.60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47261.78</th>\n",
" <th>1.00</th>\n",
" <td>0.63</td>\n",
" </tr>\n",
" <tr>\n",
" <th>94465.56</th>\n",
" <th>1.00</th>\n",
" <td>0.67</td>\n",
" </tr>\n",
" <tr>\n",
" <th>141669.33</th>\n",
" <th>1.00</th>\n",
" <td>0.70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>188873.11</th>\n",
" <th>1.00</th>\n",
" <td>0.73</td>\n",
" </tr>\n",
" <tr>\n",
" <th>236076.89</th>\n",
" <th>1.00</th>\n",
" <td>0.75</td>\n",
" </tr>\n",
" <tr>\n",
" <th>283280.67</th>\n",
" <th>1.00</th>\n",
" <td>0.78</td>\n",
" </tr>\n",
" <tr>\n",
" <th>330484.44</th>\n",
" <th>1.00</th>\n",
" <td>0.80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>377688.22</th>\n",
" <th>1.00</th>\n",
" <td>0.83</td>\n",
" </tr>\n",
" <tr>\n",
" <th>424892.00</th>\n",
" <th>1.00</th>\n",
" <td>0.84</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" retweets_pred\n",
"from_user_followers_count hashtags_binary \n",
"58.00 1.00 0.60\n",
"47261.78 1.00 0.63\n",
"94465.56 1.00 0.67\n",
"141669.33 1.00 0.70\n",
"188873.11 1.00 0.73\n",
"236076.89 1.00 0.75\n",
"283280.67 1.00 0.78\n",
"330484.44 1.00 0.80\n",
"377688.22 1.00 0.83\n",
"424892.00 1.00 0.84"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"plt_data1"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA5EAAAFpCAYAAAAFjKziAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4U2X6PvD7ZDvZk6YtZRFQlGVGvlZQRhwFgREEFS2K\niIMI+BMUR0ZRNgUVFERAUQcXRBkQFBFFUJFxQRhFxBVQQUYUN3YKbfY95/z+SHLaNN2AktD2/lxX\nr9LmJH1zstC7z/s+ryDLsgwiIiIiIiKiWlBlewBERERERERUfzBEEhERERERUa0xRBIREREREVGt\nMUQSERERERFRrTFEEhERERERUa0xRBIREREREVGtMUQSUVbt3bsXf/rTn1BUVKR8XH311Vi5cuUx\n39bQoUOxdu3aKi9ftmwZVqxYAQDo1asX+vbti6KiIgwYMABXXHEF+vfvj40bN8Lj8Shj6dOnDwoL\nC5Wv58yZU6uxhMNhjBgxAu+//77yvSVLlmD16tWVHr9+/XpMnz79GO5tmb1796JTp041Hvf6669j\n2bJlAIDly5djwYIFx/XzKvv5HTp0wOuvv57y/YULF+Lee++tk58BxB+z7777rs5urzperxeDBw9G\n//798eGHH6ZcNm/ePFx44YUpz9mioiLs2LGj2tvs1asXtm/fji+++AL9+/c/mcPPmpKSEnTo0KHS\nyyZNmoR///vfx3W7tX2OV2XKlCnYvHnzcV+/tj799FP07NkT1113HUKhUMplvXr1SnuOnOhzobLb\nTLr55pvhdDqP+7aJiKqjyfYAiIj0en1KuDp06BD69++Pjh07on379nXyM/bt24fVq1crIRIAHn/8\ncZx99tnK1++//z7uvfdefPrpp8p4vvzySzz88MNVhr/KbN26FdOmTcOvv/6KG264Qfn+jTfeiIED\nB+Liiy9GXl5eynV69eqFXr16He/dq5VvvvkG7dq1AwAMHjy4Tm9bpVJhzpw56NKlC04//XQAgCAI\ndfozACBTWxvv3LkTJSUl+OCDD9IuEwQBV1xxBaZMmXLMt3syzkl9IQhC1u7/8f6B5li9++67GDRo\nEEaPHp2RnwdU/Zr47LPPMvZ6IaLGhyGSiE45BQUFaN26NX777Tfs2LEDb7zxBoLBICwWC1566SU8\n88wzWLt2LdRqNU4//XQ88MADSij76KOPsHDhQgSDQfTv3x+33XYbAOD555/H1VdfnfJzyv+CJcsy\n9uzZg5ycnCqPSVq9ejUWL16c8j1BEDB79my0bdsWL7/8MsaOHYsXX3wx5RiVSoW+ffvihRdeSKvQ\nvfnmm/jggw8wf/585bMgCFCr1ZgwYQLOP/98HDx4EFOnTsW+ffsAAEVFRfh//+//pdzOkSNH8MAD\nD6CkpATFxcVo3rw5nnrqKXzzzTfYsGEDPvvsM4iiiJKSEjidTtx///3o1asXrrnmGmzevBkHDhxA\nv379MH78eADAggULsHLlSphMJpx33nn46KOPsH79+rRzIooiRowYgbvvvhuvvfYatFptyrmbNGkS\n2rVrh5tvvjnt6169eqF///7473//C6fTiTFjxmDLli3YsWMHNBoNnnvuOTRp0gRAvII6bdo0pdJ7\n7bXXAohXcufPn49IJAK9Xo+JEyfi3HPPxbx587Bt2zYUFxejQ4cOmD17dsq4161bh2eeeQaxWAxm\nsxmTJk2CxWLB5MmTcejQIQwYMADLly+HKIo1Pi8AIBKJ4NFHH8Xnn38OlUqFwsJC3HvvvTCZTJUe\n7/F4MG3aNPz4448AgO7du+Puu+/GrFmzYDQacdddd6G4uBjdunXD4sWL0bVrV7z99ttYv349nnzy\nSbz++ut49dVXIcsy7HY77r//frRp0waTJk2C0+nE3r170bNnT1xyySWYNWsWYrEYBEHArbfeij59\n+qSMRZIkPPLII/juu+/g8/kgyzKmT5+Ozp07Y9KkSTCbzdi1axcOHjyINm3aYO7cuTAajfjggw/w\n5JNPQq/Xo2PHjpXez4qGDh2KTp06YcuWLdi/fz/OP/98zJo1C4IgYMOGDXjqqacgSRKMRiOmTp0K\ns9msXHfevHnKc7fi11W9doYOHYobb7wRl112WaWP+TnnnIN58+Zh3759KC4uxv79++FwOPDEE08o\nz72aHuNXX30V69evhyiK8Hg8mDBhQtr9ri7UVfXadTgcWLZsmfK6EkURDz30EM4880wAwGuvvYYH\nH3wQJSUluOqqqzB27Fjl/WXYsGFYsGABdu7cieeffx6RSAQlJSUoKirCnXfeCaDq1/jXX39d43OG\niBovhkgiOuVs3boVf/zxB84991xs2rQJu3fvxvr162EymbBy5Ups3LgRK1euhF6vx9NPP41JkyYp\ngc3v9+P111+H3+/HoEGD8Oc//xndunXDhx9+qATKpHHjxkGv18PpdEKSJHTv3h3PPfdcjeNLTl+s\n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\nt99+O2bNmoWioiJEo1EUFhYqDWAquz9TpkzBww8/jP79+yMcDqN79+7K2t0LL7wQhw8fxpAhQwDE\nw8t//vMfZRroxRdfjFtuuQU333wzBEGAxWLBM888U+kYx48fjxkzZuDJJ5+EIAi444470qZ3Dx48\nGOPGjUNRURGsViv+9re/YdGiRZBlucr77HA48Nhjj2H8+PHQarXo0qVLrTuwVnZcbm4uHnvsMUyc\nOBGxWAwWiwVPPPGEMgYAuOqqq/DJJ5+gT58+KCgoUKbtVvfaSaruMa9p3W5SdY/xiXSgreq1m5OT\ng9GjR2P48OEQRREajaZW3WZ79+6NIUOGYN68eejRowcuv/xy5Ofno3PnzujYsSP++OMPXHTRRWmv\n8WSFuDbPGSJqvASZ/Z+JqBHYu3cv/vnPfx5TpaSuxWIxXHPNNVi0aBEcDkfWxlFb27dvx9atWzF0\n6FAAwKJFi/D9999j7ty5WR4ZEdUFvsaJ6HgxRBJRo7F06VJotdo63yOxthYvXgybzYYBAwZk5ecf\nK6/Xi8mTJyvTRFu0aIGHHnoobcsDIqqf+BonouPFEElERERERES1xsY6REREREREVGsMkURERERE\nRFRrDJFERERERERUawyRREREREREVGsMkURERERERFRrDJFERERERERUawyRREREREREVGsMkURE\nRERERFRrDJFERERERERUawyRREREREREVGsMkURERERERFRrDJFERERERERUa5psD0CSJEydOhW7\ndu2CVqvFjBkz0KpVK+XyNWvWYOHChRBFEX379sXw4cOzN1giIiIiIqJGLuuVyHXr1iESiWD58uUY\nN24cHn30UeWy0tJSzJ07Fy+99BJeffVVfPTRR/jhhx+yOFoiIiIiIqLGLeshcsuWLejWrRsAoLCw\nENu3b1cu27NnDzp06ACr1QpBEFBYWIivvvoqW0MlIiIiIiJq9LIeIr1eL8xms/K1Wq2GJEkAgNat\nW+Pnn3/G0aNHEQgEsHnzZgSDwWwNlYiIiIiIqNHL+ppIs9kMn8+nfC1JElSqeLa12Wy49957MWbM\nGNjtdpx99tnIycmp9vZkWYYgCCd1zERERERERI1V1kNk586dsWHDBvTr1w/btm1D+/btlcui0Si2\nb9+OZcuWIRwO48Ybb8TIkSOrvT1BEFBc7DnZw6Zy8vMtPOcZxnOeeTznmcdznnk855nHc555POeZ\n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\n0HEelPEAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10c141b10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(plt_data0.index.get_level_values(0), plt_data0['retweets_pred'], alpha=0.65)\n",
"plt.plot(plt_data1.index.get_level_values(0), plt_data1['retweets_pred'], alpha=0.65)\n",
"plt.xlabel('# Followers', labelpad=15)\n",
"plt.ylabel(\"P(retweet=1)\", labelpad=15)\n",
"plt.legend(['no', 'yes'], loc='upper left', title='Hashtag Included')\n",
"plt.title(\"Prob(RT=1) isolating \" + \"Number of Followers\" + \" and Inclusion of Hashtags\", y=1.05)\n",
"yticks(fontsize = 10)\n",
"xticks(fontsize = 10)\n",
"savefig('predicted probabilities example (seaborn).png', bbox_inches='tight', dpi=300, format='png')"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"<br>Let's repeat with `mpl` style."
]
},
{
"cell_type": "code",
"execution_count": 234,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 0., 50000., 100000., 150000., 200000., 250000.,\n",
" 300000., 350000., 400000., 450000.]),\n",
" <a list of 10 Text xticklabel objects>)"
]
},
"execution_count": 234,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA5QAAAFpCAYAAADjpWemAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt8U/X9P/BX0jb35t4rpS0gULkVEbmoUKg38IYg1wko\n/JgOBa8oMGWoiKjMC+hwbshlDnUDRbbh5hAVb3gbKurXG8pNoC1tkzRJc2mSz++PpIemN9rSJr28\nno9HH22T05NPTnOSvPL+XGRCCAEiIiIiIiKiZpLHuwFERERERETUMTFQEhERERERUYswUBIRERER\nEVGLMFASERERERFRizBQEhERERERUYswUBIREREREVGLMFAStTMHDx5EIBCIdzPqVVxcDJfLFe9m\nEBEREVE7wUBJXdLHH3+Mfv36oaCgAKNHj8akSZPw9ttvt/rtLFmyBE899VSTt//www+xZMmSqND2\n6quvYsCAASgoKMCoUaMwbtw4bNmyRbr+6aefRkFBAQoKCnDuuefinHPOkX5funRps9r76aef4je/\n+Q3OPvtsHD16tM71J06cwLx583Dy5Mlm7bchN998M/bv398q+6rtueeeQ0FBAc4555xm/Q/qU1hY\niL179za6TXFxMWbNmgWPx3NGt9VSTz/9NIYMGQKbzSZdtmjRIjzzzDOtfjt33313q+6zrR07dgwT\nJ07E6NGjUVhYiB9//LFZf19YWIiRI0dK51VBQQHeeOONZu3jgQceQEFBAQYOHIitW7fWud7v96Og\noAAXXngh8vLyEAqFmrV/Cjt8+DDy8vKa/Xc33HCDdOwLCgqwYsWKVm/bxx9/jIKCAgwfPhy/+tWv\nWn3/9WnL59jW9PXXX2PcuHEoKCjAJZdcArvd3uS/rT6uNc2aNave8+xMvPrqq036v/3yyy88h6nL\nSYx3A4jiJSUlBXv27AEA7NmzB7fffjtee+015OTktNptyGQyyGSyJm179OhRLFu2DC+//DKMRmPU\ndfn5+VKIPHz4MK677jrk5ubiggsuwMKFC7Fw4UIAwDPPPIMjR47gsccea1F7V61aheuvvx7vvPNO\nvdcPHjwY8+fPx6JFi7Bp06Ym37eGrFu37oz+vjE33XQTbrrpJixduvSM29kUaWlpeOGFF9r8dhpT\nWVmJ9evXS4GvLe53cx7T7cV//vMfmM1mbN++vcX7eOKJJzBy5MgW//3y5cuxfPlyzJo1q97jp1Ao\n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\nnREjRkhjTjMzMzF//nypR0i1hIQETJo0CZMmTYLT6cQtt9yCP//5z1iwYEGrtZWoOdjllaiFpk2b\nhtdee00a2P/9999j06ZNURMoCCHw8ssv44svvgAAvPLKK1JX25r69+8Pq9WK//3vf43eZkJCAn7/\n+9/jX//6V70Vx9YIC9X7aGxfn3zySZ370JpOnDghBfFQKIRAIBBVwZ0+fTo2bNggdbf75JNP8I9/\n/ANTp06ts6+Gujt6vV44HA706dMHQHiihLfeegtVVVV1tjUYDPj6668BADabDV6v94zvY802bdiw\nAQaDAXv37sWOHTvqvNFp7v4sFgsmTZqETz75JGqb9PR0/PDDDwDCVfGaE7U0x65du/Dmm28CAN5/\n/33s3btXenMkk8lwww034N5775U+YRdC1Jkw4kwfq2PHjoXD4cDmzZshhIDdbscjjzwideNrzds6\nnenTp2Pt2rUoKioCALz++uv44osvpGPSkvbU3kYul2Pq1Kl45JFHUFFRgVAohA0bNqCyshJjx44F\nEO42qlarUVpaihEjRmDy5Ml4++23pe6uADBhwgTs3bsXr732mlRZcblcza6y/PLLL1IbA4EAgsFg\ns7t3FhUVITs7G0qlUnr+bMoavNW3K5fLMX78eDz99NMIBAIoLy/HypUrm9WGxvbf1MuBcBfY3r17\n4+6775aq9V6vt9kTpdQ8R0tLS+vtKl5zIqZgMAiZTIakpKQm30Zzzp0zMWHCBHz66af473//CwA4\nfvw4nn766ZidozX3WVRUhJSUFFgsFpSXl0sfqNR8vJ3udaepqqvs1a8ZNSuyTXndef3113HkyBF8\n8MEH2LlzZ73Hq6SkROr1EQqFWnT+EbUmViipy2pK1aKxbfr164fHH38cDz/8ME6ePAmDwYC77747\nqmomk8lwxRVXYP369fjiiy+g0+mwZs2aOk/8CQkJ+PWvf42NGzfi3HPPrdOGmu3IysrC/fffj/vu\nuw8DBgxARkZGg9s2x/Hjx6UZXmUyGSZOnIiEhATs3LkzauZZt9uNnTt3nnGXysa8+OKL2LFjB2Qy\nGVQqFaZMmYLx48dL11988cVwOp247bbbUFFRgdTUVKxZs6be9edkMhleeOEFbN++HXfccQeuueYa\nAOFxR/fddx/mzZsHlUqFUaNGYcqUKfV2/bv55pvx4IMP4qWXXkJqaioefvjhervGNnTs67u85mXp\n6el49tlncdFFF0n/w+r/c82qV2Nq/+/nzZtXZ0zpr3/9a9xxxx2YNWsWLBYLhg8fjv/7v/9r0r5r\n/jx27Fjs3r0bK1asgEwmwyOPPBI1/viWW27BX/7yF8ydOxdutxuJiYmYMmUKbrrppgbb21xqtRob\nN27EypUrsWHDBiQlJeHyyy+XltCp3f62rFLOnj0bVVVVuP7661FZWYns7Gw8//zz9c7YDAC///3v\n8cwzz+DRRx/FiBEj6t2msLAQRqMxahzmokWLsHbtWkyaNAlVVVXo27cvNm7cGNXNLTc3F1dccQWA\n8AchEyZMgMFgkK43m834y1/+gsceewxr1qyBTCaDyWTCH/7wB6Snp0vbne54rV27Fh999BHkcjmS\nk5Nxzz33YNCgQac/WDUsWbIE9957LzZu3Ii8vDzMmTMHa9eujdrmdOfO4sWLcffdd+P8889HVlYW\nZsyY0eiMzw254YYbcODAAchkMml24mXLljXaltq/r1+/Hn/4wx8wY8YMeL1eqFQq/Pa3v60zNEIm\nk+Grr75CQUEBxowZgwceeEC67rbbbsN9992HPXv2ICUlBRdccAE++uijqL+/9957cfDgQcjlcqSk\npGDNmjXS+N2maMq50xrnTFpaGjZs2IBHH30UDz30ENRqNWbMmFHvWo5nenune5zMnTsXt99+O0aN\nGoWMjAzcdttteOutt1BcXCxV8E/3utPUNur1etx000349a9/Db1ej549e+LZZ5+FXC5v0uuOxWLB\ngQMHcOmllyIhIQEymQwpKSlYvHixVKn873//i+effx6hUAiJiYkYP3485syZ0+LjR3SmZKKtP7ol\noia75ZZbMGLECMyaNSveTalXMBjEokWLcMEFF2Dy5Mnxbk6n8fzzz8Nut+OOO+6AXC5HMBjEPffc\nA6PRWOdNLRERdV7/+te/8OGHH2L58uVQKpUQQuD3v/89fvrpJ/zxj3+Md/OI6sUur0TtyJo1a/Dj\njz+2eIbOtvb222/j/PPPZ5hsZa+//jry8vKkySH+97//4bPPPsN5550X55YREVEs/fe//0Vubq40\nwdN3332Hd999l68H1K6xQklEFGdfffUVVq1aJY216dGjB2bPni2NjSMioq7hyJEjePDBB6U5AtLT\n0zF9+nRpuAZRe8RASURERERERC3CLq9ERERERETUIgyURERERERE1CIMlERERERERNQiDJRERERE\nRETUIgyURERERERE1CIMlERERERERNQiDJRERERERETUIgyURERERERE1CIMlERERERERNQiDJRE\nRERERETUIonxbgAA7N+/H9u2bQMATJ06FQMGDGhw2127duGdd96BSqXCvHnzkJGREatmEhERERER\nUQ1xD5ShUAhbt27FsmXLAAArV65E//79IZPJ6mzr8/nwzjvvYOXKlaioqMD69etx5513xrrJRERE\nREREhHbQ5bWoqAgZGRlQKBRQKBRIS0tDUVFRvdsKIRAIBFBVVQWtVgu73Y5AIBDjFhMRERERERHQ\nDiqULpcLGo0GmzZtAgBoNBo4nc56u7KqVCpMnDgRDz/8MNRqNdxuNyorK6HX62PcaiIiIiIiIop7\noNTpdKisrMS8efMghMD69esbDYgjRozAiBEjAACLFy9udNvdu3e3enuJiIiIiIg6kosuuqjN9h33\nQJmeno4TJ05IvxcVFSE9Pf20f7dv3z7k5OScdrshQ4acUfuoeUwmE2w2W7yb0aXwmMcej3ns8ZjH\nHo957PGYxx6PeezxmMfevn372nT/cQ+UcrkckydPxooVKwAAU6ZMka7bu3cvlEplVCh89tlncfz4\ncahUKixcuDDm7SUiIiIiIqKwuAdKAMjPz0d+fn6dy0eOHFnnsvnz58eiSURERERERHQacZ/llYiI\niIiIiDomBkoiIiIiIiJqEQZKIiIiIiIiahEGSiIiIiIiImoRBkoiIiIiIiJqEQZKIiIiIiIiahEG\nSgBz5syp9+cz2U9tr732Wov3ezrbtm3DtGnTMGXKFGzbtq3F+1mxYgUmTpyIDz74oNl/29zjdibH\nmYiIiIiI2od2sQ5lV7Bjxw5cc801bbLvyZMnQ61Ww+PxYPLkyS3ez7Jly7B+/fpWbBkREREREXVm\nDJSN+Ne//oU9e/bg+PHjuPrqqzFt2jQA4YrgG2+8AblcjiuuuAJXX301AKCqqgpr1qzB/v37MXTo\nUMyfPx8A8MADD+Dw4cO4+eabMXToUMydO7fR/a9btw6ffvopkpKSoFAocO+99yIjI6PZ7b/uuusw\nbNiwOu355ptv8OyzzyIYDCIjIwO/+93vGt3PnDlzsHHjxjo/b968Ge+88w569OiByspKafu9e/di\nw4YNAIAZM2agsLCw0e2JiIiIiKhjYqAEpLAHAGVlZdLl48aNw5VXXgm/34+5c+dKge+tt97CE088\ngeTk5Kj9VFRUYObMmTAajZg9e7YU4JYvX445c+Zg3bp1Uds3tP+PPvoImzZtwl//+ldkZGS0KEwC\ngNPprNMeIQQee+wxPPHEE7BYLC3aLwCUlpbivffew/PPPw+Px4PrrrsOABAKhbBu3Tr86U9/QlJS\nEhYsWIBRo0bB4XDUuz0REREREXVcDJQAcnJypLBXc2zf559/jg8++ABqtRper1e6/P7778f27dvh\ncDgwevRo5OfnAwAsFosU0hQKxWlvt6H9X3nllZg6dSp69ep1Rt1k62uP3W6H2Ww+ozAJAEVFRcjL\ny4NcLodWq4XJZAIA2Gw2lJSU4K677gIQDrUlJSWw2+31bk9ERERERB0XA2UjnnzySWzZsgVFRUXY\ntWuXdHlqaipmz54Nn8+HG2+8EZs3bz7tvqqqqhAKhSCXn5oHqb79CyGwd+9evPjii00KpdWEEE3a\nzmg0oqysDCUlJUhNTW3S34RCIQCA1+uVgm+3bt3www8/IBQKoaKiAqWlpQAAs9mM3NxcrF69Glqt\nVtqHVqutd3siIiIiIuq4GCgByGSyen8eNGgQbrzxRvTp0wcGg0G6/KmnnsIPP/wAt9sdNQlOQ/sB\ngGHDhuHOO+9ERkYGFi9e3OD+ZTIZhBBYuHAhEhISkJKSgnvuuScqnNW2bds2bN26VQqV1W2qrz0y\nmQxLlizB/fffDyEEzGYzVq5cGbW/devW4dChQ1K31H79+mHt2rVQq9XSfkwmE0aNGoX/9//+H3r2\n7Cl1/5XJZLj55puxaNEiyGQyWK1WPPjggzAajfVuT0REREREHZdMNLW01QHt3r0bQ4YMiXczmsXl\ncuH555/HggULIJfLsXTpUsyaNQv9+/ePd9OaxGQywWazxbsZXQqPeezxmMcej3ns8ZjHHo957PGY\nxx6Peezt27cPF110UZvtnxXKdkahUOD48eO45ZZbAIQrmx0lTBIRERERUdfCQNnOKBQKPProo/Fu\nBhERERER0WnJT78JERERERERUV0MlERERERERNQiDJRERERERETUIgyURERERERE1CIMlERERERE\nRPUQQsDrqUIo1GlXWjxjnOWViIiIiIi6nEBVEC6nD26nD64KH9wuH9wVPukytzP8c2KiHIVXnY3e\n/dLi3eR2iYEyBhbu+B5H7d5W2193owpPT+jb4PXXXXcdhg0bhv3792Po0KGYP38+AGDnzp147bXX\n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\nQAkAmPUGBwfl9/slST09PYUANhkej0ePP/74Wdf/93//V0uXLpVt25KkT37yk3r55ZeVSCRkGEbR\nY3333Xe1bt26wpbc9evX69lnny0Eyg8++ED/9m//pu9///v61re+pZMnT6q5uVlSbsU0Go3qpz/9\nqSQpnU5raGhINTU1hfffuHHjWZ+zurpaV155pZ5++mldffXVuuGGGwr1AgDgUhAoAQCz2ltvvaU3\n3nhDw8PDeuKJJ3TgwAG98MILWrx48SVtea2oqJDjOOOuOY6jioqKSx2ystnsuPccEwwGdeLECf3q\nV7/SV7/6Ve3evVvJZFLV1dWSJJfLpa9//esyTfOiP+e2bdsUjUb1zjvv6Bvf+IYeffTRwnZYAACK\nRdsQAMCstnbtWl1zzTXasmWLtm3bpqVLl+pb3/rWJd8/uWTJEu3fv18nTpyQJL399ttauHChvF7v\nJb3vVVddpX/9139VOp2WJO3evVurV6+WJNXW1urIkSNqaGjQypUrdezYMfl8vsJrr7nmGr366quF\nx6cH0wvJZrMKBAK65ZZb1NzcrCNHjlzSnwMAAIkVSgDAHLB//351d3fr/fff17Jlyy7qtROtONbW\n1uov//IvtWPHDlVUVMjn8+nBBx8863mpVEqPPfaY1qxZo8985jNnffyFF17QJz7xCX3xi1+UJF1x\nxRWFdiIul0vt7e264447Cs+3LEvd3d2SpJtvvll79uwpfOzee+/VK6+8okceeURut1vBYFBf+tKX\nLvhncRxH27dvVyaTUTqd1vLlyyfVGgUAgAupcM7czwMAAAAAwCSw5RUAAAAAUBQCJQAAAACgKARK\nAAAAAEBRCJQAAAAAgKIQKAEAAAAARSFQAgAAAACKQqAEAAAAABTl/wPXfTZIvRWUawAAAABJRU5E\nrkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x117fe1490>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pd.set_option('display.mpl_style', 'default') # MPL style\n",
"plt.rcParams['figure.figsize'] = (15, 5)\n",
"\n",
"plt.plot(plt_data0.index.get_level_values(0), plt_data0['retweets_pred'], alpha=0.95)\n",
"plt.plot(plt_data1.index.get_level_values(0), plt_data1['retweets_pred'], alpha=0.95)\n",
"plt.xlabel('# Followers', labelpad=15)\n",
"plt.ylabel(\"P(retweet=1)\", labelpad=15)\n",
"plt.legend(['no', 'yes'], loc='upper left', title='Hashtag Included')\n",
"plt.title(\"Prob(RT=1) isolating \" + \"Number of Followers\" + \" and Inclusion of Hashtags\", y=1.05)\n",
"yticks(fontsize = 10)\n",
"xticks(fontsize = 10)\n",
"savefig('predicted probabilities example (mpl).png', bbox_inches='tight', dpi=300, format='png')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>Now with `ggplot` style."
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA5EAAAFsCAYAAABVQT1RAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4U2X/BvD7ZLbp3qVQNlIFWcp6RUHAwUZ5QUBxFPwx\nHCyZAg6qMkRlKogCFVR4ZY8XeV0IKFMRVISyaUvpXknTrPP7I8lpkqaD0YTS+3NdvUqTk5PnnJyW\n3Hme5/sIoiiKICIiIiIiIqoEmbcbQERERERERNUHQyQRERERERFVGkMkERERERERVRpDJBERERER\nEVUaQyQRERERERFVGkMkERERERERVRpDJFEN07VrV8TFxUlfzZo1Q+fOnTF37lzodLob3u/UqVMx\nY8aMCrdbvXo1Fi9eLD3GsS1xcXFo2bIlevXqhW+++QYAcOjQoVLbOH5169btutu6Y8cODBgwoFS7\nlixZUu7jhg0bhnnz5l3387lavHhxqecvz//+9z+kpaUBKDkfRUVFN90Od7p27Yr+/fvDbDY73a7V\nahEXF4cjR45UyfNW9vqpShkZGRg8eDBatGiByZMnl7p/8eLFZV6HW7ZsqXD/ycnJiIuLw9mzZwEA\ncXFx2Lt37y0/jurm+eefL/N3z/Wc3Yzr/b0ry61s0404d+4c+vTpg3vvvRcffvhhqfunTp2KV199\n1e1ju3btinXr1t10Gyrzd+jw4cP4559/bvq5iOj2pPB2A4jI8yZMmCC9mTKbzTh37hwmTZqEgoIC\nJCQk3NA+BUGAIAjlbnP16lUkJiZi586d0mMefvhhp+fMy8vD+vXrMXPmTDRs2BBt2rTBgQMHAACi\nKGLEiBH417/+heHDhwMAZLLr+yzswIEDmDFjBho3bux0+9ChQ9G7d2/07t0b9evXd/vYpUuXQqHw\n7J/NlJQUvPLKK9ixYwcASOfD19e3yp7zn3/+werVq6Vz7AmVuX6q2jfffIOUlBRs3boVQUFBbre5\n++67sXLlylK3+/v7V3Xz7ljeft2vV0xMDA4cOIDg4GCvPP+qVaugUCiwa9cuBAYGlrr/dvhdAoBn\nn30Wy5cvR1xcnLebQkRVgD2RRDWQn58fwsLCEBYWhsjISHTs2BHPPvssvv322yp93s8++wyPP/64\nFIBEUYRSqZTaEhYWhoYNG2LatGmoW7cu9uzZ43R/eHg45HI5NBqNdFtISEiln3/u3LkYNWoU6tat\nW+o+lUqFfv36Yfny5WU+PjAwEBqN5voP/CaIouj03X4+qlLt2rWxZMkSpKSkVOnz3G7y8/NRv359\nNGjQAKGhoW63kclkTter/UutVnu4teQt9mtALpd75fnz8/PRtGlTxMbGuv2wQxRF6e+Ft90u7SCi\nW48hkogAAHK5XHojvHjxYowYMQLDhw/H/fffLw3VW7t2LR577DG0aNEC/fv3LzUULz8/H6+88gpa\ntmyJRx55xGmIn06nw+bNm/Hoo486PaasT8wVCkWl36TZh5e5+5o2bZq03aFDh5CYmIhHH33U7Zub\nRx55BDt37kRubq7b5xk2bBjmzp0LALh27RpGjRqF+++/H23btsXYsWORnZ0tbfvrr79i0KBBaN26\nNbp27YrPPvuszPZv27ZNGp523333YcyYMcjKygIAdO/eHQDQp08fLFmypNQwsri4OGzevBlPPvkk\nWrRogX79+uH48ePSvlNSUjB8+HC0bt0ajz32GNavX19hz8CwYcMQExODN998s9xt7OfCznF45tSp\nUzFnzhxMmzZNOgd79+7Fli1b8PDDD6Nt27aYNWuW0+PLu34AYMuWLXjsscfQqlUrPPnkk07X39Sp\nU/Haa69h4MCBaN++PX799ddSbTYYDFiyZAm6deuGFi1aYOjQoThx4oT0+FWrVuHIkSM3NWw3MzMT\nU6ZMwb/+9S/cd999GDduHDIyMip8XHlte/fddzFixAhp2927dyMuLk66HwB69OiBrVu3AgD27t2L\nfv36oWXLlujduzc2bdokbefud/vs2bMYNmwYWrdujY4dO2LGjBllDlM0mUz48MMP0bVrVzRv3hwP\nPPAA3n33XVgsFmn/L7/8MubMmYP27dujbdu2SEhIkO4HrEPHO3fujNatWyMhIaHU0OnyVGb/X331\nlXSdDBo0CL///nup/WzatAkdOnRwus1xGKjJZMLs2bPRqVMntGzZ0un1cB3OWlhYiISEBHTu3Bmt\nWrXCiBEjcOHCBWm/Xbt2RWJiIoYNG4YWLVrgsccew48//ljmMZa3v2HDhmHPnj3YsmUL4uLikJqa\n6nYfle2JXL16NR577DE0b94c7du3x5QpU6TXvrCwEBMnTkT79u3RunVrjBgxApcuXXJ6/NatW9G1\na1e0bNkS8fHxuHbtmnTMADBq1Cjpb/C+ffswaNAgtGzZEq1atcJzzz2HixcvSvv6559/MGTIELRs\n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\nno2jR4/iwoULXmwtERERERFRzeb1EHn69Gm0atUKANCkSROcP39euu/atWuoV68e/Pz8IAgCmjRp\nglOnTnmrqURERERERDWe10OkTqeDRqORfpbJZLBYLACA6OhoJCcnIy8vD8XFxfjzzz9RXFzsraYS\nERERERHVeF6fE6nRaFBUVCT9LIoiZDJrtvX398dzzz2HBQsWwN/fHw0aNEBAQIC3mkpERERERFTj\neT1ENm3aFMeOHUPHjh1x5swZ1K1bV7rPbDbj3LlzePvtt2E0GvHmm2+iX79+Fe4zNTW1KptMLmJi\nYnjOPYzn3PN4zj2P59zzeM49j+fc83jOPY/n3PNiYmKqdP9eD5Ht2rXDiRMnMHPmTADA6NGjsX//\nfuj1enTv3h0ymQxTpkyBTCbDI488gqioKC+3mIiIiIiIqObyeogUBAEvvvii022Oyfnf//43/v3v\nf3u6WUREREREROSG1wvrEBERERERUfXBEElERERERESVxhBJRERERERElcYQSURERERERJXGEElE\nRERERESVViND5PHjxzF79myn21asWIHdu3df135Wr16Nbdu2lbp93759yMrKuqk2Dh48GEajscoe\ns3DhQhw/frxS265fv/66zw0REREREd2ZamSIdEcQhFv2mE2bNkGr1d427fHktkREREREdGfz+jqR\ntwtRFAEAFosFCxYsQEZGBrKysvDAAw8gPj4eP//8M77++msoFAqEhYVh1qxZEEURv/zyC/bu3Yv8\n/HzEx8dDEAScPXsWc+bMwaJFi7Bq1SqcOXMGeXl5aNSoEaZMmYK8vDwkJCTAaDQiNjYWv//+O9au\nXeu2TatXr0ZaWhpyc3ORlpaGl156CW3btsWvv/6KxMREiKKIJk2aYMKECdJj5syZg65du6Jdu3Y4\nfPgwfvzxR0yZMgXbtm3Djh07EBwcDL1ej86dO8NkMuGDDz5ASkoKRFFEfHw8WrVqhf379yMxMRFB\nQUEAgG7dunnuxSAiIiIiottWjQ2Rv//+O8aPHy/9fPXqVbzwwgtIT0/HPffcg169esFgMGDQoEGI\nj4/HDz/8gMGDB+Ohhx7Cnj17oNVqIQgCwsPD8dprr+H48eP4+uuvMWfOHDRu3BgTJkyAwWBAQEAA\n5s+fD4vFgvj4eGRmZmL9+vV48MEH0bdvXxw7dgxHjx4tt60qlQpz5szBsWPHsGHDBrRp0waLFi3C\n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\nNU891jz1WPPUY81TjzVPPdY89Vjz1GPNpxfX74msqqrS/v37JUn19fVasGBB7LFgMKht27Yp9uyw\n3AAADKpJREFUFArJsixlZ2ePCpgAAAAAgNSxjDHGzQkYY2LVWSVp8+bNamhoUF9fn9atW6cXX3xR\ne/fuVVpamhYuXKgvfvGLsizLzSkDAAAAwIzleogEAAAAAEwdnA0FAAAAACSMEAkAAAAASBghEgAA\nAACQMNdbfEwU27ZjBXoyMjK0adMm+Xw+t6c1Jd1xxx2x3p1er1ef+cxntGvXLnk8Hs2fP1833nij\nLMvSiy++qJdeekkej0fXXHONVq9erYGBAT366KPq6upSdna2br75ZhUWFqq+vl4/+tGP5PF4VF1d\nrWuvvdblV+m+d999V//6r/+qbdu2qbm5OWlr/Oyzz2r//v1KS0vTF77wBVVWVrr8yt0zfM1PnDih\n+++/X2VlZZKk9evX67LLLmPNJ1AoFNL3vvc9BQIBDQ4O6rOf/awqKiq41pNorDWfO3eu7rvvvlh5\nfa71iWXbth577DE1NTXJsixt3LhRGRkZXOdJNNaah0IhrvMUOHfunO68807ddddd8ng8XOcpMHzN\n+/v7J891bqaJffv2mV27dhljjKmvrzf333+/yzOamvr7+83tt9/u+Np9991n3n77bWOMMd///vfN\nq6++as6ePWtuu+02Mzg4aHp6emIf/+IXvzDPPvusMcaYX//61+app54yxhizdetW09LSYowx5pvf\n/KY5ceJEyl7TZPTcc8+Z2267zXzta18zxiRvjX/3u9+Zuro6Y4wxra2t5s4770zxK508Rq75iy++\naH7xi184xrDmE2vv3r3m6aefNsYY09XVZW666SZz//33c60n0Vhr/tJLL3GtJ9Fvf/tb873vfc8Y\nY8zbb79t7r//fq7zJBtrzbnOk29wcNB861vfMrfeeqs5c+YM711SYOSaT6b3LtPmOOuxY8dUU1Mj\nSVq2bJkaGhpcntHUdPLkSfX392vHjh269957VV9frxMnTujCCy+UJF188cU6dOiQjh8/rqqqKqWn\npys3N1c+n08nT57U0aNHY38ONTU1OnTokHp7exUKheT1eiVJ1dXVOnjwoGuvcTLw+XzaunWrTLQ4\ncrLW+NixY1q1apUkqbi4WLZtq6ury4VX7L6Ra97Q0KA333xT27Zt02OPPaa+vj7WfIJdeuml2rBh\n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\nFyUPJVN1AAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10c567850>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mpl.style.use('ggplot')\n",
"\n",
"plt.plot(plt_data0.index.get_level_values(0), plt_data0['retweets_pred'], alpha=0.75)\n",
"plt.plot(plt_data1.index.get_level_values(0), plt_data1['retweets_pred'], alpha=0.75)\n",
"plt.xlabel('# Followers', labelpad=15)\n",
"plt.ylabel(\"P(retweet=1)\", labelpad=15)\n",
"plt.legend(['no', 'yes'], loc='upper left', title='Hashtag Included')\n",
"plt.title(\"Prob(RT=1) isolating \" + \"Number of Followers\" + \" and Inclusion of Hashtags\", y=1.05)\n",
"yticks(fontsize = 10)\n",
"xticks(fontsize = 10)\n",
"savefig('predicted probabilities example (ggplot).png', bbox_inches='tight', dpi=300, format='png')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>And finally with `538` style."
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n9tprqRMcqqurdfnll2v58uVav369LMvSaaedpgULFkiSWlpadN9996mvr08ej0dLlixRdXW1JOm5\n557T6tWrFYvFNGvWLH3+85+Xy+VSOBzWsmXL9OGHH8q2bZ1//vm7nSyBTLZt695771VdXZ1OO+00\nWZY1anOyZcsWPfjgg+rv71dJSYn+5V/+RRMnThyzv4tstOv8SNK3v/1tlZaWpl6zcOFCHXfccczP\nGHjppZe0atUqGYah/Px8feELX9DkyZN5D2WRPc3RlClTeB9lib/+9a9au3atDMNQZWWlLr30UhUW\nFvIeyhJ7mp8JEybw/slCb7zxhu69917dfvvt/C6XhdLnR8ru3+Vc119//Q9G5q8he/T09Oi2227T\nt7/9bZ199tl6//339fbbb2vu3LljPbSD0sqVK3XppZdq0aJFWrBggY466iitWbNGW7du1XXXXaeP\nfexjWrZsmerr61VaWqr/+Z//0ac+9Sl96UtfUmlpqe6//3594hOf0LZt2/Sb3/xGN9xwg04//XS9\n/PLL6ujo0GGHHabHHntMkvStb31L8+fP15133qljjjlGXq93jH/67NTU1KT//d//1TvvvKOZM2dq\n2rRpozInxx57rNxut2699VYtXrxY559/vsLhsFavXq3jjjtujP9Wssee5qe5uVlvvvmmbrrpJi1Y\nsEALFixQXV2dJDE/o6y5uVm/+tWvdP311+u0007TxIkT9etf/1r5+fnasmUL76EsMNgczZkzh/dR\nFnj//ff18MMP68Ybb9Spp56q999/X+vWrVNXVxf/H8oCg81PVVUV758s09LSonvuuUfhcFhnnHEG\nv8tlmV3nJ9t/l8uJrQHr169XfX29/H6/JOmUU07Ryy+/PMajOjhFIhF98MEHWr16tW666Sbddddd\n6ujo0JtvvqkTTzxRpmnK5/PpmGOO0csvv6yuri61tLTo2GOPlSTNnj1b4XBYH3zwgd58803NmzdP\nRUVFMgxDJ598sl566SVJ8WzbySefLEkqKyvTrFmz9Oqrr47Zz53tnnnmGZ100kk6+uijU8+98cYb\nIz4nr7zyit577z15vV5NmzZNknTSSSdpw4YN6uvrG+W/hey1p/l59913ZZqm/vu//1s33XSTnnzy\nSVmWxfyMgby8PF122WUqLi6WJE2ZMkU7d+7Uq6++ynsoSww2R5s3b+Z9lAWmTJmim2++WR6PR5FI\n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\nQ2+//bb+8Ic/6M4779RPf/rTva6iAAAgl9BCFwCALFNbW6udO3eqoaFBU6ZM0eTJk9XV1aXZs2dr\nypQp+2wWuC/J6vjf//73jOdfeeUVWZalww47bJ/XmD59+pCuUVxcrKlTp+rZZ59VV1eXZs6cmfrz\nr776qt5//33NnTs347rbt29XXV1d6medMmWK1q5dq1deeWXQ8USjUd14441avXq1pPhKhZNOOkkL\nFixQMBhUKBTa588EAECuYEUAAABZ6KOPPko10GttbVV/f/9ue+IHs+tpAbuqqanRCSecoJUrVyoS\niWj69On68MMPtXLlSk2fPj0jMB/s2pMmTRryNebOnasnnnhC5eXlqT4FM2fO1IMPPiifz6eGhobU\na8866yzdcsstuv322/WJT3xC+fn5eu655/Tqq69qyZIlg47L7XbrsMMO08qVK+VyuVRXV6eOjg49\n/fTTmjlzZmoFAwAAIBEAAEDW6ezsVCAQSB2v99FHH6m0tDTVRX9vDMOQYRj7fN1ll10mv9+v559/\nXqtWrVJJSYk++clP6uyzz079+V2vtevjoVxDGkgEpO/TT349e/ZsmebAAsW6ujpde+21euyxx3TP\nPffIsixNmjRJX/3qV3XUUUft9Wf64he/qMLCQj399NPq7u5WYWGhjjzySC1atGiffx8AAOQSo7u7\ne+9lAwAAAAAAcNCgRwAAAAAAADmERAAAAAAAADmERAAAAAAAADmERAAAAAAAADmERAAAAAAAADmE\nRAD+fzt2IAAAAAAgyN96kAsjAAAARkQAAAAAjIgAAAAAGBEBAAAAMBLnNSG2YQ06QgAAAABJRU5E\nrkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10c64ce90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mpl.style.use('fivethirtyeight')\n",
"\n",
"plt.plot(plt_data0.index.get_level_values(0), plt_data0['retweets_pred'], alpha=0.75)\n",
"plt.plot(plt_data1.index.get_level_values(0), plt_data1['retweets_pred'], alpha=0.75)\n",
"plt.xlabel('# Followers', labelpad=15)\n",
"plt.ylabel(\"P(retweet=1)\", labelpad=15)\n",
"plt.legend(['no', 'yes'], loc='upper left', title='Hashtag Included')\n",
"plt.title(\"Prob(RT=1) isolating \" + \"Number of Followers\" + \" and Inclusion of Hashtags\", y=1.05)\n",
"yticks(fontsize = 12)\n",
"xticks(fontsize = 12)\n",
"savefig('predicted probabilities example (538).png', bbox_inches='tight', dpi=300, format='png')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br>\n",
"\n",
"For more Notebooks as well as additional Python and Big Data tutorials, please visit http://social-metrics.org or follow me on Twitter <a href='https://twitter.com/gregorysaxton'>@gregorysaxton</a>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment