SAS Helpful Hints
Proc Genmod
Fits General Linear Models.
Proc Genmod Data=work.A;
Class treatment gender;
Model dependent=treatment gender other_independents
treatment*gender
/ Dist=[Binomial Gamma
Igaussian Multinomial Negbin Normal or Poisson] ;
Lsmeans treatment;
Output Out=work.glmout Predicted=pred;
*estimate the interaction of treatment &
level;
*NOTE: treatment, level & treatment*level
must be in the model.
Estimate 'Level 1' treatment -1 1 treatment*level
-1 0 0 1 0 0;
Estimate 'Level 2' treatment -1 1 treatment*level
0 -1 0 0 1 0;
Estimate 'Level 3' treatment -1 1 treatment*level
0 0 -1 0 0 1;
Run;
Here is a Macro for Genmod if you need to call the procedure several
times.
%Macro genmod1(dataset,depend,claslist,covlist,subj,offset,within);
*Ods Trace On;
Ods Listing Select None;
Ods Output Clear;
Ods Output ModelInfo(Match_all Persist=Proc)=work.ModelInfo
ClassLevels(Match_all
Persist=Proc)=work.Class
ParmInfo(Match_all
Persist=Proc)=work.ParmInfo
ModelFit(Match_all
Persist=Proc)=work.ModelFit
ConvergenceStatus(Match_all
Persist=Proc)=work.Convergence
ParameterEstimates(Match_all
Persist=Proc)=work.Parameter
GEEModInfo(Match_all
Persist=Proc)=work.ModInfo
GEEWCorr(Match_all
Persist=Proc)=work.correlat
GEEEmpPEst(Match_all
Persist=Proc)=work.estimates;
Proc Genmod Data=&dataset;
Class &claslist;
Model &depend=&covlist
/ Dist=Poisson Link=Log Offset=&offset Scale=Pearson;
Repeated Subject=&subj
/ Type=EXCH Within=&within Corrw;
Run;
Ods Listing Select All;
Proc Print Data=work.correlat Label;
Id RowName;
Var Col1 Col2 Col3;
Run;
Proc Print Data=work.estimates Label;
Id Parm;
Var Level1 Estimate
Stderr LowerCL UpperCL Z ProbZ;
Run;
*Ods Trace Off;
%Mend genmod1;
Title2 'Dependent is X';
*%genmod1(dataset,depend,clas,covlist,subj,offset,within);
%genmod1(work.A,X,id visit,treat visit treat*visit,id,time,visit);
Please send your comments and suggestions about this web page to A. Watts
(watts@bst.rochester.edu)
|