# Least Square Means or Adjusted Means

**URL:** <https://discourse.julialang.org/t/least-square-means-or-adjusted-means/49707>\
**Category:** Statistics\
**Created:** [November 6, 2020, 9:50pm UTC](https://discourse.julialang.org/t/least-square-means-or-adjusted-means/49707 "2020-11-06T21:50:38Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![younghan-lee](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/younghan-lee/32/19224_2.png) [@younghan-lee](https://discourse.julialang.org/u/younghan-lee)\
**Post date:** [November 6, 2020, 9:50pm UTC](https://discourse.julialang.org/t/least-square-means-or-adjusted-means/49707/1 "2020-11-06T21:50:38Z")

</div>

Hello,  
I am trying to get least square means or adjusted means in Julia from my dataset.  
I’ve been using ‘emmeans’ in R or ‘lsmean’ in SAS, equivalently.  
Would there be any Julia package or way to do it in Julia?  
Thank you.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [November 8, 2020, 12:58pm UTC](https://discourse.julialang.org/t/least-square-means-or-adjusted-means/49707/2 "2020-11-08T12:58:04Z")

</div>

> [@younghan-lee](#):
>
> least square means

I am not sure what does are — generally, [arithmetic means minimize squared deviations](https://en.wikipedia.org/wiki/Arithmetic_mean#Motivating_properties), so `Statistics.mean` should be fine.

---

<div class="post-metadata">

**Author:** ![younghan-lee](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/younghan-lee/32/19224_2.png) [@younghan-lee](https://discourse.julialang.org/u/younghan-lee)\
**Post date:** [November 8, 2020, 1:09pm UTC](https://discourse.julialang.org/t/least-square-means-or-adjusted-means/49707/3 "2020-11-08T13:09:42Z")

</div>

Thank you for your reply!  
Least Squares Mean is a mean estimated from a linear model, adjusted for other covariates in the model. It is easy to find relevant packages in other languages but I can’t find any in Julia. ☹

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [November 8, 2020, 2:15pm UTC](https://discourse.julialang.org/t/least-square-means-or-adjusted-means/49707/4 "2020-11-08T14:15:59Z")

</div>

This sounds like a simple linear regression (OLS)? In that case you should probably look at GLM.jj

---

<div class="post-metadata">

**Author:** ![tbeason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbeason/32/15898_2.png) [@tbeason](https://discourse.julialang.org/u/tbeason)\
**Post date:** [November 8, 2020, 4:46pm UTC](https://discourse.julialang.org/t/least-square-means-or-adjusted-means/49707/5 "2020-11-08T16:46:17Z")

</div>

Looking at the SAS page for LSMEANS, I don’t believe we have anything that does this in GLM.jl. It seems like you could construct it with what GLM returns though.

(I’m also not familiar with this concept. Looks a bit like “marginal effects at the mean” but then again not quite.)

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [November 8, 2020, 5:06pm UTC](https://discourse.julialang.org/t/least-square-means-or-adjusted-means/49707/6 "2020-11-08T17:06:28Z")

</div>

Interesting - a bit of googling seems to suggest that this is something that SAS invented? Here’s a CrossValidated answer that suggests lsmeans could be obtained using GLM and the `predict` function: [Are LSMeans calculated from Predicted Values? - Cross Validated](https://stats.stackexchange.com/questions/284121/are-lsmeans-calculated-from-predicted-values)

Also note that it’s easy to call R from Julia using RCall.jl, so you can keep using emmeans through R (and shifting your data over with the `@rput` macro), or at least try to create your adjusted means from a linear model fit with GLM.jl and then compare to the R results easily.

---

<div class="post-metadata">

**Author:** ![younghan-lee](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/younghan-lee/32/19224_2.png) [@younghan-lee](https://discourse.julialang.org/u/younghan-lee)\
**Post date:** [November 10, 2020, 8:22am UTC](https://discourse.julialang.org/t/least-square-means-or-adjusted-means/49707/7 "2020-11-10T08:22:02Z")

</div>

Thanks 🙂

---

<div class="post-metadata">

**Author:** ![younghan-lee](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/younghan-lee/32/19224_2.png) [@younghan-lee](https://discourse.julialang.org/u/younghan-lee)\
**Post date:** [November 10, 2020, 8:22am UTC](https://discourse.julialang.org/t/least-square-means-or-adjusted-means/49707/8 "2020-11-10T08:22:41Z")

</div>

Thanks 🙂  
I guess RCall may be a good solution for now!
