I have a lot of $x,y$ data. I was considering using linear regression to fit the equation $y=mx+c$, but I want to find a value for $m$ that makes $c$ as near as possible to zero.

Can I therefore use the equation $y=mx$ and merely divide the sum of all $y$ by the sum of all $x$ to obtain $m$?

Would it be appropriate to square the data before summing, and then square-root, so that there is least-squared error? This would however mean that $m$ will inevitably be positive, which may be wrong.

Edit: C is actually an error term which I would like to be zero. When I have new data for x, and I want to predict y, would it be better to use m from fitting y=mx, or would it be better to use m from fitting y=mx+c and pretend that c is zero?


If you want $c$ to be exactly 0, just fit a linear regression without an intercept.

Dividing $y$ by $x$ would be a bad idea, unless you assume the error is proportional to $x$. There is no reason why you should take the sum. No need to square the data.

If you only need a soft constraint, i.e. $c$ near zero, you could fit a Bayesian linear regression with a prior on $c$ centred on 0 and arbitrarily sharp.

  • 3
    $\begingroup$ The wikipedia article on simple linear regression has an entire section for this '$y=\beta x + \epsilon$' case : Simple linear regression without the intercept term (single_regressor) Instead of estimating the $\beta$ by using the ratio of the means $\hat\beta = \frac{\bar{y}}{\bar{x}} = \frac{\sum{y_i}}{\sum{x_i}}$ you will be using a ratio of weighted mean $\hat \beta = \frac{\sum{x_i y_i}}{\sum x_i x_i}$. $\endgroup$ – Martijn Weterings Jun 27 at 9:07
  • 1
    $\begingroup$ But indeed, much more important is describing the situation well. What can we assume about the errors (I think it is wrong to call dividing $y$ by $x$ a bad idea, or at least it is expressed very strongly and has less of the nuance that follows in your answer)? Is $c$ fixed to zero or does it follow a distribution centered around zero? Etc. $\endgroup$ – Martijn Weterings Jun 27 at 9:08
  • $\begingroup$ I expect c to be centered around zero. Would this make any difference to the calculation of m? $\endgroup$ – HumbleOrange Jun 27 at 12:37
  • $\begingroup$ If you assume $c = 0$ but it's not, the model is misspecified and the estimation of $m$ will be biased. If your assumption is just that $c$ is near 0, you could just try a regression with an intercept and check the intercept estimate post-hoc. As I have mentioned a better solution would be a Bayesian linear regression which would allow you to explicitly encode the belief that $c$ should be near 0. You could do this with the brms or rstanarm packages in R for instance. $\endgroup$ – Guillem Jun 27 at 12:57

As Guillem side: fit a linear regression without intercept. This will make sure the squared error is minimized and satisfy your requirement.

In R, you can do lm(y~x-1).

Details: search linear regression without intercept


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.