Four Assumptions Nobody Checks and All of Them Matter
I remember sitting in a windowless lab during my PhD years, staring at a beautiful, high-performing model that I was certain was a breakthrough, only to realize later that I had ignored the most basic linear regression assumptions in favor of a clean R-squared value. It’s a specific kind of professional heartbreak—the moment you realize your “discovery” is actually just a mathematical ghost caused by heteroscedasticity or non-independent errors. We are often taught to treat these assumptions like a checklist to be ticked off before moving on to the “real” machine learning, but that’s a dangerous way to work. If you treat the underlying mechanics as mere formalities, you aren’t actually building a model; you’re just decorating a house built on sand.
I’m not here to give you a dry recitation of textbook definitions that you could find in any introductory statistics manual. Instead, I want to show you how to actually interrogate your data to see if it’s lying to you. We are going to look at the mechanics of why these constraints exist and, more importantly, what happens to your coefficients when they are violated. My goal is to move you past memorizing names like “homoscedasticity” and toward a genuine intuition for when your model is actually reliable.
Table of Contents
Beyond the Formula the Gauss Markov Theorem Explained

I often see people treat the Gauss-Markov theorem as a mere mathematical curiosity, but in practice, it is the only reason we can trust our coefficients to be “best.” When we say an estimator is BLUE—meaning it is the Best Linear Unbiased Estimator—we aren’t just using academic jargon to sound sophisticated. We are claiming that, among all possible linear unbiased estimators, ours has the smallest possible variance. This is the gold standard. If the Gauss-Markov conditions hold, you have found the most stable way to extract signal from your noise.
However, this stability is fragile. The moment you encounter heteroscedasticity—where the spread of your errors isn’t constant but instead grows or shrinks alongside your independent variables—the theorem’s guarantees evaporate. You might still get unbiased estimates, but they won’t be the “best” anymore; your standard errors will be wrong, and your p-values will become unreliable. It’s a subtle but catastrophic distinction. Instead of just trusting the math, I always suggest checking model assumptions with plots, specifically looking at residual spreads, because a theorem is only as useful as the reality of the data it describes.
Independence of Errors When Data Points Betray the Model

The Gauss-Markov theorem assumes that each observation is a discrete, isolated event, but real-world data is rarely that polite. When we talk about independence of errors, we are essentially saying that the mistake the model makes on one data point tells us absolutely nothing about the mistake it will make on the next. If your data points are linked—perhaps because you are measuring the same patient over several weeks or sampling soil from the same plot—you have violated this core premise. This is common in time-series data, where today’s error is often just a ghost of yesterday’s.
When errors are correlated, the model becomes overconfident. It starts thinking it has more unique information than it actually does, which shrinks your standard errors and makes your p-values look much more impressive than they deserve to be. You might find yourself claiming a “statistically significant” relationship that is actually just a byproduct of a temporal trend. I always recommend checking model assumptions with plots, specifically looking at residual plots against time or order of collection. If you see patterns or “waves” in those residuals rather than a random cloud of points, your model is lying to you.
How to stop your model from lying to you
- Don’t just eyeball a scatter plot and call it a day. You need to check your residuals—the difference between what your model predicted and what actually happened. If those residuals show a pattern, like a curve or a funnel shape, your model hasn’t actually captured the underlying mechanism; it has just smoothed over the most interesting parts of the data.
- Watch out for multicollinearity, which is a fancy way of saying your input variables are gossiping with each other. If two of your features are telling the exact same story, the math can’t distinguish which one is actually driving the result. This doesn’t necessarily ruin your predictions, but it makes your coefficients—the very things you’re trying to interpret—completely unreliable.
- Homoscedasticity sounds intimidating, but it’s really just a requirement for “equal spread.” You need the error terms to be consistent across the entire range of your data. If your model is highly accurate for small values but wildly off for large ones, your standard errors will be biased, and you’ll end up claiming a relationship is statistically significant when it’s actually just noise.
- Check for outliers with a skeptical eye rather than an automated script. A single extreme data point can act like a heavy weight on a lever, dragging your entire regression line toward itself and tilting the whole model away from the true trend. You have to decide if that point is a genuine discovery or just a measurement error that will sabotage your results.
- Normality of errors is often treated as a strict rule, but it’s more of a safety net for your p-values. If your errors aren’t normally distributed, your confidence intervals might be narrower or wider than they should be. This doesn’t mean the regression itself is “wrong,” but it means your ability to say “I am 95% sure about this” is built on very shaky ground.
What to carry away from this
Linear regression isn’t a magic box that finds “truth”; it is a specific mathematical tool that only functions correctly when your data respects a very particular set of structural rules.
If you ignore the assumptions—like homoscedasticity or independence—you aren’t just getting a slightly less accurate model; you are getting a model that lies to you about how much you should trust its predictions.
Don’t just check the p-values and call it a day; look at your residuals to see if the math is actually breaking in ways the summary statistics are too blunt to catch.
The reality of the residuals
At this point, you shouldn’t be looking at your R-squared value as a badge of honor, but rather as a starting point for skepticism. We have walked through why the Gauss-Markov theorem isn’t just academic fluff—it is the mathematical guarantee that your estimates are actually the best you can do, provided your errors behave. If you ignore homoscedasticity, your standard errors become lies; if you ignore independence, your model is essentially hallucinating patterns in noise. Checking these assumptions isn’t an optional “extra credit” step you perform before submitting a paper; it is the fundamental process of verifying that the ground you are standing on is actually solid.
I know it is tempting to just feed a dataset into a library, call `.fit()`, and move on to the next problem. But there is a profound difference between running a calculation and understanding a system. When you take the time to look at your residual plots and interrogate your data’s distribution, you are moving from being a mere user of tools to being an engineer of insights. Don’t settle for a model that just gives you an answer; strive for one where you actually understand why the answer is valid. That is where the real science begins.