{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "###### Content under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2017 L.A. Barba, N.C. Clementi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Lead in Lipstick\n", "\n", "After completing [Lesson 1](http://go.gwu.edu/engcomp2lesson1) and [Lesson 2](http://go.gwu.edu/engcomp2lesson2) of \"Take off with stats,\" Module 2 of our course in _Engineering Computations_, here we'll work out a full example of what you can do with all that you've learned.\n", "\n", "This example is based on the lecture by Prof. Kristin Sainani at Stanford, [\"Exploring real data: lead in lipstick,\"](https://youtu.be/nlKIT-_b2jU) of her online course [\"Statistics in Medicine,\"](https://lagunita.stanford.edu/courses/Medicine/MedStats-SP/SelfPaced/about). We followed along her narration, searched online for the sources she cited and the data from the FDA studies, and worked out the descriptive statistics using Python. We hope you'll enjoy it!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## In the news\n", "\n", "In 2007, some alarming reports appeared in the media: a US consumer-rights group had tested 33 brand-name lipsticks, and found that 61% had detectable lead levels of 0.03 to 0.65 parts per million (ppm). A full one-third of the lipsticks tested exceeded the lead level set by the US Food and Drug Administration (FDA) as the limit for candy: 0.1 ppm. Here are some media reports:\n", "\n", "* Reuters published on Oct. 12, 2007: [Lipsticks contain lead, consumer group says](https://www.reuters.com/article/us-lipstick-lead/lipsticks-contain-lead-consumer-group-says-idUSN1140964520071012)—it quotes a doctor as saying: \"Lead builds up in the body over time and lead-containing lipstick applied several times a day, every day, can add up to significant exposure levels.\"\n", "* CTV.ca News published [FDA to examine claim of lead levels in lipstick](http://www.ctvnews.ca/fda-to-examine-claim-of-lead-levels-in-lipstick-1.259946)—it quoted one member of the Campaign for Safe Cosmetics as saying: \"We want the companies to immediately re-formulate their products to get the lead out and ultimately, really we need to change the laws and force these companies to be accountable to women's health.\"\n", "* The New York Times was more measured in [The Claim: Some Red Lipstick Brands Contain High Lead Levels](http://www.nytimes.com/2007/11/13/health/13real.html) (Nov. 13, 2007), concluding: \"Studies have found that lead in lipstick is not a cause for concern, but research is continuing.\"\n", "\n", "The FDA did carry out new studies in 2009 and 2012 to try to determine if lead content was a concern for lipstick users. These new studies generated some new scary headlines!\n", "\n", "* On the Washington Post: [400 lipsticks found to contain lead, FDA says](https://www.washingtonpost.com/business/economy/400-lipstick-brands-contain-lead-fda-says/2012/02/14/gIQAhOyeDR_story.html?utm_term=.e3622592e0e7)—the FDA is quoted as stating \"We do not consider the lead levels we found in the lipsticks to be a safety concern…\"\n", "* In Time Magazine: [What’s in Your Lipstick? FDA Finds Lead in 400 Shades](http://healthland.time.com/2012/02/15/whats-in-your-lipstick-fda-finds-lead-in-400-shades/)—a campaigner is quoted as saying: \"We want to see the FDA recommend a limit based on the lowest level a company can achieve, like candy manufacturers are required.\"\n", "\n", "Should lipstick users be concerned? Let's fact-check those scary headlines using our stats chops with Python!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The FDA studies\n", "\n", "We located a web page of the US Food and Drug Administration, titled [Limiting Lead in Lipstick and Other Cosmetics](https://www.fda.gov/cosmetics/productsingredients/products/ucm137224.htm#reference1), that describes their efforts to assess the safety concerns from lead impurities in cosmetics. The web page includes data tables for the initial study in 2009, with 22 lipsticks, and the expanded study in 2012, with 400 lipsticks. \n", "\n", "We copied these tables from the web page and created CSV files with the data. If you have a clone of all our lesson files, you already have the data. But if you downloaded this notebook on its own, you may need to get the data separately. See the Note below.\n", "\n", "Let's begin by loading our Python libraries for data analysis: `numpy`, `pandas` and `pyplot`. We'll also load the `rcParams` module for setting Matplotlib's plotting parameters, and set the font family and size to serif 16 points." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy\n", "import pandas\n", "from matplotlib import pyplot\n", "%matplotlib inline\n", "\n", "#set font styles\n", "pyplot.rc('font', family='serif', size=16)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Note:\n", "\n", "We'll be reading the data from CSV files using `pandas`. If you don't have the data files locally, change the code in the cell below to read the data from the files hosted in our repository:\n", "\n", "```Python\n", "URL = 'http://go.gwu.edu/engcomp2data3a'\n", "leadlips2009 = pandas.read_csv(URL)\n", "```" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Load the FDA 2009 data set using pandas, and assign it to a dataframe\n", "leadlips2009 = pandas.read_csv(\"../data/FDA2009-lipstickdata.csv\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As always, we take a quick peek at the data, now saved in a `pandas` dataframe named `leadlips2009`, and then we get a view of its distribution by plotting a histograms." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countSampleBrandParent companyPb ppm
011aCover GirlProcter & Gamble3.06
121bCover GirlProcter & Gamble3.05
232RevlonRevlon2.38
343Cover GirlProcter & Gamble2.24
454Body ShopL'Oreal1.79
\n", "
" ], "text/plain": [ " count Sample Brand Parent company Pb ppm\n", "0 1 1a Cover Girl Procter & Gamble 3.06\n", "1 2 1b Cover Girl Procter & Gamble 3.05\n", "2 3 2 Revlon Revlon 2.38\n", "3 4 3 Cover Girl Procter & Gamble 2.24\n", "4 5 4 Body Shop L'Oreal 1.79" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "leadlips2009[0:5]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see a histogram of the data column containing the lead content. It's easy with `pandas`, because we can use the column label as a plot argument." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "leadlips2009.hist(column='Pb ppm', bins=4, edgecolor='white')\n", "pyplot.title('Lead levels in lipstick, n=22 (2009) \\n');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Above, we used the built-in plotting capability of `pandas`. Just for kicks, let's get the same plot but using `pyplot` directly. To do that, remember that we need the data in a NumPy array, for which we use the `Series.values` method." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "lead2009 = leadlips2009['Pb ppm'].values" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nn5mZdU7tE1NOSlOAvSLij7lsJUnnlOq9S9IShaJVgRsrNrlJXt42GPGamdnA1HqMSdIGwB+AXwLj\nJI3Lq8YA7y/UWwp4GHgaWLewiXUkTYyISbnehsDRwHV5u2ZmVjPdvCTRKaQrP6yW/78jr9osIl7P\nfx9PSkIH5VvRtYW/3wB6gCcKZTOBA4HdJB0CjCZ1310AnBARvj6fmVkNyZ/PzY0fPz58gq2ZWXsk\n3RoR4/vbvvZjTMPVa3PL5wVbb/x4mVlDrceYhrPRCy/EpudM73YYw8YtBza7jq+ZjTQ+YjIzs1px\nYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIz\ns1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1px\nYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1pxYjIzs1rpamKStJKkKyRFN+MwM7P6\n6FpikrQrcCOwZh/1FpF0oqQ/S7pH0g2StmxjP5+XdKeku3L7AwYau5mZDZ6Fu7jvo4AdgGOAtXqp\ndyawHTAhInok7Q9cJWnziLijtx1I2h04H9gqIm6WtCFwo6SFIuKcztwNMzPrpG525U2IiL/0VkHS\n+4GJwMkR0QMQEecBDwMn9dF2IeAU4BcRcXNuexcwGfiOpNEDvgdmZtZxXUtMETG3hWq7AgKuKZVf\nDewoaale2m4GrNKk7XLAti2GamZmQ6jus/I2BOYBj5bKZ5C6Idfro22jbrltcf3bSJooaZqkaT09\nPW2Ga2ZmA1X3xDQGeDki3iyVv5iXy/fRFuCldtpGxKSIGB8R48eOHdtWsGZmNnB1T0zNqEttzcxs\nkNU9MT0DLCFpVKl86bx8to+2xbrttDUzsy6pe2K6ixTjqqXyNYC5wP19tAUYV9G2uN7MzGqk7onp\nN0AA25TKtwWujIi3xo8kvUvSEoU6NwOPN2n7HDC1w7GamVkH1DoxRcQDwCTgaEljACTtR7paxDGN\nenna+MPArYW284CvA7tLGp/rbQDsA3wzIl4dorthZmZt6NqVHySdQrryw2r5/8ZVHDaLiNcLVb8M\nHAtcL+kN0iy7HUtXfXgD6AGeKO4jIi7O41PnS4KUiL8WEZMG4S6ZmVkHdC0xRcTXW6z3BvCtfGtW\n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\n0vbvJ0XEvIjoybehmB5+OvC2yReSFiV1791WKFs+lzdcAbwMbFPa3rbAfRHx50GJ1szMBmS4/LDf\n1yWtBG/9jPspwFjg+Fy2BvAE6dJIAOQrQpwIfEnS+3K97Uk//X7EkEZvZmYta/vq4l3wA+BA4Ip0\nqhRjgPuB7SOicY7SK8BzwMxiw4g4WdKrwP9Imkvq/vusr/pgZlZftU9MeVLFIX3UmQWs3GTdacBp\ngxCamZkNguHSlWdmZiOEE5OZmdWKE5OZmdWKE5OZmdWKE5OZmdWKE5OZmdWKE5OZmdWKE5OZmdWK\nE5OZmdWKE5PVwmtzh+J6wO8cfrzsnaz2lySykWH0wgux6TnTux3GsHHLgWt1OwSzQeMjJjMzqxUn\nJjMzqxUnJjMzqxUnJjMzqxUnJjMzqxUnJjMzqxUnJjMzqxUnJjMzqxUnJjMzqxUnJjMzqxUnJjMz\nqxUnJjMzqxUnJjMzqxUnJjMzqxUnJjMzqxUnJrNhyD8U2J5X/Xi1rZuvMf9QoNkw5B9WbM8tB67l\nx6tN3fwxSh8xmZlZrTgxmZlZrdS+K0/SRsCXgI1J8S4C/B44MSJ6+mj7CPC3ilVHRMTvOxyqmZl1\nQO0TE3AxcC+wdUTMkfRe4A/ATpI+GBGv9NY4IjYaiiDNzKwzhktX3pERMQcgIp4ATgHWBnbualRm\nZtZxw+GIacOIeL1UNjMvlx3qYMzMbHDV/oipIikBrAMEcF1f7SV9T9I0SQ9KulLSLh0P0szMOqb2\nialM0ihgP+DHEfFgH9WfBm4HJgDrA1OAKZIO6WX7E3Mim9bT0+vcCjMzGwTDLjEB/wLMBQ7rq2JE\nbBYRP4+I1yLijYj4EXA58B1JizVpMykixkfE+LFjx3Y2cjMz69OwSkyS9gU+B3wsImb3czM3AUuT\njqDMzKxmhk1ikrQXcDiwXUQ83UL9xSUtVbHqzbwc1cn4zMysM4ZFYpK0J3AksH1EzMplH5c0sVBn\nBUnF+7Mb8IOKzW0CvAbcN4ghm5lZP9U+MUn6PHAuMBnYXtKeOVF9Alg515lAmkL+o1LzPSRtWtjW\nbsCngO8NoCvQzMwG0XA4j+lMYDHSSbVlx+flbOAF4MnCut/lNmdJWgR4N/A8cFBETBq8cM3MbCBq\nn5giYrkW6twJLFcqewo4Md/MzGyYqH1XnpmZjSxOTGZmVitOTGZmVitOTGZmVitOTGZmVitOTGZm\nVitOTGZmVitOTGZmVitOTGZmVitOTGZmVitOTGZmVitOTGZmVitOTGZmVitOTGZmVitOTGZmVitO\nTGZmVitpuzXrAAAHN0lEQVROTGZmVitOTGZmVitOTGZmVitOTGZmVitOTGZmVitOTGZmVitOTGZm\nVitOTGZmVitOTGZmVitOTGZmVitOTGZmVitOTGZmVitOTGZmVitOTGZmVivDIjFJeo+kiyQ9kG+/\nlLRKi20XkXSipD9LukfSDZK2HOyYzcysf2qfmCQtClwFLAqsD6wHzAGukbRUC5s4E9gN2Coi/g44\nH7hK0kaDFLKZmQ1A7RMT8AVgQ+DIiJgbEW8CRwLvAw7uraGk9wMTgZMjogcgIs4DHgZOGtSozcys\nX4ZDYvoM8GhEPNwoiIhZwH15XW92BQRcUyq/GtixxSMuMzMbQsMhMW0IzKgonwFs0ELbecCjFW0X\nJnULmplZjSzc7QBaMAa4taL8RWAJSYtHxCu9tH05d/+V2wIsX24gaSKp+w9gtqQHmmz3mT4jt5bp\noI5sZsQ8Lx16vIZSV5+bYfh4DZWmz8sAH7PVB9J4OCSmZjQYbSNiEjCp18bStIgYP4D92yDw81Jf\nfm7qqa7Py3DoynsGWLqifGnS0VCzo6VG2yUkjapoC/BsB+IzM7MOGg6J6S5gXEX5GsDdLbRdCFi1\nou1c4P6BBmdmZp01HBLTr4HVJY1rFEhaAVgX+FWxoqQVJBXv02+AALYpbXNb4MqIeKmfMfXa1Wdd\n4+elvvzc1FMtnxdFRLdj6FU+wXYa6ejm86RZdj8GtgQ+FBGzc70JwHXApIg4uND+bFIimhARz0ja\nD/gRsHlE3DGkd8bMzPpU+yOmiHgd2AF4k3Tu0v3AMsB2jaSUzQZeAJ4sbeLLwH8D10u6BzgA2NFJ\nycysnmp/xGRmZiNL7Y+YzPoiaSVJV0jytyyzdwAnphYN5ArnNngk7QrcCKzZ7VhsPkkbSTpX0q2S\n7pR0n6QzJI3tdmwjnaQ1JX0/Pze3SnpQ0v9J+sdux9bgxNSCDlzh3AbPUaQxyOu7HYi9zcXAcsDW\nEfFB0nO0I2msd/GuRmYfA3YHdouITYAPkL7cXSLp77saWebE1Jp+X+HcBt2EiPhLt4OwSkdGxByA\niHgCOAVYG9i5q1HZE8BxETEdICLmAd8h5YNPdjOwhuF8SaKhVHmFc0mNK5yf0rXIRriImNvtGKzS\nhnlGbdHMvFx2qIOx+SLiNxXFy+Rlz1DG0oyPmFozkCucm404FUkJYB3SCe/XDXE41gtJ7yWd23lb\nXnadE1NrxgBVV4l46wrnQxyP2bCSr1e5H/DjiHiw2/HYW5MgpgOPA6OAT0XEi300GxJOTAMzkCuc\nm40k/0K6PuVh3Q7Ekoh4KCLWAt4FPAjcKWnLLocFODG1aiBXODcb0STtC3wO+Fjpai1WA/ko6TDg\nKeCsLocDODG1aiBXODcbsSTtBRxOuoTY092Ox0DS4pLe1tsT6RJAdwN/J2l0dyKbz4mpNS1f4dzM\nEkl7kk6r2D4iZuWyj+dfibbu+R3wkYrycaRx86qJK0PKiak1k0nfJr4raeH80xonk2bl/Uc3AzOr\nI0mfB84lvXe2l7RnTlSfAFbuZmwGwPGSlgdQ8mVgU+CMqMEFVH0R1xblI6RTgfGkKa/3AIdGxGNd\nDWyEk3QK6aoCq5HOj7kzr9qsyZRlGwKSnqP5+UrHR8RxQxiOFeSfCNqflIjmAouRfs37LOBnTkxm\nZmYl7sozM7NacWIyM7NacWIyM7NacWIyM7NacWIyM7NacWIyM7NacWIyM7NacWIyM7NacWIyM7Na\ncWIyM7NacWIyM7NacWIyG2KSDpJ0n6SQdLikn0m6Q9Kzks6TtKSk8bnsdUkXSDpJ0jRJPZJ+L2mt\nwvYulzQrb29TSVdKekLS1ZJWkbSupEskPSbpKknv7eb9N+uLL+Jq1gX5t71mkH41dOeIuE3SasD1\nwLURsWeu9wgwFvhqRJyXf8TtEmBt4AONK6hLOg44FvghcASwBHAHMB24GTgOWDKX/amxfbM68hGT\nWXdNiYjbACLiUeAMYA9J6xTqPB4R5+U6rwHfIv168t4V2/tJJHOAK4CdgF/lstm5bNvBuztmA+fE\nZNZd95b+v5X0vvxwL3VuJ/0m2OYV25te+Pu5irJngRXbD9Ns6DgxmXXXi6X/n8/LlZvViYi5wEtU\n/BJsRLxc/LdJmd/3Vmt+gZp11zKl/5fLy5nN6khaGFi6VMfsHcOJyay71i/9vwkwjzRhoVmdjQEB\nNw5iXGZd48Rk1l3bS/oQQJ6Vdwjw84h4oFBnWUkH5DqjgRNJM/ouGOpgzYaCE5NZd50KHCLpdtKk\nhquAA0t1LgeWl3Qz8DgwCtixMFX8IuCg/PcdkjaQ9KMWyrYa/Ltn1j6fx2TWBYXzmPaNiMm91HsE\nmBoR+wxFXGZ14CMmMzOrFScmMzOrFScmsyEm6SDSuBHACXnsp1xnvKQ7SOcq7SLppqGM0aybPMZk\nZma14iMmMzOrFScmMzOrFScmMzOrFScmMzOrFScmMzOrlf8PTJxfX/JcFAcAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pyplot.figure(figsize=(6,4))\n", "pyplot.hist(lead2009, bins=4, color='#3498db', histtype='bar', edgecolor='white') \n", "pyplot.title('Lead levels in lipstick, n=22 (2009) \\n')\n", "pyplot.xlabel('ppm')\n", "pyplot.ylabel('Count');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The histograms look the same, except for style. If you are following along with Sainani's lecture, however, you'll note some differences. We confirm that the data is the same by getting the descriptive statistics shown 4-min into the video:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The mean value is 1.07\n", "The median is 0.73\n", "The standard deviation is 0.96\n", "The maximum value is 3.06\n" ] } ], "source": [ "print('The mean value is {:.2f}'.format(leadlips2009['Pb ppm'].mean()))\n", "print('The median is {:.2f}'.format(leadlips2009['Pb ppm'].median()))\n", "print('The standard deviation is {:.2f}'.format(leadlips2009['Pb ppm'].std()))\n", "print('The maximum value is {:.2f}'.format(leadlips2009['Pb ppm'].max()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All of these match the statistics shown in the video. We do see some slight differences in the percentile values, however. Check them out:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The 99 percentile is 3.06\n", "The 95 percentile is 3.02\n", "The 90 percentile is 2.37\n", "The 75 percentile is 1.69\n" ] } ], "source": [ "print('The 99 percentile is {:.2f}'.format(leadlips2009['Pb ppm'].quantile(.99)))\n", "print('The 95 percentile is {:.2f}'.format(leadlips2009['Pb ppm'].quantile(.95)))\n", "print('The 90 percentile is {:.2f}'.format(leadlips2009['Pb ppm'].quantile(.90)))\n", "print('The 75 percentile is {:.2f}'.format(leadlips2009['Pb ppm'].quantile(.75)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Challenge question\n", "\n", "Despite the small difference in some percentile values from those shown on the video, we do think this is the same data that Sainani uses in her example. Look carefully at the histograms: can you explain the differences? (Play around with the plots here as much as you need to explain it.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's load the data for the extended study in 2012. \n", "\n", "##### Note:\n", "If you don't have the data files locally, change the code in the cell below to read the data from the files hosted in our repository:\n", "\n", "```Python\n", "URL = 'http://go.gwu.edu/engcomp2data3b'\n", "leadlips2012 = pandas.read_csv(URL)\n", "```" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Load the FDA 2012 data set using pandas, and assign it to a dataframe\n", "leadlips2012 = pandas.read_csv(\"../data/FDA2012-lipstickdata.csv\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Take a quick peek at the first few rows of the dataframe we just created, and then make a histogram of the column containing the lead values (notice that it has a different label than the previous dataframe)." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Sample #BrandParent companyLead (ppm)
01MaybellineL'Oreal USA7.19
12L'OrealL'Oreal USA7.00
23NARSShiseido4.93
34Cover Girl QueenProcter & Gamble4.92
45NARSShiseido4.89
\n", "
" ], "text/plain": [ " Sample # Brand Parent company Lead (ppm)\n", "0 1 Maybelline L'Oreal USA 7.19\n", "1 2 L'Oreal L'Oreal USA 7.00\n", "2 3 NARS Shiseido 4.93\n", "3 4 Cover Girl Queen Procter & Gamble 4.92\n", "4 5 NARS Shiseido 4.89" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "leadlips2012[0:5]" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "leadlips2012.hist(column='Lead (ppm)', bins=10, edgecolor='white')\n", "pyplot.title('Lead levels in lipstick, n=400 (2012) \\n');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's get the descriptive statistics for this data set, and confirm that they match with those shown in Dr. Sainani's video. " ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The mean value is 1.11\n", "The median is 0.89\n", "The standard deviation is 0.97\n", "The maximum value is 7.19\n" ] } ], "source": [ "print('The mean value is {:.2f}'.format(leadlips2012['Lead (ppm)'].mean()))\n", "print('The median is {:.2f}'.format(leadlips2012['Lead (ppm)'].median()))\n", "print('The standard deviation is {:.2f}'.format(leadlips2012['Lead (ppm)'].std()))\n", "print('The maximum value is {:.2f}'.format(leadlips2012['Lead (ppm)'].max()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The mean value, median, and standard deviation did not change much between the 2009 and 2012 studies, even though the earlier study only tested 22 samples. As Prof. Sainani points out, this goes to show that you can begin to describe a feature even with modest sample sizes.\n", "\n", "The maximum value in the second study was a lot higher: 7.19 compared to 3.06. The reason for seeing this higher maximum value in the later study is that, for a _right skewed_ distribution like this one, there are infrequent occurrences of a higher concentration of lead. These start to be detected with larger sample sizes.\n", "\n", "Next, we compute a few percentiles (noticing slight differences with the values shown by Sainani)." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The 99 percentile is 4.89\n", "The 95 percentile is 2.74\n", "The 90 percentile is 2.22\n", "The 75 percentile is 1.49\n" ] } ], "source": [ "print('The 99 percentile is {:.2f}'.format(leadlips2012['Lead (ppm)'].quantile(.99)))\n", "print('The 95 percentile is {:.2f}'.format(leadlips2012['Lead (ppm)'].quantile(.95)))\n", "print('The 90 percentile is {:.2f}'.format(leadlips2012['Lead (ppm)'].quantile(.90)))\n", "print('The 75 percentile is {:.2f}'.format(leadlips2012['Lead (ppm)'].quantile(.75)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the previous lesson, you learned to make box plots using `pyplot`, which requires extracting the values of the data series of interest into NumPy arrays. It turns out, `pandas` can make box plots directly with a column of the dataframe. " ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n7z6a2ClSAQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "leadlips2012.boxplot(column='Lead (ppm)', figsize=(6,8))\n", "pyplot.title('Lead levels in lipstick, n=400 (2012) \\n');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The box plot also indicates a right skewed distribution, and shows a number of outliers on the high end of the range: some lipsticks have an especially high level of lead." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lead exposure from lipstick\n", "\n", "A European study of exposure to various cosmetic products [Ref. 2] offers some useful statistics about lipstick use. In figure 6, the paper shows a histogram of lipstick applied by the participants in the study. The distribution is right skewed: most users apply a moderate amount of lipstick daily, but there are a few heavy users in the tail of the distribution. The number of participants was 30,000, and the summary statistics are:\n", "\n", "* mean value = 24.61 mg/day,\n", "* median = 17.11 mg/day,\n", "* minimum = 0.13 mg/day,\n", "* maximum = 217.53 mg/day\n", "* 95th percentile = 72.51 mg/day\n", "\n", "Prof. Sainani suggests the following exercise: suppose that users ingest half of the lipstick they apply daily—seems like a conservative estimate, given that some lipstick will end up on cups, napkins, and (as Sainani amusingly points out) other people. We'd like to calculate:\n", "\n", "1. the typical lead exposure from lipstick, using the medians\n", "2. the highest daily lead exposure from lipstick, using the maxima\n", "\n", "From the 2012 FDA study of lead in lipstick: the median is 0.89 ppm (µg/g) and the maximum is 7.19 ppm. From the European study on exposure to cosmetics, the median daily usage of lipstick is 17.11 mg, and the maximum is 217.53. Now… keep your units straight!\n", "\n", "$ 1 \\mu\\text{g} = 10^{-3} \\text{mg} = 10^{-6} \\text{g}$" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The typical daily exposure to lead from lipstick is 0.0152 µg/day.\n", "Half of this amount is ingested: 0.0076 µg/day.\n" ] } ], "source": [ "# Typical user: 0.89 µg/g * 17.11 mg/day (divide by 1000 to get µg)\n", "print('The typical daily exposure to lead from lipstick is {:.4f} µg/day.'.format(0.89 *17.11/1000))\n", "print('Half of this amount is ingested: {:.4f} µg/day.'.format(0.89 *17.11/1000/2))" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The maximum daily exposure to lead from lipstick is 1.56 µg/day.\n", "Half of this amount is ingested: 0.78 µg/day.\n" ] } ], "source": [ "# Maximum usage: 7.19 µg/g * 217.53 mg/day / 1000 to get µg\n", "print('The maximum daily exposure to lead from lipstick is {:.2f} µg/day.'.format(7.19 *217.53/1000))\n", "print('Half of this amount is ingested: {:.2f} µg/day.'.format(7.19 *217.53/1000/2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The maximum daily exposure is 100 times larger than the typical exposure, based on the median. Note that this maximum occurs for one user over 30,000 (the size of the study sample), and one lipstick over 400—so it's a chance of one in 12 million!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Is this bad?\n", "\n", "The US Food and Drug Administration provides a recommended _maximum_ lead level of 0.1 ppm in candy to be consumed by small children [3]. But most food products are well below the maximum. \n", "For example, the FDA data on 40 samples of milk chocolate in the years 1991–2002 showed a mean lead level of 0.025 ppm [4]. That's of course much lower than the concentration of lead in lipstick, but the _consumption_ of chocolate is much higher! Forbes reported that the average American eats about 9.5 lbs (4.3 kg) of chocolate each year [6]." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The average American consumes 11.8 grams of chocolate per day.\n", "This amounts to 0.29 µg of lead exposure from chocolate (mean of FDA data).\n" ] } ], "source": [ "print('The average American consumes {:.1f} grams of chocolate per day.'.format(4.3*1000/365))\n", "print('This amounts to {:.2f} µg of lead exposure from chocolate (mean of FDA data).'.format(4.3*1000/365*0.025))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compared to the median exposure to lead from lipstick of 0.0076 µg per day, the exposure from chocolate is almost 40 times higher!\n", "\n", "Clearly the consumer group that generated all those headlines was scaremongering. And now you have the tools to fact-check many of those scary health-related \"fake news.\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References\n", "\n", "1. [Limiting Lead in Lipstick and Other Cosmetics](https://www.fda.gov/cosmetics/productsingredients/products/ucm137224.htm#reference1), US Food and Drug Administration.\n", "2. European consumer exposure to cosmetic products, a framework for conducting population exposure assessments (2007). Hall, B., et al., _Food and Chemical Toxicology_ **45**(11): 2097-2108. [Available on PubMed.](https://www.ncbi.nlm.nih.gov/pubmed/17683841)\n", "3. US FDA Guidance for Industry: [Lead in Candy Likely To Be Consumed Frequently by Small Children: Recommended Maximum Level and Enforcement Policy](https://www.fda.gov/Food/GuidanceRegulation/GuidanceDocumentsRegulatoryInformation/ucm077904.htm) (2005, revised 2006).\n", "4. US FDA [Supporting Document for Recommended Maximum Level for Lead in Candy Likely To Be Consumed Frequently by Small Children](https://www.fda.gov/food/foodborneillnesscontaminants/metals/ucm172050.htm#lead) (2006).\n", "5. [The World's Biggest Chocolate Consumers](https://www.forbes.com/sites/niallmccarthy/2015/07/22/the-worlds-biggest-chocolate-consumers-infographic/#5399969b4484), Forbes, July 22nd 2015." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Recommended viewing\n", "\n", "This lesson was based on the followign lecture from [\"Statistics in Medicine,\"](https://lagunita.stanford.edu/courses/Medicine/MedStats-SP/SelfPaced/about), a free course in Stanford Online by Prof. Kristin Sainani:\n", "* [Exploring real data: lead in lipstick](https://youtu.be/nlKIT-_b2jU)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Execute this cell to load the notebook's style sheet, then ignore it\n", "from IPython.core.display import HTML\n", "css_file = '../style/custom.css'\n", "HTML(open(css_file, \"r\").read())" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 2 }