I have a question which I can't find an answer online. When we ask a software (SAS, R,...) to calculate the LSMeans from a linear model, like regression, what is the procedure? Does the model find predicted values and simply calculates the mean, or is it slightly different?


1 Answer 1


I haven't heard the term LSmeans before, but from looking at the documentation of the lsmeans package, it looks like it simply computes predicted values from a regression.

Suppose you estimate the linear model $Y = \beta_1 X_1 + \beta_2 X_2 + \epsilon$ using OLS, to produce coefficient estimates $\hat{\beta}_1$ and $\hat{\beta}_2$. The LSmeans procedure simply computes the fitted value at some pre-specified values $\tilde{X}_1$ and $\tilde{X}_2$, as follows: $\tilde{Y} = \hat{\beta}_1 \tilde{X}_1 + \hat{\beta}_2 \tilde{X}_2$.

Using R's mtcars dataset, we can regress MPG on weight and an indicator for American-made. Then, we'll use the lsmeans package to get predicted values for both levels of American, holding weight at its mean.

> library(lsmeans)
> data(mtcars)
> mod = lm(mpg ~ wt + factor(am), mtcars)
> lsmeans.result = ref.grid(mod)
> summary(lsmeans.result)
     wt am prediction        SE df
3.21725  0   20.10022 0.8331837 29
3.21725  1   20.07660 1.0687077 29

We can reproduce the same prediction manually using predict:

> newdat = data.frame(wt = mean(mtcars$wt),
                      am = c(0, 1))
> manual.result = predict(mod, newdata = newdat)
> manual.result
       1        2 
20.10022 20.07660 

Note that this matches the "prediction" column from the LSmeans result exactly.

  • $\begingroup$ They are computed by obtaining predictions on the grid of all factor combinations, then averaging them together if you want marginal results. $\endgroup$
    – Russ Lenth
    Jun 8, 2017 at 21:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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