Multiple Linear Regression Calculator
Two predictors at once: the 3×3 normal equations solved by Gaussian elimination, adjusted R² beside raw R², the overall F, and each coefficient’s own t — with near-collinearity refused by name.
Multiple Linear Regression Calculator
Results recalculate instantly on every keystroke. Nothing you type is transmitted.
What this result does not account for
- Exactly two predictors — k-general matrices are out of scope
- No interaction terms or variable selection
In short: For y = 52, 55, 58, 61, 66, 64, 70, 72 with x₁ = 1..8 and x₂ = 2, 1, 4, 3, 6, 5, 8, 7, the normal equations solve to ŷ = 49.2 + 2.2·x₁ + 0.7·x₂ — exact coefficients. The fit carries R² = 0.975393, adjusted R² = 0.965551, and overall F = 99.098837 on df 2 and 5, p = 9.50e-5. The coefficient cards split the credit: b₁ = 2.2 (SE 0.475132, t = 4.630296, p = 0.005682) is carrying signal, while b₂ = 0.7 (SE 0.475132, t = 1.473276, p = 0.20067) is indistinguishable from noise — the multiple-regression lesson a single-predictor page cannot teach.
Formula
XᵀXb = Xᵀy solved for b · R²ₐᵈᵏ = 1 − (1−R²)(n−1)/(n−k−1) · F = (SSR/k)/(SSE/(n−k−1))
The 3×3 system is solved by Gaussian elimination with partial pivoting; a near-singular pivot refuses the page rather than inventing coefficients.
Worked Example
- Paste x₁, x₂ and y — same count, 4 to 500 rows (n − 3 must be positive).
- Read the plane and both R² flavours.
- Read the overall F, then EACH coefficient’s t and p.
- A collinearity refusal means the predictors overlap — drop one or gather different data.
Defaults: ŷ = 49.2 + 2.2·x₁ + 0.7·x₂; R² = 0.975393, adjR² = 0.965551; F = 99.098837 on df 2 and 5, p = 9.50e-5; b₁ t = 4.630296 (p = 0.005682), b₂ t = 1.473276 (p = 0.20067).
Strengths & Limits Of This Model
Where this engine is strong
- Near-collinearity refused instead of solved arbitrarily
- Per-coefficient t tests beside the overall F
Where it stops
- No standardized coefficients
- No residual diagnostics beyond the orthogonality guarantee
Practical Use Cases
Price models
size AND location together
Dose response
two inputs, one outcome, split credit
Coursework
the 3×3 solve shown, not conjured
Methodology & Editorial Standards
Computation runs in IEEE-754 double precision at full internal precision; rounding to two decimal places occurs strictly at the display layer, so no cumulative drift enters the result. All monetary outputs use accounting presentation — grouped thousands, two decimals, negatives in parentheses — so figures can be transcribed directly into a model or working paper. Division-by-zero and out-of-domain inputs return an em-dash rather than a misleading number.
This engine was reconciled against an independent reference implementation and hand-verified for the worked example above before release. Our full five-stage review process is published on the About Us page.
Disclaimer. This calculator is provided for informational and modelling purposes only and does not constitute financial, tax, legal, medical, or engineering advice. Verify all figures with a qualified professional before acting on them.
Multiple Linear Regression Calculator — 8 Expert FAQs
8 analyst-written answers to the questions practitioners actually ask — optimised for voice and answer-engine retrieval.
Why does adding x₂ change x₁’s slope?
Because each coefficient now holds the OTHER predictor fixed. In the default fit the simple-regression slope of y on x₁ is 2.833333; with x₂ in the model it reads 2.2 — the part of x₁’s effect that x₂ does not already explain. Coefficients in a multiple regression are conditional statements.
Why does adjusted R² exist beside R²?
Because raw R² can only rise when a predictor is added — even a column of noise nudges it up. Adjusted R² charges each predictor a degrees-of-freedom rent (0.975393 drops to 0.965551 here), which makes it the honest comparison across models of different sizes.
What does the overall F test that the coefficients’ t tests do not?
The F asks whether the predictors TOGETHER beat an empty model; each t asks whether ONE coefficient earns its seat given the other. Both matter: F = 99.098837 here says the plane beats the mean, while b₂’s p = 0.20067 says x₂ specifically may be dead weight.
What is collinearity and why refuse it?
When one predictor is (nearly) a multiple or blend of another, the normal equations lose their unique answer — infinitely many coefficient vectors fit equally well, and reporting any one of them is a fabrication with decimals. The page detects the near-singular pivot and refuses, rather than picking one arbitrary answer.
Can I read these p-values like the hypothesis-test page’s?
Same machinery, different object: each t tests ONE coefficient against zero on n − 3 degrees of freedom. The multiple-comparisons caution applies twice over — you are reading two tests (plus the F) from one fit, and the more predictors you shop, the more the 5% bar leaks.
Why do both slope coefficients share an SE here?
Because the default x₁ and x₂ are symmetric twins by design — a deliberately balanced demo. On real, lopsided data the standard errors separate, and the gap between them is itself diagnostic: a huge SE is the fingerprint of predictors shadowing each other.
How many rows does two-predictor regression need?
The arithmetic floor is n − 3 > 0, so 4 rows — and that is a floor, not advice: every row beyond the minimum buys the degrees of freedom the SEs and p-values spend. With n = 8 on the default, df = 5; with n = 6, the same fit would run on df = 3 and every t would wobble harder.
My predictors are on wildly different scales — do the coefficients compare?
Not directly: b₁ is per unit of x₁ and b₂ per unit of x₂, so a tiny coefficient on a large-scale predictor can matter more than a large one on a small scale. The t statistics are the scale-free comparison — standardized coefficients are out of scope here, stated as a boundary.