BookmarkSubscribeRSS Feed
RickM
Fluorite | Level 6
Hi,

I am trying to reproduce lsmeans from proc GLM in R and with the help of the online docs and through matrix algebra I can recreate everything but the standard error of the difference of lsmeans.

From the SAS doc:
for LS-means defined by the linear combinations li'b and lj'b of the parameter estimates, Sij^2=MSE*li'*inv(X'X)*lj

This is giving me a negative number.

For balanced data I could get the standard error by taking the square root of the sum of the variances (or sqrt(2)*se of the individual lsmean) but most of the time my data will be unbalanced so this does not hold.

Is there a nice closed form of the relationship between the se for individual lsmeans and their contrasts?

Thanks for your help,
Rick Message was edited by: RickM
2 REPLIES 2
RickM
Fluorite | Level 6
Ok I figured out how to get it. Really simple too. Instead of li and lj I needed L=li-lj and then do Sij^2=MSE*L'*inv(X'X)*L

Have a nice weekend.
Dale
Pyrite | Level 9
Yes, because using the vector li on the left and lj on the right of inv(X'X) just returns the covariance of the two lsmeans that are obtained from li*beta and lj*beta. But the standard error of the difference is the sum of the variances of the lsmeans minus 2 times the covariance of the lsmeans. By using the matrix L, you get all the necessary terms for computing the variance of the difference.

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 2 replies
  • 1449 views
  • 0 likes
  • 2 in conversation