12 Common Stata Regression Mistakes That Can Produce Misleading Results

By Siddharth Gupta, dissertation expert | Last updated: 6 November 2026

Stata regression mistakes rarely announce themselves with an error message, because the command runs, a neat table appears and the p-values look friendly. That is exactly why these errors are dangerous.

In 12 years of reviewing dissertations, I have seen the same Stata regression mistakes repeat across business, health, economics and education projects, and most students did not lack effort. They simply trusted the output without checking what sat behind it. Most examples below use Stata’s built-in auto dataset or the nlswork panel, so you can reproduce them yourself.

Key takeaways

  • Most Stata regression mistakes come from specification (wrong variables, controls or form), not from the p-value.
  • Read N first, because Stata silently drops rows with missing values.
  • Test assumptions on the residuals right after regress, and choose standard errors to match your data structure.
  • Report the coefficient, confidence interval and practical size, and use causal words carefully.

What are Stata regression mistakes? Stata regression mistakes include errors in variable selection, model form, standard-error choice, assumptions or interpretation. Depending on the error, these can bias coefficients, distort uncertainty estimates or lead to unsupported conclusions.

The 12 Stata regression mistakes at a glance:

  1. Treating categories as numbers
  2. Losing observations without noticing
  3. Leaving out key controls
  4. Adding controls that distort the effect
  5. Forcing a straight line on a curve
  6. Misreading logs and interactions
  7. Skipping the heteroskedasticity check
  8. Testing normality on the wrong thing
  9. Misreading multicollinearity and VIF
  10. Ignoring clustered standard errors
  11. Ignoring influential observations
  12. Reading output without context

Jump to: Variable specification | Functional form | Assumptions | Output interpretation | Checklist | After the fix | FAQ

Common Regression Errors in Stata That Start with Variable Specification

Most common regression errors in Stata begin before you type regress, when variables are chosen and coded. These four Stata regression mistakes are easy to fix, yet they cause the quietest damage.

Mistake 1: Treating Categorical Variables as Continuous

I would check this first in any model. Say rep78 (repair record, coded 1 to 5) enters as a plain number, so Stata assumes that moving from 1 to 2 has the same effect as moving from 4 to 5, which real data rarely allow. Use factor variable notation instead:

sysuse auto, clear
regress price i.rep78

The i. prefix creates a separate dummy for each category against a base group, so choose the base on purpose, for example ib3.rep78. You should see one coefficient fewer than your number of categories.

What it does to your findings: A single slope can average an up-and-down pattern into something near zero, so a real effect looks like no effect, and for unordered codes such as region one slope has no meaning at all.

Mistake 2: Ignoring Missing Data and Silent Sample Loss

Stata drops any row with a missing value in any variable of the model, and it does not warn you loudly. Compare these two models:

misstable summarize price mpg rep78
regress price mpg
regress price mpg rep78

Abridged output:

. regress price mpg
      Number of obs =      74
. regress price mpg rep78
      Number of obs =      69

Five cars left the sample because rep78 has missing values, so your coefficient may change because of the new variable or because those cars disappeared. This is one of the Stata regression mistakes that never shows in the coefficient table, only in N.

Always read N first, and watch for codes like -99 or 9999 that are really missing values (mvdecode can convert them). See 12 common Stata missing-values mistakes for more checks. To compare models fairly, fit the larger model first, then immediately run the smaller model with if e(sample), restricting both models to the same observations.

What it does to your findings: Models in one table may rest on different samples, so you cannot say which variable changed the result.

Mistake 3: Leaving Out Important Controls

How do you check for omitted variable bias in Stata? You cannot test for it directly, because the missing variable is not in your data, so add theory-based controls one at a time and see if your key coefficient moves.

Omitted variable bias appears when a left-out variable drives both your predictor and your outcome, and auto shows it clearly:

regress price mpg
regress price mpg weight
Model mpg coefficient p-value
price on mpg about -239 below 0.001
price on mpg and weight about -50 about 0.57

Fuel economy looked expensive in the first model, but once weight enters, most of that effect disappears, because heavy cars are both thirsty and costly. The same pattern appears in dissertations whenever a headline effect really belongs to a missing variable.

Choose controls from theory and earlier literature, not by trying variables until the result looks good. If your analysis does not fit your question in the first place, read why your regression analysis does not match your research question.

What it does to your findings: The coefficient can be too large, too small or even the wrong sign, and the table gives no warning.

Mistake 4: Adding Bad Controls

A control is not always your friend. Suppose you study education and wages and also control for occupation:

webuse nlswork, clear
regress ln_wage grade
regress ln_wage grade i.occ_code

webuse needs an internet connection. Occupation is partly a result of education, so adding it removes part of the effect you want to measure, and you should also check N because occ_code may have missing values.

Controlling for something caused by both your predictor and your outcome can also create a false link, which is called collider bias. Ask whether the new variable causes your predictor or is caused by it, because bad controls are among the Stata regression mistakes that textbooks mention least.

What it does to your findings: The effect can shrink, vanish or appear from nowhere, and the direction is hard to guess without a causal sketch.

Stata Regression Specification Error: Wrong Functional Form

What is a Stata regression specification error? It is a mismatch between the model you estimated and the real relationship in the data, caused by missing variables, the wrong functional form or irrelevant variables, and it biases coefficients or distorts standard errors, so a tidy table can still mislead you.

Of all the Stata regression mistakes, functional form problems are the ones residual plots catch quickly.

Mistake 5: Forcing a Straight Line on a Curved Relationship

A straight line is only one possible shape, so fit the model and then look at the residuals:

regress price mpg
rvfplot, yline(0)
estat ovtest
linktest

Reading the rvfplot: Look for curvature (possible nonlinearity) and changes in residual spread (possible heteroskedasticity). The command above generates the plot for your own data.

Curvature in a residual plot can suggest incorrect functional form; a funnel-shaped spread is more suggestive of heteroskedasticity. Neither pattern, on its own, proves a particular diagnosis. estat ovtest runs the Ramsey RESET test, which adds powers of the fitted values, while linktest adds the squared prediction and asks whether it matters.

A small p-value from either test suggests possible model misspecification but does not identify its cause, so I treat these tests as screening tools rather than a diagnosis. If the relationship bends, try a squared term:

regress price c.mpg##c.mpg

The c. prefix tells Stata the variable is continuous, so the squared term is built correctly. My view is to add a squared term when theory suggests a turning point, not because a plot looks slightly curved.

What it does to your findings: Estimates are biased, and predictions go badly wrong at the extremes of your data.

Mistake 6: Misreading Logs and Interaction Terms

Logs and interactions change how you read a coefficient. With a logged outcome, a coefficient of -0.05, for example, means roughly 5 per cent lower price for one extra unit of the predictor.

generate lnprice = ln(price)
regress lnprice mpg
regress price c.mpg##i.foreign
margins foreign, at(mpg=(15 20 25))
marginsplot

In the interaction model, the mpg coefficient alone describes domestic cars only, and a marginsplot usually explains the difference faster than a table, so show the effect for each group.

What it does to your findings: You report the wrong size of effect, or call a group-specific effect an average one.

Unsure whether your Stata regression model is correctly specified?

Discuss confusing coefficients, functional forms and diagnostics before you write your results.

Discuss my Stata output on WhatsApp

Regression Assumptions in Stata You Must Test Before Trusting Results

OLS is the best linear unbiased estimator under the Gauss–Markov conditions, as explained in Wooldridge’s Introductory Econometrics. Some assumptions, such as exogeneity, depend on study design and cannot be established from residual tests; other diagnostics can be run after estimation. Skipping these checks is one of the most frequent Stata regression mistakes in student work.

Mistake 7: Skipping the Heteroskedasticity Check

How do you test for heteroskedasticity in Stata? Run estat hettest (Breusch-Pagan) or estat imtest, white (White’s test) straight after regress, and treat a p-value below 0.05 as a sign of unequal error variance.

regress price mpg weight
estat hettest
estat imtest, white

If exogeneity holds, heteroskedasticity alone does not bias OLS coefficient estimates, but the usual homoskedasticity-based standard errors, confidence intervals and p-values become unreliable. The usual fix is Huber-White (heteroskedasticity-consistent) standard errors:

regress price mpg weight, vce(robust)

Other options are a log transformation of the outcome or weighted least squares. In my opinion this is the easiest of the Stata regression mistakes to prevent, and my advice is to show ordinary and Huber-White results side by side in an appendix so an examiner sees the difference.

This option solves one problem only, and it will not repair omitted variables or a wrong functional form.

What it does to your findings: A p-value of 0.03 could honestly be above 0.05, or the reverse, so your conclusions rest on unreliable evidence.

Mistake 8: Testing Normality on the Wrong Thing

Do regression errors need to be normal? Normality supports exact finite-sample t and F inference under the classical model, but is not required for OLS to be unbiased or consistent. Residuals are a diagnostic approximation to the unobserved errors, not the same thing.

A common slip is to run Shapiro-Wilk on the dependent variable and use it to justify the whole model. Test the residuals instead:

predict res, residuals
qnorm res
swilk res

Non-normal residuals can distort t-tests and confidence intervals in small samples, but in large samples the central limit theorem protects you and formal tests flag trivial departures. Stata’s swilk works for 4 to 2,000 observations, so use sfrancia (up to 5,000) or sktest for larger samples. Read my Shapiro-Wilk test guide for interpretation.

I would rather see a Q-Q plot and one honest sentence than a p-value pasted without comment.

What it does to your findings: Testing the wrong variable can push you into needless transformations or make you doubt a sound model.

Mistake 9: Misreading Multicollinearity and VIF

What VIF value is too high? A common rule of thumb flags a VIF above 10, and some supervisors prefer 5. UCLA OARC’s regression diagnostics chapter covers the collinearity check step by step.

regress price mpg weight length
estat vif

Squared terms and interactions inflate VIF by design, so do not drop them for that reason alone. High VIF chiefly indicates imprecise estimates for the affected predictors; assess its importance for the coefficients and comparisons that answer your research question. My rule is to never drop a theory-driven variable only because of a high VIF, and the variance inflation factor guide gives a full walk-through.

What it does to your findings: Standard errors widen, and coefficients can swing or flip sign when you add or remove a variable.

Mistake 10: Using the Wrong Standard Errors for Clustered or Panel Data

If women appear in several years of a survey, or students sit inside schools, their errors are related, so ordinary standard errors look too small and results look better than they are.

webuse nlswork, clear
regress ln_wage age tenure
regress ln_wage age tenure, vce(cluster idcode)
xtset idcode year
xtreg ln_wage age tenure, fe vce(cluster idcode)

Choose clustered standard errors based on the sampling design, repeated observations and likely within-group dependence; simply being able to name groups is not enough. With relatively few clusters, conventional cluster-robust inference may be inaccurate, depending on the number and balance of clusters and the study design. Consider appropriate small-sample adjustments and disclose this limitation. If your sampling design itself is clustered, read stratified vs cluster sampling, and for time series data also check autocorrelation with Durbin-Watson test interpretation.

What it does to your findings: Standard errors are too small, so significance is overstated.

Mistake 11: Ignoring Influential Observations

How do you find outliers and influential cases in Stata? Run predict cook, cooksd after regress and list cases above 4/N, a cut-off that UCLA OARC’s regression diagnostics chapter also mentions.

One unusual car, patient or firm can tilt a whole line.

predict cook, cooksd
list make price cook if cook > 4/e(N)

Rerun the model without the flagged cases and compare. I would rather keep a strange case and report it than delete it quietly.

What it does to your findings: A single case can create, hide or reverse a coefficient.

Stata Regression Output Interpretation: Where Good Models Get Misread

Mistake 12: Reading p-values, R-squared and Coefficients Without Context

The last of the 12 Stata regression mistakes is about reading the model, not running it, and four habits cause most of the trouble.

The first habit is treating a small p-value as proof that an effect matters. A p-value measures how incompatible a test statistic is with a specified null model; it does not measure effect magnitude or practical importance. The second is judging a model by R-squared, because low values are normal in social science and high values can come from a badly specified model. The third is using causal words such as “affects” or “leads to” for an ordinary regression on observational data, so say “is associated with” unless your design supports more.

The fourth is ignoring endogeneity: if the outcome also influences the predictor, or a key variable is measured with error, OLS is biased and no diagnostic above will catch it. The ivregress 2sls command helps only with a valid instrument, which is hard to find, so careful wording is often the honest answer.

How to Read the Key Blocks of regress Output

  1. Number of obs: confirms your sample, so read it first.
  2. Coefficient and 95% confidence interval: show direction and plausible size.
  3. P-value: read it last, as a supporting signal.
  4. R-squared and Root MSE: show fit, not truth.

What the Research Says: My Critique of Three Well-Known Papers

I like reading the methods literature before advising students, and three papers explain several Stata regression mistakes better than most manuals do, although I do not agree with all of each.

Cinelli, Forney and Pearl (2022, in print 2024), “A Crash Course in Good and Bad Controls” Sociological Methods & Research

They show that some controls remove bias while others create it. I agree with the logic, but it assumes you know the causal diagram, and most dissertation students have never drawn one. My advice is to sketch it before adding a single control.

Abadie, Athey, Imbens and Wooldridge (2023), “When Should You Adjust Standard Errors for Clustering?” Quarterly Journal of Economics

They argue that clustering should follow how the sample was drawn and how treatment was assigned, not just whether errors look related. That is correct, but students can read it as permission to skip clustering. With small grouped datasets, I still prefer to cluster and explain the choice.

Wasserstein and Lazar (2016), the American Statistical Association statement on p-values The American Statistician

It says a p-value does not measure effect size or importance. I agree, though it tells students what not to do and says little about what to report instead. My answer is simple: report the coefficient, its confidence interval and one sentence on practical size.

For command details, the StataCorp Regression Postestimation manual is a reliable reference.

How to Check Regression Results in Stata: A Pre-Submission Checklist

How do you check regression results in Stata? Confirm your sample size, test the specification, check variance and clustering, test multicollinearity, residuals and influential cases, then report intervals and effect sizes with careful wording.

This is the routine I recommend before you submit any model, and it turns the 12 Stata regression mistakes above into seven steps.

Use the following seven-step diagnostic workflow as a pre-submission checklist:

  1. Inspect the data: codebook and misstable summarize show impossible values and missing codes.
  2. Confirm the sample: compare e(N) with your dataset size and document excluded observations.
  3. Test the specification: rvfplot, estat ovtest, linktest, plus theory-based controls.
  4. Check variance and clustering: estat hettest, then choose suitable standard errors.
  5. Check multicollinearity: estat vif.
  6. Check residuals and outliers: qnorm, swilk, predict cook, cooksd.
  7. Interpret with care: report the interval, practical size and careful wording.

The Damage Report: Mistake, Check and Effect

The table below links each of the Stata regression mistakes to the check that catches it and the harm it does.

# Mistake Stata check Effect on findings
1 Categories as numbers i. prefix Forced linear pattern
2 Silent sample loss misstable, e(N) Models use different samples
3 Omitted controls Compare models Biased coefficient
4 Bad controls Causal sketch Hides or creates an effect
5 Wrong functional form rvfplot, ovtest, linktest Misfit, biased estimates
6 Logs and interactions misread margins Wrong interpretation
7 Heteroskedasticity estat hettest Misleading p-values
8 Normality tested wrongly qnorm, swilk on residuals Wrong remedy
9 Multicollinearity estat vif Unstable coefficients
10 Clusters ignored vce(cluster) Standard errors too small
11 Influential cases predict cooksd One case drives the result
12 Output misread Interval, effect size Overclaimed conclusions

The Coefficient Drift Tracker

Keep a running table of how your key coefficient moves across models, and if it jumps, ask why before you write a single sentence.

regress price mpg
estimates store m1
regress price mpg weight
estimates store m2
estimates table m1 m2, b(%9.2f) p(%6.3f) stats(N r2)

Lead Magnet: Copy-and-Run Diagnostic Do-File

Copy this do-file and swap in your own variables, because it runs the checks that catch these Stata regression mistakes in one go.

* Stata regression diagnostic do-file (auto dataset: swap in your own variables)
sysuse auto, clear

* 1. Inspect the data and missing values
codebook price mpg weight rep78, compact
misstable summarize price mpg weight rep78

* 2. Estimate the model and confirm the sample
regress price mpg weight i.foreign
display "Observations used: " e(N)

* 3. Specification checks
estat ovtest
linktest
rvfplot, yline(0)

* 4. Heteroskedasticity
estat hettest
estat imtest, white

* 5. Multicollinearity
estat vif

* 6. Residual normality
predict resid, residuals
qnorm resid
swilk resid

* 7. Influential observations
predict cook, cooksd
list make price cook if cook > 4/e(N)

* 8. Final model with Huber-White standard errors
regress price mpg weight i.foreign, vce(robust)

What to Do After You Fix Your Model

Export your tables. Install estout, described in the Stata Journal, with ssc install estout, then store your models and run esttab m1 m2 using results.rtf, replace se. The outreg2 command also works.

Report like an examiner will read it. Show N, the coefficient, the confidence interval and one sentence on the checks you ran, with diagnostics in an appendix. If you are still choosing a method, see different types of statistical analysis techniques.

Run sensitivity checks. Refit without influential cases, with alternative controls, and with and without clustering. If your finding survives, say so, and if it does not, say that too.

Carry the same logic to other models. Related specification and interpretation mistakes occur in logit and panel models. See 12 Stata logistic regression interpretation mistakes for binary outcomes; linktest also works after logit. For fixed versus random effects, the classic hausman test needs ordinary standard errors, so with clustered errors look at the user-written xtoverid. R users have equivalents in lmtest::bptest() and car::vif(), and you can practise on real survey data from the UK Data Service or ICPSR.

When a Second Pair of Eyes Saves Your Dissertation

What a Regression Review Covers, and What It Does Not

A review checks your specification, assumptions, output reading and write-up, but it does not replace your own analysis or your supervisor. The aim is that you understand why a model fails, so you can defend it in your UK viva or US dissertation defence.

Stata regression mistakes are usually easier to correct before submission than after the results have been written up. If you are not sure you need help, start with how to know if you need a dissertation expert, or read how to find a dissertation writing mentor. If an AI tool wrote your Stata code, read how to verify AI-generated dissertation analysis before you submit.

If you would like a second opinion on your model, explore Statssy’s Stata tutoring and model-review support.

Want another review before submitting your regression results?

Share your Stata output and research question to discuss assumptions, standard errors and interpretation.

Request a Stata model review on WhatsApp

Two Illustrative Scenarios

These are illustrative scenarios, not real client cases, written to show how two Stata regression mistakes from this list play out.

Scenario 1: the vanishing sample. A UK public health master’s student models blood pressure on a lifestyle score, and her first model uses 412 participants. After she adds three controls, the table quietly uses 289, and the lifestyle effect loses its significance. Refitting both models on the same 289 cases with if e(sample) shows the effect is weak in both, so the honest fix is a missing-data paragraph, not a new story.

Scenario 2: the too-good p-value. A US education student studies tutoring hours and test scores for about 900 pupils across 18 schools, and ordinary standard errors give a very small p-value. With vce(cluster school_id) the p-value rises above 0.05 and the interval widens considerably. The finding is less exciting but honest, and the discussion chapter becomes stronger because it admits the limit.

Stata Regression Mistakes: Frequently Asked Questions

How do I interpret regression output in Stata?

Start with Number of obs to confirm your sample, then read each coefficient with its 95% confidence interval and look at the p-value last. The coefficient shows the average change in the outcome for a one-unit change in the predictor, holding other variables fixed. R-squared shows fit, not correctness.

Should I always use heteroskedasticity-consistent standard errors in Stata?

Not necessarily. Heteroskedasticity-consistent standard errors can be justified by study design without first requiring a significant estat hettest. Use vce(robust) for independent observations when appropriate; clustered or survey data require standard errors matching their design. They fix only that one problem, so they cannot repair omitted variables, wrong functional form or clustered data, and you should use them alongside the other checks, not instead of them.

Why is my R-squared low or high, and does it matter?

A low R-squared is normal when human behaviour is involved, and it does not make a model wrong. A very high one can signal a badly specified model, such as a predictor that is really part of the outcome. Judge the model by theory, residual checks and sensible coefficients, not R-squared alone.

How do I know if my regression model is good?

A good model follows theory, passes the checks in this guide and keeps a stable key coefficient when you make reasonable changes. Avoiding the Stata regression mistakes above is a strong start. Always report the sample size, confidence intervals and the limits of your design.

Why did my sample size change after adding variables?

Stata drops every row with a missing value in any variable of the model, and this is one of the most common Stata regression mistakes because the coefficient table does not warn you. Check misstable summarize and e(N), then compare models on the same sample with if e(sample).

Is a significant p-value enough to trust my regression?

No. A p-value does not show effect size, correct specification or causation, and many Stata regression mistakes still produce small p-values. Check the confidence interval, the assumptions and the practical size before you trust the result.

Before your next draft goes to your supervisor, run the do-file once and read three things: N, the residual plot and the confidence interval. Those three glances catch most of what goes wrong.

Siddharth Gupta is an independent data consultant and dissertation expert with 12 years of experience in research writing and statistics. He holds an MBA in Finance and a BE in Electronics and Communication Engineering, and works with Stata, R, SPSS and Power BI. He writes about Stata regression mistakes and research methods for researchers in the USA and UK. Connect on LinkedIn.

Perfect for students, researchers, and professionals looking to build real statistical skills.