{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction to statistics for Geoscientists (with Python)\n", "### Lecturer: Gerard Gorman\n", "### Lecture 6: Bivariant statistics and scatter-plots\n", "### URL: [http://ggorman.github.io/Introduction-to-stats-for-geoscientists/](http://ggorman.github.io/Introduction-to-stats-for-geoscientists/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So far have looked at univariate statistics, i.e. one variable forming one distribution. **Bivariate statistics** look at two variables, e.g.:\n", "\n", "* Total Organic Carbon (TOC) of rock sample AND fossil diversity.\n", "\n", "The idea is to look for relationship between variables, e.g.:\n", "\n", "* Is the fossil diversity lower when the TOC is higher?\n", "\n", "If we can show there is a relationship, then we can start to look for possible causes. To study bivariate problems visually we use scatter plots." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Scatter plot example: Does Dorset fieldwork marks predict overall year performance?\n", "\n", "Here we are going to create a scatter plot of two variables (you will need to download the data file [first_year_marks.csv](https://raw.githubusercontent.com/ggorman/Introduction-to-stats-for-geoscientists/gh-pages/data/first_year_marks.csv))." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Field Mark,Overall Year\r", "\r\n", "50,56.5\r", "\r\n", "75,71\r", "\r\n", "70,75\r", "\r\n", "60,66.8\r", "\r\n", "65,55.5\r", "\r\n", "75,68.5\r", "\r\n", "55,58.8\r", "\r\n", "60,80.5\r", "\r\n", "65,82.5\r", "\r\n", "75,71.8\r", "\r\n", "75,55.5\r", "\r\n", "65,71\r", "\r\n", "65,66.5\r", "\r\n", "65,74.3\r", "\r\n", "50,55.3\r", "\r\n", "65,58.3\r", "\r\n", "70,66.5\r", "\r\n", "45,70\r", "\r\n", "70,63\r", "\r\n", "55,75\r", "\r\n", "55,71.8\r", "\r\n", "40,58.5\r", "\r\n", "65,68.5\r", "\r\n", "70,72.3\r", "\r\n", "80,68\r", "\r\n", "70,72.3\r", "\r\n", "70,64.5\r", "\r\n", "70,54.3\r", "\r\n", "65,75.3\r", "\r\n", "55,61\r", "\r\n", "80,76\r", "\r\n", "75,66.8\r", "\r\n", "50,62.8\r", "\r\n", "65,73.5\r", "\r\n", "65,75.8\r", "\r\n", "65,68.5\r", "\r\n", "60,69.3\r", "\r\n", "65,59.5\r", "\r\n", "60,57.3\r", "\r\n", "65,64\r", "\r\n", "65,67.5\r", "\r\n", "65,71.8\r", "\r\n", "70,75.8\r", "\r\n", "65,57.3\r", "\r\n", "70,69.5\r", "\r\n", "80,69.3\r", "\r\n", "55,74\r", "\r\n", "75,61.3\r", "\r\n", "55,65.3\r", "\r\n", "60,71.5\r", "\r\n", "70,89.8\r", "\r\n", "65,61.5\r", "\r\n", "65,67.5\r", "\r\n", "60,76\r", "\r\n", "55,75.3\r", "\r\n", "60,63.8\r", "\r\n", "80,72.5\r", "\r\n", "55,73.3\r", "\r\n", "70,72\r", "\r\n", "60,63.3\r", "\r\n", "75,74.8\r", "\r\n", "60,66.3\r", "\r\n", "70,59\r", "\r\n", "60,74.5\r", "\r\n", "65,80\r", "\r\n", "65,69.8\r", "\r\n", "85,62.5\r", "\r\n", "80,66\r", "\r\n", "70,67.5\r", "\r\n", "75,82.8\r", "\r\n", "70,71\r", "\r\n", "75,77.5\r", "\r\n", "65,64\r", "\r\n", "60,73.3\r", "\r\n", "50,62.5\r", "\r\n", "85,75.3\r", "\r\n", "70,67.8\r", "\r\n", "70,73.8\r", "\r\n", "70,61\r", "\r\n", "65,70.8\r", "\r\n", "70,69.8\r", "\r\n", "30,53.8\r", "\r\n" ] } ], "source": [ "%matplotlib inline\n", "\n", "%cat first_year_marks.csv" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('field_mark', 'overall_year')\n" ] } ], "source": [ "import numpy as np\n", "\n", "# Read in the records (remember from previous lecture - do not re-invent the wheel).\n", "record = np.recfromcsv(\"./first_year_marks.csv\")\n", "\n", "print record.dtype.names" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nx1KiIyIiIh1LiY6IiIh0LCU6IiIi0rGU6LTC6rIDECnexLETyw4hl1jjhnhjjzVuiZO5e9kxdDQz\n6wL6+vr66OrqKjscERGRaPT399Pd3Q3Q7e79eepQi46IiIh0LCU6IiIi0rGU6IiIiEjHUqIjIiIi\nHUuJjoiIiHQsJToiIiLSsZToiIiISMdSotMKM8sOQKR4c8+fW3YIucQaN8Qbe6xxS5yU6LTCuLID\nECneqjWryg4hl1jjhnhjjzVuiZMSHREREelYSnRERESkYynRERERkY6lREdEREQ6lhIdERER6VhK\ndERERKRjKdFphZvKDkCkeHOmzCk7hFxijRvijT3WuCVO5u5lx9DRzKwL6Ovr66Orq6vscERERKLR\n399Pd3c3QLe79+epQy06IiIi0rGU6IiIiEjHUqIjIiIiHUuJjoiIiHQsJToiIiLSsZToiIiISMdS\notMK48oOQKR4K1evLDuEXGKNG+KNPda4JU5KdFphZtkBiBTvhAtOKDuEXGKNG+KNPda4JU5KdERE\nRKRjKdERERGRjqVER0RERDqWEh0RERHpWEp0REREpGMp0REREZGOpURHREREOpYSnVa4oOwARIq3\neObiskPIJda4Id7YY41b4qREpxVWlx2ASPEmjZtUdgi5xBo3xBt7rHFLnJToiIiISMdSoiMiIiId\nS4mOiIiIdCwlOiIiItKxlOiIiIhIx1KiIyIiIh1LiU4rTCk7AJHi9dzUU3YIucQaN8Qbe6xxS5yU\n6LTCPmUHIFK8nmVxXrxijRvijT3WuCVOSnRERESkYynRERERkY6lREdEREQ6lhIdERER6VhKdERE\nRKRjKdERERGRjqVEpxVWlx2ASPEmjp1Ydgi5xBo3xBt7rHFLnMzdy46ho5lZF9DX19dHV1dX2eGI\niIhEo7+/n+7uboBud+/PU4dadERERKRjKdERERGRjqVER0RERDqWEh0RERHpWEp0REREpGMp0RER\nEZGOpURHREREOpYSnVaYWXYAIsWbe/7cskPIJda4Id7YY41b4qREpxXGlR2ASPFWrVlVdgi5xBo3\nxBt7rHFLnJTotMLdZQcgUrx7/nhP2SHkEmvcEG/sscYtcVKi0woryw5ApHixXrxijRvijT3WuCVO\nSnRERESkYynRERERkY6lREdEREQ61qZlB7AR2ALglltuKTsOkUI9++yz9Pf3lx1G3WKNG+KNPda4\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "# Now that we have the CSV headers, read records into numpy arrays.\n", "fieldmarks = np.array(record[\"field_mark\"], dtype=float)\n", "yearmarks = np.array(record[\"overall_year\"], dtype=float)\n", "\n", "# 'bx' means blue 'x' markers\n", "# zorder=3 to make sure this is in front of grid\n", "plt.plot(fieldmarks, yearmarks, 'bx', markersize=5, markeredgewidth=2, zorder=3)\n", " \n", "# Not labeling a graph is unforgivable. \n", "plt.ylabel(\"Overall Year Mark\",weight='bold')\n", "plt.xlabel(\"Mark for Dorset\",weight='bold')\n", "\n", "# The rest is iceing\n", "plt.xlim(0, 100) # both scales 0-100\n", "plt.ylim(0, 100)\n", "\n", "# The tick labels are quite long and take up a lof of space. To improve \n", "# the readability of our code we can store them as lists named: \n", "# xticktitles and yticktitles\n", "xticktitles = [\"0%\", \"3rd/Fail\", \"2ii/3rd\", \"2i/2ii\", \"2i/1st\", \"100%\"]\n", "yticktitles = [\"3rd/Fail\", \"2ii/3rd\", \"2i/2ii\", \"2i/1st\", \"100%\"]\n", "\n", "# Ticks and labels to set up by category boundaries\n", "plt.xticks([0, 40, 50, 60, 70, 100],xticktitles, rotation=\"vertical\")\n", "plt.yticks([40, 50, 60, 70, 100], yticktitles)\n", "\n", "# Turn on grid with thin dashed green lines\n", "plt.grid(linestyle='--', linewidth=.5, color='green',zorder=1)\n", "\n", "# Titles\n", "plt.title(\"Fieldwork and Year marks 2010-11\",weight='bold')\n", "\n", "# Show the chart\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This only shows relationship visually, so while it appears from the plot that there is no strong relationship, can we be more quantitative? Are these two variables actually independent?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Linear regression\n", "\n", "A common approach to bivariate data is to model it mathematically, for example by fitting a line to it (*linear regression*). This is not appropriate if there is only a weak relationship.\n", "\n", "It is also possible to fix more complex curves but in this course we will restrict outselves to linear regression.\n", "\n", "Many mathematical methods exist to find the best fitting line. By far most widely used is the *least squares method* which minimises the sum of squares of vertical errors. This can be computed in Python using the method [scipy.stats.linregress](http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.linregress.html) which returns the slope, $m$, and intercept, $c$ parameters for the equation of the line:\n", "\n", "$$y = mx + c.$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 6.1\n", "\n", "1. Read in the file [BrachiopodBiometrics.csv](https://raw.githubusercontent.com/ggorman/Introduction-to-stats-for-geoscientists/gh-pages/data/BrachiopodBiometrics.csv).\n", "2. Create a scatter plot - label the plot approperiately.\n", "3. Use linear regression to fit a line to the data.\n", "4. Overlay the line on the scatter plot." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Solution here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Correlation\n", "Plotting a scatter diagram gives a visual feel for how well two variables are related, or correlated. However, correlation can also be defined mathematically in terms of *r-values* - these have values in the range -1 to 1:\n", "\n", "|r-value|Interpretation|\n", "|:------|:--------------|\n", "|-1 |Perfect negative correlation|\n", "|-0.70 |Strong negative correlation|\n", "|-0.50. |Moderate negative correlation|\n", "|-0.30. |Weak negative correlation|\n", "|0. |No correlation|\n", "|0.30. |Weak correlation|\n", "|0.50. |Moderate correlation|\n", "|0.70. |Strong correlation|\n", "|1. |Perfect correlation|\n", "\n", "There are commonly used methods for calculating correlation coefficients:\n", "\n", "* Pearson product-moment correlation coefficient.\n", "* Spearman’s rank correlation coefficient.\n", "\n", "To explain them and the differences between them we need to cover a few more basic concepts, namely:\n", "\n", "* Probability.\n", "* Normal distributions.\n", "* Parametric vs non-parametric statistics." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Probability\n", "\n", "The probability, $p$ of an event occurring is defined as a value in the range $(0, 1)$ where:\n", "\n", "* $p=0$ implies the event will never occur.\n", "* $p=1$ implies the event will always occur.\n", "\n", "A classic example is dice-throwing. The probability of throwing a 6 in one die throw is $1/6$ $(=0.167)$. The probability of all possible outcomes will sum to 1.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Probability and distributions\n", "\n", "When we try to determine whether two variables are related/correlated we are immediately talking in terms of probability. It is possible that any apparent relationship is by chance. So we try to work out how unlikely this is as a *p-value*.\n", "\n", "We use histograms of samples to get the underlying probability-distribution diagrams. We use probability-distribution curves by integrating the area under the curve to work out the probability of sampling from a range of values (can’t talk about probability of getting a particular value... why not?) The integral under the whole curve is 1 (why?)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Normal distributions\n", "\n", "Many real-world distributions approximate a ‘bell-shape’. This shape is known as a *Normal* or *Gaussian distribution*. It is very important in statistics and you are going to encounter it many times!\n", "\n", "Normal distribution defined mathematically as:\n", "\n", "$$ f(x) = \\frac{1}{\\sqrt{2\\pi\\sigma^2}} e^{-\\frac{(x-\\mu)^2}{2\\sigma^2}}$$\n", "\n", "where $\\sigma$ is the standard deviation and $\\mu$ is the mean. You don’t need to know the formula by rote but do need to know it only depends on *mean* and *standard deviation*." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = np.linspace(-4, 4, 100)\n", "from scipy import stats\n", "from numpy import sqrt, pi, exp\n", "for mu, sigma in ((0, 1), (0, 0.7), (1, 1.5)):\n", " y = sqrt(1/(2*pi*sigma**2))*exp(-(x-mu)**2/(2*sigma**2))\n", " plt.plot(x, y)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Normal distributions are important as a lot of inferential statistical methods assume distributions are normal. However, no real-world distribution is completely normal. Often, people assume deviations from normal are minor - this can be problematic!\n", "\n", "Consider the histogram of 2000 overall module marks from ESESIS (you will need to download the file [2000marks.csv](https://raw.githubusercontent.com/ggorman/Introduction-to-stats-for-geoscientists/gh-pages/data/2000marks.csv)." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "record = np.recfromtxt(\"./2000marks.csv\")\n", "marks = np.array(record, dtype=float)\n", "plt.hist(marks, 20, normed=1)\n", "plt.xlabel(\"Student marks\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Is this plot normally distributed? Sort of, but notice:\n", "\n", "* Big peak around 60.\n", "* Skewed – long left tail." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Back to correlation\n", "\n", "## Pearson product-moment correlation coefficient.\n", "This is the most widely used method to get an r-value for correlation. We will not get into the mathematics involved here but you need to be aware of its main limitation - **assumes distributions being compared are normally distributed**.\n", "\n", "To further complicate matters, it is unclear how much deviation is allowed...more about this later.\n", "\n", "You can calculate a probability value for a Pearson r-value using [scipy.stats.pearsonr](http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.pearsonr.html#scipy.stats.pearsonr).\n", "\n", "Say we calculated an r-value of 0.3 for two particular samples, and we want to know whether this comes from true correlation, or might have happened by chance. For this we have the p-value. The p-value roughly indicates the probability of an *uncorrelated* system producing datasets that have r-value at least as extreme as the one computed from these datasets. The p-values are not entirely reliable but are probably reasonable for datasets larger than 500 or so.\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "r-value (correlation coefficient) 1.0\n", "p-value (probability that we have got it wrong) 0.0\n" ] } ], "source": [ "# Lets look at a trivial example - lets generate data where x==y.\n", "d1 = np.linspace(-1, 1, 1000)\n", "d2 = np.linspace(-1, 1, 1000)\n", "\n", "r, p = stats.pearsonr(d1, d2)\n", "\n", "print \"r-value (correlation coefficient)\", r\n", "print \"p-value (probability that we have got it wrong)\", p" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Non-parametric correlation\n", "\n", "An alternative method for correlation is *Spearman’s rank correlation coefficient*. This is a non-parametric statistic - meaning that it does not rely on underlying data being of any particular distribution.\n", "\n", "You can calculate Spearman’s rank correlation coefficient using [scipy.stats.spearmanr](http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.spearmanr.html#scipy.stats.spearmanr)\n", "\n", "In this case the p-value roughly indicates the probability of an uncorrelated system producing datasets that have a Spearman correlation at least as extreme as the one computed from these datasets. As is the case with the Pearson correlation corfficient, the p-values are not entirely reliable but are probably reasonable for datasets larger than 500 or so.\n", "\n", "**Ideally use Pearson’s if data is normally distributed.**" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "r-value (correlation coefficient) 1.0\n", "p-value (probability that we have got it wrong) 0.0\n" ] } ], "source": [ "# Again lets try this with our trivial dataset\n", "r, p = stats.spearmanr(d1, d2)\n", "\n", "print \"r-value (correlation coefficient)\", r\n", "print \"p-value (probability that we have got it wrong)\", p" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 6.2\n", "\n", "For the [first_year_marks.csv](https://raw.githubusercontent.com/ggorman/Introduction-to-stats-for-geoscientists/gh-pages/data/first_year_marks.csv) dataset:\n", "\n", "* Calculate r and p values using both Pearson’s and Spearman’s correlation methodologies.\n", "* Are these data correlated at all? If so is the correlation weak or strong?\n", "* Plot histograms of each of the two variables, and overlay normal curves to the histograms. How well do they match?" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Solution here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 6.3\n", "\n", "For this practical you will need the Shock response data for sand. This can be found in the file [sand_swdb.txt](https://github.com/ggorman/Introduction-to-stats-for-geoscientists/blob/gh-pages/data/sand_swdb.txt), taken from the shock wave database.\n", "\n", "## Exercise 6.3.1\n", "* Open up the text file and have a look around, see what you're working with.\n", "* Read in the file sand_swdb.txt into two arrays called pressure and energy.\n", " * Do NOT use recfromcsv to do this! numpy has other methods too, like genfromtxt, which recfromcsv is based on.\n", "* Remember you do not want any 'commented' lines in the text file to be included, how would you do this?\n", "\n", "## Exercise 6.3.2\n", "\n", "* Make a scatter plot of pressure against energy.\n", "* Label the axes appropriately (include units).\n", "* Perform a linear regression on the data, and overlay the best fit line on the plot (as a dashed line).\n", "* Add a legend to the plot and label the best fit line with its r-value. e.g. r = 0.5.\n", "* Add (or change) the title of your plot to be y = {}x + {} and fill with the fit parameters.\n", "\n", "## BONUS ROUND (Harder)\n", "\n", "* Remake your plot, but this time with vertical errorbars of 10% on every point.\n", "\n", "For this practical you should make extensive use of the matplotlib documentation." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "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.12" } }, "nbformat": 4, "nbformat_minor": 0 }