Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Home
- /
- Programming
- /
- SAS Procedures
- /
- LSD in Proc Mixed

Options

- RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Posted 02-07-2013 05:39 PM
(8744 views)

Can someone help me update this code for SAS 9.2 or suggest better. I found it on the web in Google Groups from 1998.

*****************

Proc mixed doesn't compute lsd directly, but it can be done using info. generated by the make statement. Look at this example:

proc mixed;

...

make "diffs" out=diffs;

quit;

data calc_lsd;

set;

lsd=_se_*tinv(1-.05/2,_df_);

**************

Thanks

16 REPLIES 16

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Replace the old make statement with an ODS OUTPUT statement:

ods output diffs=diffs;

And then use:

data calc_lsd;

set diffs;

lsd=stderr*tinv(1 -0.5/2,df);

run;

Steve Denham

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Thank you very much!

The program ran the code, but produced no output.

Can you provide code to generate output?

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Add a proc print.

proc print data=calc_lsd;

var lsd estimate stderr df;

run;

Steve Denham

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Many thanks for this.

Different values of LSD have been printed. which one to consider. The min of all the LSD?

Thanks

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

You probably have different values for the standard error of the differences, as a result of unequal observations in the effects you are comparing. Consequently, the LSD will differ from case to case. Sharing some more code, especially your PROC MIXED code, and some info on the design could help clarify this.

Steve Denham

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Many thanks Steve.

below is the dode:

Proc mixed;

class block variety;

model yield=variety;

random block;

lsmeans variety/pdiff;

ods output Diffs=d;

run;

This is an augmented design where 200 varieties and 5 checks have been tested in an Augmented randomized complete block design. The 200 varieties have been unreplicated in 20 blocks of 10 plots each. Each block has been completed by the 5 checks. Hence a total of 300 plots (200+5*20). Thanks

Gaston

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

So in the lsmeans table, are the standard errors of the varieties all equal? If not, then there is probably some missing data (variety within a block), so that the standard error of the difference is not constant. Also, are the 5 checks all identical check varieties? This also leads to unequal replication, unequal standard errors of the differences, and consequently, different LSDs.

Also, in a design of this type, block by variety is often included, since not all varieties are seen in each block, but the check varieties are, and this may represent a better source of residual error. Emphasis on the word may, there.

Steve Denham

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

In the equation

lsd=_se_*tinv(1-.05/2,_df_);

the value 0.05 represents the significance level, often denote by "alpha." So the answer to your question is that the LSD is for alpha=0.05. Use alpha=0.1 to get the LSD value that you are asking for.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Thanks!!!

##- Please type your reply above this line. Simple formatting, no

attachments. -##

##- Please type your reply above this line. Simple formatting, no

attachments. -##

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

I want to estimate LSD, can you tell me what is wrong ?

ods output diffs=ppp;

data calc_lsd;

set diffs;

lsd=stderr*tinv(1 -0.05/2,df);

proc print data=calc_lsd;

var lsd stderr df;

run;

For some reason that I ignore SAS indicates that the file diffs can not be created

Tkanks !!!

Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

**If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. **

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.