- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
- 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
Thanks and well noted. The 5 checks are all identical, but some missing data. Then in this case, it makes sense to have different LSDs. many thanks again. Gaston
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
hi is the above code used for LSD at 0.05 or 0.1 ? I would like to obtain the LSD value at 0.1 thanks
- 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
Hi Steve, Please is the 0.05 in the lsd equation for 5% significant level?, can it be changed to lsd=stderr*tinv(1-0.1/2,df). Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
##- 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 !!!