Skip to main content

Graphics in SAS SGPLOT illustrating ANOVA analysis results.

Output and graphics from statistical programming packages are often time-consuming to read and interpret. In peer-reviewed publications you usually provide both a written assessment, tables and graphics illustrating data and analysis results. ANOVA analysis is still a very common analysis technique and it is possible to beautify the output from analysis using PROC SGPLOT

ods graphics;
proc format lib=work;
value timevar
12='0-12 hrs'
18='12-18 hrs'
24='18-24 hrs'
32='Cumulated 0-24 hrs'
;
run;
proc sql;
  create table estimates
    (  Treatment char(12) label='Treatment Group'
     , Time      num      label='Visit number'
     , Time2     num      label='Visit number'
     , TimeVar   char(18) label='Visit number'
     , Mark      char(8)  label='p values'
     , Est       num      label='Est'
     , LCL       num      label='LCL'
     , UCL       num      label='UCL'
    )
  ;
insert into estimates
values('Control', 12, 12,  '0-12 hrs', '',87.5000,65.9552,109.0448)
values('Control', 18, 18, '12-18 hrs', '',23.1250,15.7518,30.4982)
values('Control', 24, 24, '18-24 hrs', '',16.8750,10.3570,23.3930)
values('Control', 32, .,'Cumulated 0-24 hrs', '',127.7083,101.1505,154.2661)
values('Intervention', 12, 12, '0-12 hrs', 'p=0.0159',50.0000,28.4552,71.5448)
values('Intervention', 18, 18, '12-18 hrs', 'p=0.0256',11.2500,3.8768,18.6232)
values('Intervention', 24, 24, '18-24 hrs', 'p=0.0462',7.5000,0.9820,14.0180)
values('Intervention', 32, .,'Cumulated 0-24 hrs', 'p=0.0023',69.3750,42.8172,95.9328)
  ;
quit;
title 'Morphine consumption during postop';
proc sgplot data=estimates;   format Time Time2 timevar.;   scatter x=Time y=est / yerrorlower=LCL yerrorupper=UCL group=Treatment groupdisplay=cluster clusterwidth=0.2 errorbarattrs=(thickness=1) datalabel=Mark DATALABELPOS=BOTTOMRIGHT DATALABELATTRS=(color=BLACK);   series  x=Time2 y=est / lineattrs=(pattern=solid) group=Treatment groupdisplay=cluster clusterwidth=0.2 lineattrs=(thickness=2) name='s';   yaxis label='Mean with 95% CL' grid;   xaxis display=(nolabel);   keylegend 's' / title='Treatment'; run;
proc sgplot data=estimates;   format Time Time2 timevar.;   scatter x=Time y=est / yerrorlower=LCL yerrorupper=UCL group=Treatment groupdisplay=cluster clusterwidth=0.2 errorbarattrs=(thickness=1) DATALABELPOS=BOTTOMRIGHT DATALABELATTRS=(color=BLACK);   series  x=Time2 y=est / lineattrs=(pattern=solid) group=Treatment groupdisplay=cluster clusterwidth=0.2 lineattrs=(thickness=2) name='s';   yaxis label='Mean with 95% CL' grid;   xaxis display=(nolabel); run;









Comments

Popular posts from this blog

Alder/korrekt århundrede udfra cpr nummer

De fleste, der arbejder med registre eller databaser, står ofte med problemstillingen, at alder er uoplyst, medens cpr-nummer er kendt. Hvordan regner man den ud? Følgende regel er gældende: Hvis syvende ciffer er 0, 1, 2 eller 3 er man født i det 20. århunderede (1900-tallet) Ligeledes, hvis syvende ciffer er 4 eller 9, og årstallet (femte og sjette ciffer) er større end eller lig 37. Endelig er man født i det 19. århundrede (1800-tallet) hvis syvende ciffer er 5, 6, 7 eller 8 og årstallet er større end eller lig 58. Nedenfor finder du eksempel i SAS kode: En lille makro, der udover fødselsdato også udregner køn samt den præcise alder givet datovariabel. Kilde: Opbygning af CPR nummeret, cpr.dk proc format library=work; value gender 0="Female" 1="Male" ; run; %macro agefromCPR(cpr,datevar=inddto,birthvar=birth,agevar=age); dy_temp=input(substrn(&cpr,1,2),2.); mt_temp=input(substrn(&cpr,3,2),2.); yr_temp=input(substrn(&cpr,5,2),

HackRF on Windows 8

This technical note is based on  an extract from thread . I have made several changes and added recommendations. I have experienced lot of latency using GnuRadio and HackRF on Pentoo Linux, so I wanted to try out GnuRadio on Windows. HackRF One is a transceiver, so besides SDR capabilities, it can also transmit signals, inkluding sweeping a given range, uniform and Gaussian signals. Pentoo Linux provides the most direct access to HackRF and toolboxes. Install Pentoo Linux on a separate drive, then you can use osmocom_siggen from a terminal to transmit signals such as near-field GSM bursts, which will only be detectable within a meter. Installation of MGWin and cmake: Download and install the following packages: - MinGW Setup (Go to the Installer directory and download setup file) - CMake (I am using CMake 3.2.2 and I installed it in C:\CMake, this path is important in the commands we must send in the MinGW shell) Download and extract the packages

Comorbidity indexes in SQL

Generating Elixhauser comorbidity index from Danish National Health Register as relational database. ( ICD 10 Coding  in SAS) A lookup-table based version of Charlson comorbidity index I made in SQL. A similar approach can be applied to Elixhauser. SELECT V_CPR, MAX(EI1)+MAX(EI2)+MAX(EI3)+MAX(EI4)+MAX(EI5)+ MAX(EI6)+MAX(EI7)+MAX(EI8)+MAX(EI9)+MAX(EI10)+ MAX(EI11)+MAX(EI12)+MAX(EI13)+MAX(EI14)+MAX(EI15)+ MAX(EI16)+MAX(EI17)+MAX(EI18)+MAX(EI19)+MAX(EI20)+ MAX(EI21)+MAX(EI22)+MAX(EI23)+MAX(EI24)+MAX(EI25)+ MAX(EI26)+MAX(EI27)+MAX(EI28)+MAX(EI29)+MAX(EI30)+MAX(EI31) AS Elixhauser FROM (SELECT V_CPR, -- Congestive Heart Failure CASE WHEN DIAG LIKE 'DI099%' OR DIAG LIKE 'DI110%' OR DIAG LIKE 'DI130%' OR DIAG LIKE 'DI132%' OR DIAG LIKE 'DI255%' OR DIAG LIKE 'DI420%' OR DIAG LIKE 'DI425%' OR DIAG LIKE 'DI426%' OR DIAG LIKE 'DI427%' OR DIAG LIKE 'DI428%' OR DIAG LIKE 'DI429%' OR D