Statistics and probability control your life. I don't just mean What YouTube's algorithm recommends you to watch next, and I don't just mean the chance of meeting your future significant other in class or at a bar. Human behavior, single-cell organisms, Earthquakes, the stock market, whether it will snow in the first week of December, and countless other phenomena are probabilistic and statistical. Even the very nature of the most fundamental deep structure of the universe is governed by probability and statistics.
Statistics and probability control your life. I don't just mean What YouTube's algorithm recommends you to watch next, and I don't just mean the chance of meeting your future significant other in class or at a bar. Human behavior, single-cell organisms, Earthquakes, the stock market, whether it will snow in the first week of December, and countless other phenomena are probabilistic and statistical. Even the very nature of the most fundamental deep structure of the universe is governed by probability and statistics.
You need to understand statistics.
Nearly all areas of human civilization are incorporating code and numerical computations. This means that many jobs and areas of study are based on applications of statistical and machine-learning techniques in programming languages like Python and MATLAB. This is often called 'data science' and is an increasingly important topic. Statistics and machine learning are also fundamental to artificial intelligence (AI) and business intelligence.
If you want to make yourself a future-proof employee, employer, data scientist, or researcher in any technical field ranging from data scientist to engineering to research scientist to deep learning modeler you'll need to know statistics and machine-learning. And you'll need to know how to implement concepts like probability theory and confidence intervals, k-means clustering and PCA, Spearman correlation and logistic regression, in computer languages like Python or MATLAB.
There are six reasons why you should take this course:
This course covers everything you need to understand the fundamentals of statistics, machine learning, and data science, from bar plots to ANOVAs, regression to k-means, t-test to non-parametric permutation testing.
After completing this course, you will be able to understand a wide range of statistical and machine-learning analyses, even specific advanced methods that aren't taught here. That's because you will learn the foundations upon which advanced methods are build.
This course balances mathematical rigor with intuitive explanations, and hands-on explorations in code.
Enrolling in the course gives you access to the Q&A, in which I actively participate every day.
I've been studying, developing, and teaching statistics for over 20 years, and I think math is, like, really cool.
What you need to know before taking this course:
High-school level maths. This is an applications-oriented course, so I don't go into a lot of detail about proofs, derivations, or calculus.
Basic coding skills in Python or MATLAB. This is necessary only if you want to follow along with the code. You can successfully complete this course without writing a single line of code. But participating in the coding exercises will help you learn the material. The MATLAB code relies on the Statistics and Machine Learning toolbox (you can use Octave if you don't have MATLAB or the statistics toolbox). Python code is written in Jupyter notebooks.
I recommend taking my free course called "Statistics literacy for non-statisticians". It's 90 minutes long and will give you a bird's-eye-view of the main topics in statistics that I go into much much much more detail about here in this course. Note that the free short course is not required for this course, but complements this course nicely. And you can get through the whole thing in less than an hour if you watch if on 1.5x speed.
You do not need any previous experience with statistics, machine learning, deep learning, or data science. That's why you're here.
Is this course up to date?
Yes, I maintain all of my courses regularly. I add new lectures to keep the course "alive," and I add new lectures (or sometimes re-film existing lectures) to explain maths concepts better if students find a topic confusing or if I made a mistake in the lecture (rare, but it happens. ).
You can check the "Last updated" text at the top of this page to see when I last worked on improving this course.
What if you have questions about the material?
This course has a Q&A (question and answer) section where you can post your questions about the course material (about the maths, statistics, coding, or machine learning aspects). I try to answer all questions within a day. You can also see all other questions and answers, which really improves how much you can learn. And you can contribute to the Q&A by posting to ongoing discussions.
And, you can also post your code for feedback or just to show off I love it when students actually write better code than me. (Ahem, doesn't happen so often.)
What should you do now?
First of all, congrats on reading this far; that means you are seriously interested in learning statistics and machine learning. Watch the preview videos, check out the reviews, and, when you're ready, invest in your brain by learning from this course.
Strategies for optimal learning.
How to use different programming languages in the course.
Simulate data and run a statistical analysis. A fun way to start the course :)
I explain how to get the most out of the interactive part of this course: The Q&A forum!
A discussion about memorizing formulas.
A reminder about foundational arithmetic rules.
Ways of representing very large and very small numbers.
Mathematical notation for adding a series of numbers.
Absolute value is the distance away from zero, regardless of sign.
Natural exponent and logarithm are two of the most important functions in math and its applications.
The logistic function is used often in statistics, machine learning, and optimization.
To rank data means to transform raw numerical values into ordinal position. Rank is used in non-parametric statistics.
My take on statistical terminology, grammar, and modern culture.
A philosophical discussion about how we can obtain numbers from the universe.
Data come in different forms, which has implications for ways of visualizing and analyzing data.
Introduction to data types in MATLAB and Python.
There is an important distinction between measuring *all* of the data vs. some of the data.
This distinction is related to sample size, and has implications for the generalizability of experimental findings.
The take-home message here is simple: Don't lie or cheat!
Lecture on how to create and interpret bar plots, including the types of data that are used.
Creating bar plots in MATLAB and Python, including parameters.
Creating and interpreting box plots, also called box-and-whisker plots.
Box plots in MATLAB and Python.
An exercise on creating box plots of random numbers drawn from different distributions.
A lecture on how to create and interpret histograms, including frequency vs. proportion.
Creating and visualizing histograms in code.
An exercise on transforming frequencies (counts) into proportions.
Pie charts are nice visualizations when your data add up to 100%.
Create pie charts in code. It's easier than you think!
A critical discussion of how to visualize categorical vs. continuous data using lines vs. bars.
A comparison of scaling the y-axis and x-axis intervals.
More on plotting and parameterizing line plots in code.
An exercise on scaling data in different ways.
The term "statistics" actually has two broad meanings: characteristics of a sample vs. generalizing to other samples.
These terms relate to how your data relate to the real world objects that the data measure.
Data come in different distributions, which has implications for how to visualize and analyze datasets.
You will learn how to create random data with different distributions in MATLAB and Python.
What happens when you plot the distribution of a distribution function? Find out!
The Gaussian distribution describes a remarkable and fundamental quality of the universe.
The mean, aka average, is the most common and insightful measure of a data set.
The mean is not appropriate for all data distributions; here you will learn two non-parametric measures of dataset centrality.
Computing mean, median, and mode in MATLAB and Python.
An exercise to help you understand the impact of outliers on mean, median, and mode.
You will learn about dispersion, which is how wide the data distribution is.
Computing different measures of dispersion in code.
IQR is a measures of the spread of most (but not all) of the data, and is robust to outliers.
See how to generate the interquartile range in code.
QQ plots show how your data compare to a theoretical normal (Gaussian) distribution.
Learn how QQ plots are created in Python and MATLAB.
Moments are statistical characteristics of the data. Here you'll learn the first four moments of a distribution.
More on histograms: Learn the formulas for determining the number of bins (data discretizations) to use.
Experiment with histogram parameters.
Learn how to create and interpret a beautiful graph for visualizing data and data distributions.
See how violin plots are created in code. Tip: Use lots of colors!
An exercise to visualize two data distributions in one violin plot.
Learn how to interpret this nonlinear measure of data dispersion.
Shannon entropy in code.
You will see how the bin-count parameter affects entropy.
No amount of fancy statistics or data cleaning can fix terrible data. Start with good data!
Z-score is the most important data normalization in statistics and machine learning.
Translate the z-score formula into code.
Min-max scaling is the second-most important data normalization method.
Translate min-max scaling into Python and MATLAB code.
An exercise to get from normalized data back to their original scale.
Outliers are unusual values that can completely screw up your analyses and interpretation!
This is one of the most common methods for identifying and removing outliers.
The modified z-score method uses the median instead of the mean, and therefore is good for removing outliers in non-normal distributions.
Implement the modified z-score method in code.
Does it really matter if you use the regular or modified z-score method? Come find out!
Extend the z-score method to outliers in high-dimensional datasets.
Multivariate outlier identification and removal, using concepts from geometry.
Another common method for removing outliers, based on threshold-exceedance.
See how data trimming is implemented in MATLAB and Python.
Instead of removing outliers, you can use analyses that are robust to outliers.
Some outliers can be transformed into non-outliers by applying certain nonlinear transformations.
A lecture on one of the main challenges of online learning. Just something to reflect on.
Introduction to probability and the role of probability in statistics.
Probability and proportion are really similar concepts, but it's important to know their subtle difference.
Instructions on how to compute probabilities (math).
How to compute probabilities in practice (code).
Probability and odds are different concepts; see how they differ and how to interpret odds ratios.
This exercise on odds-ratios will help make sure you really understand the math of odds-ratios.
Different terms are used for probabilities, depending on the data type (categorical vs. continuous).
Compute empirical probability mass functions.
cdfs are central to evaluating statistical significance. In this video you'll learn how to create and interpret cdfs.
Here you will learn how to compute cdfs from pdfs, including a potentially confusing aspect of their relationship.
An exercise to create cdfs from various random distributions.
Learn how to create a distribution of means from repeated samples. This is key to hypothesis-testing.
You already know how to do Monte Carlo sampling; here I will make sure you know the terminology.
Sampling isn't perfect, and understanding its limitations will help you properly interpret statistical results.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.