Think Stats: Probability and
Statistics for Programmers
Probability and Statistics for Programmers
Allen B. Downey
Green Tea Press
Copyright © 2011 Allen B. Downey.
Green Tea Press
9 Washburn Ave
Needham MA 02492
Permission is granted to copy, distribute, and/or modify this document under the terms of the Creative Commons Attribution-NonCommercial 3.0 Unported License, which is available at http://creativecommons.org/licenses/by-nc/3.0/. A
The original form of this book is L TEX source code. Compiling this code has the effect of generating a device-independent representation of a textbook, which can be converted to other formats and printed.
The L TEX source for this book is available from http://thinkstats.com.
The cover for this book is based on a photo by Paul Friel (http://flickr.com/ people/frielp/), who made it available under the Creative Commons Attribution license. The original photo is at http://flickr.com/photos/frielp/11999738/.
Why I wrote this book
Think Stats: Probability and Statistics for Programmers is a textbook for a new kind of introductory prob-stat class. It emphasizes the use of statistics to explore large datasets. It takes a computational approach, which has several advantages:
• Students write programs as a way of developing and testing their understanding. For example, they write functions to compute a least squares ﬁt, residuals, and the coefﬁcient of determination. Writing and testing this code requires them to understand the concepts and implicitly corrects misunderstandings.
• Students run experiments to test statistical behavior. For example, they explore the Central Limit Theorem (CLT) by generating samples from several distributions. When they see that the sum of values from a Pareto distribution doesn’t converge to normal, they remember the assumptions the CLT is based on.
• Some ideas that are hard to grasp mathematically are easy to understand by simulation. For example, we approximate p-values by running Monte Carlo simulations, which reinforces the meaning of the p-value.
• Using discrete distributions and computation makes it possible to present topics like Bayesian estimation that are not usually covered in an introductory class. For example, one exercise asks students to compute the posterior distribution for the “German tank problem,” which is difﬁcult analytically but surprisingly easy computationally. • Because students work in a general-purpose programming language (Python), they are able to import data from almost any source. They are not limited to data that has been cleaned and formatted for a particular statistics tool.
Chapter 0. Preface
The book lends itself to a project-based approach. In my class, students work on a semester-long project that requires them to pose a statistical question, ﬁnd a dataset that can address it, and apply each of the techniques they learn to their own data.
To demonstrate the kind of analysis I want students to do, the book presents a case study that runs through all of the chapters. It uses data from two sources:
• The National Survey of Family Growth (NSFG), conducted by the U.S. Centers for Disease Control and Prevention (CDC) to gather “information on family life, marriage and divorce, pregnancy, infertility, use of contraception, and men’s and women’s health.” (See http://cdc.gov/nchs/nsfg.htm.)
• The Behavioral Risk Factor Surveillance System (BRFSS), conducted by the National Center for Chronic Disease Prevention and Health Promotion to “track health conditions and risk behaviors in the United States.” (See http://cdc.gov/BRFSS/.)
Other examples use data from the IRS, the U.S. Census, and the Boston Marathon.
How I wrote this book
When people write a new textbook, they usually start by reading a stack of old textbooks. As a result, most books contain the same material in pretty much the same order. Often...
Please join StudyMode to read the full document