/**************************************************************************/
/* PROGRAM: Example SUDAAN Analysis Programs.SAS */
/* */
/* PURPOSE: THIS PROGRAM PROVIDES EXAMPLE ANALYSIS CODE FOR PRODUCING */
/* ESTIMATES FROM THE 2023 NIS-CHILD PUF USING SAS-CALLABLE */
/* SUDAAN. THE PROGRAM IS DIVIDED INTO FIVE SECTIONS: */
/* */
/* EXAMPLE 1: PRODUCE ESTIMATION AREA ESTIMATES AND STANDARD ERRORS */
/* FOR P_UTD431H314_ROUT_S */
/* */
/* EXAMPLE 2: PRODUCE STATE ESTIMATES AND STANDARD ERRORS */
/* FOR P_UTD431H314_ROUT_S */
/* */
/* EXAMPLE 3: PRODUCE A TABLE OF HAD_CPOX BY STATE FOR ALL HOUSEHOLD */
/* COMPLETES USING RDDWT_C */
/* */
/* EXAMPLE 4: PRODUCE A TABLE OF P_UTD431H314_ROUT_S BY INCPOV1 */
/* BY RACE_K */
/* */
/* EXAMPLE 5: PRODUCE A BAR CHART OF P_UTD431H314_ROUT_S BY */
/* INCPOV1 BY RACE_K */
/* */
/* SUDAAN NOTES: */
/* 1. ALL VARIABLES USED MUST BE NUMERIC. */
/* 2. VARIABLES IN THE SUBGROUP STATEMENT MUST HAVE VALUES 1,2,..K */
/* WHERE K IS THE NUMBER OF LEVELS FOR EACH VARIABLE. */
/* 3. DATA MUST BE SORTED ACCORDING TO THE SAMPLE DESIGN VARIABLES */
/* (STRATUM AND PRIMARY SAMPLING UNIT), SPECIFIED IN THE */
/* NEST STATEMENT. */
/**************************************************************************/
options ps = 78 ls = 90 obs = max;
*--- ASSIGN SAS LIBRARIES AND FILE NAMES ---*;
libname dd 'c:\nispuf23'; *--- Specify path to sas dataset ---*;
libname library 'c:\nispuf23'; *--- If dataset was created with formats stored ---*;
%let out = 'c:\nispuf23'; *--- Specify output location ---*;
libname out &out.;
*--- PERMANENTLY SPECIFY PATH TO LIBRARY ---*;
*--- OTHERWISE COMMENT THIS STATEMENT OUT ---*;
%let yy = 23; *--- YEAR OF DATA COLLECTION ---*;
%let in_file = dd.nispuf&yy.; *--- NAME OF SAS DATASET ---*;
%let ESTIAP = ESTIAP&yy.; * --- ESTIMATION AREA VARIABLE TO USE ---*;
%let RDDWT = RDDWT_C; * --- Weight to use for household variables (RDDWT_C is the single-frame cellular phone weight excluding territories. Use RDDWT_C_TERR to include territories) ---*;
%let PROVWT = PROVWT_C; * --- Weight to use for provider variables (PROVWT_C is the single-frame cellular phone weight excluding territories. Use PROVWT_C_TERR to include territories) ---*;
%let STRAT = STRATUM; * --- STRATUM variable to use for variance estimation (use STRATUM for all estimation) ---*;
*--- DEFINE FORMATS USED FOR ANALYSIS ---*;
proc format;
value putd431h314f
1 = "4:3:1:3:3:1:4 Up-to-Date"
2 = "Not 4:3:1:3:3:1:4 Up-to-Date"
;
value estiapf
0 = "U.S. Total"
1 = "CT"
2 = "MA"
4 = "ME"
5 = "NH"
6 = "RI"
7 = "VT"
8 = "NJ"
10 = "NY-Rest of State"
11 = "NY-City of New York"
12 = "DC"
13 = "DE"
14 = "MD"
16 = "PA-Rest of State"
17 = "PA-Philadelphia County"
18 = "VA"
19 = "WV"
20 = "AL"
22 = "FL"
25 = "GA"
27 = "KY"
28 = "MS"
29 = "NC"
30 = "SC"
31 = "TN"
34 = "IL-Rest of State"
35 = "IL-City of Chicago"
36 = "IN"
38 = "MI"
40 = "MN"
41 = "OH"
44 = "WI"
46 = "AR"
47 = "LA"
49 = "NM"
50 = "OK"
51 = "TX-Rest of State"
54 = "TX-City of Houston"
55 = "TX-Bexar County"
56 = "IA"
57 = "KS"
58 = "MO"
59 = "NE"
60 = "CO"
61 = "MT"
62 = "ND"
63 = "SD"
64 = "UT"
65 = "WY"
66 = "AZ"
68 = "CA"
72 = "HI"
73 = "NV"
74 = "AK"
75 = "ID"
76 = "OR"
77 = "WA"
106 = "Puerto Rico"
;
value STATEf
0 = "U.S. Total"
1 = "Alabama"
2 = "Alaska"
4 = "Arizona"
5 = "Arkansas"
6 = "California"
8 = "Colorado"
9 = "Connecticut"
10 = "Delaware"
11 = "District of Columbia"
12 = "Florida"
13 = "Georgia"
15 = "Hawaii"
16 = "Idaho"
17 = "Illinois"
18 = "Indiana"
19 = "Iowa"
20 = "Kansas"
21 = "Kentucky"
22 = "Louisiana"
23 = "Maine"
24 = "Maryland"
25 = "Massachusetts"
26 = "Michigan"
27 = "Minnesota"
28 = "Mississippi"
29 = "Missouri"
30 = "Montana"
31 = "Nebraska"
32 = "Nevada"
33 = "New Hampshire"
34 = "New Jersey"
35 = "New Mexico"
36 = "New York"
37 = "North Carolina"
38 = "North Dakota"
39 = "Ohio"
40 = "Oklahoma"
41 = "Oregon"
42 = "Pennsylvania"
44 = "Rhode Island"
45 = "South Carolina"
46 = "South Dakota"
47 = "Tennessee"
48 = "Texas"
49 = "Utah"
50 = "Vermont"
51 = "Virginia"
53 = "Washington"
54 = "West Virginia"
55 = "Wisconsin"
56 = "Wyoming"
72 = "Puerto Rico"
;
value hadcpoxf
1 = "Yes"
2 = "No"
;
value incpvr2f
1 = "Above Poverty, > $75,000"
2 = "Above Poverty, < = $75,000"
3 = "Below Poverty"
4 = "Unknown"
;
value race_kf
1 = "White Only"
2 = "Black Only"
3 = "Other/Mult Race"
;
run;
data nispuf;
set &in_file. (keep = SEQNUMHH SEQNUMC &ESTIAP. &RDDWT. &PROVWT. &STRAT. STATE P_UTD431H314_ROUT_S HAD_CPOX RACE_K INCPOV1);
if P_UTD431H314_ROUT_S = 0 then P_UTD431H314_ROUT_S = 2; *--- Convert P_UTD431H314_ROUT_S = 0 to P_UTD431H314_ROUT_S = 2 ---*;
NSEQNUMHH = 1*SEQNUMHH; *--- Convert household ID SEQNUMHH from character to numeric ---*;
format &ESTIAP. ESTIAPf.
STATE STATEf.
P_UTD431H314_ROUT_S putd431h314f.
HAD_CPOX hadcpoxf.
INCPOV1 incpvr2f.
RACE_K race_kf.;
run;
************************************************************************
EXAMPLE 1: PRODUCE ESTIMATION AREA ESTIMATES AND STANDARD ERRORS FOR
P_UTD431H314_ROUT_S
************************************************************************;
proc sort data = nispuf;by &STRAT. NSEQNUMHH;run; *Sort by nest variables;
proc crosstab data = nispuf filetype = sas design = wr;
weight &PROVWT.;
nest &STRAT. NSEQNUMHH;
subgroup &ESTIAP. P_UTD431H314_ROUT_S;
levels 106 2;
tables &ESTIAP. * P_UTD431H314_ROUT_S;
print nsum wsum rowper serow / style = nchs;
rtitle "4:3:1:3:3:1:4 Estimates by Estimation Area";
rformat &ESTIAP. estiapf.;
rformat P_UTD431H314_ROUT_S putd431h314f.;
output rowper serow / filename = sud_est filetype = sas replace;
run;
proc print data = sud_est (where = (P_UTD431H314_ROUT_S = 1 and rowper ne .)) noobs label;
var &ESTIAP. rowper serow;
label rowper = 'Percent 4:3:1:3:3:1:4 Up-to-Date'
serow = 'Standard Error';
title "4:3:1:3:3:1:4 Estimates by Estimation Area";
run;
***************************************************************************
EXAMPLE 2: PRODUCE STATE ESTIMATES AND STANDARD ERRORS FOR
P_UTD431H314_ROUT_S
***************************************************************************;
proc sort data = nispuf;by &STRAT. NSEQNUMHH;run; *Sort by nest variables;
proc crosstab data = nispuf filetype = sas design = wr;
weight &PROVWT.;
nest &STRAT. NSEQNUMHH;
subgroup STATE P_UTD431H314_ROUT_S;
levels 72 2;
tables STATE * P_UTD431H314_ROUT_S;
print nsum wsum rowper serow /style = nchs;
rtitle "4:3:1:3:3:1:4 Estimates by STATE";
rformat STATE STATEf.;
rformat P_UTD431H314_ROUT_S putd431h314f.;
output rowper serow / filename = sud_est2 filetype = sas replace;
run;
*** Exclude 3,7,14,43,52,57-71,73-78 since there are no states with these FIPS codes ***;
proc print data = sud_est2 (where = (P_UTD431H314_ROUT_S = 1 and rowper ne . and STATE notin (3,7,14,43,52) and not(57 <= STATE <= 71) and not (73 <= STATE <= 78))) label noobs;
format STATE STATEf.;
var STATE rowper serow;
label rowper = 'Percent 4:3:1:3:3:1:4 Up-to-Date'
serow = 'Standard Error';
title "4:3:1:3:3:1:4 Estimates by State";
run;
***************************************************************************
EXAMPLE 3: PRODUCE A TABLE OF HAD_CPOX BY STATE FOR ALL HOUSEHOLD
COMPLETES USING RDDWT_C
***************************************************************************;
proc sort data = nispuf;by &STRAT. NSEQNUMHH;run; *Sort by nest variables;
proc crosstab data = nispuf filetype = sas design = wr;
weight &RDDWT.;
nest &STRAT. NSEQNUMHH;
subgroup STATE HAD_CPOX;
levels 72 2;
tables STATE * HAD_CPOX;
print nsum wsum rowper serow / style = nchs;
rtitle "HAD_CPOX Estimates by State";
rtitle "Weighted by &RDDWT.";
rformat STATE STATEf.;
rformat HAD_CPOX hadcpoxf.;
output rowper serow / filename = sud_est3 filetype = sas replace;
run;
*** Exclude 3,7,14,43,52,57-71,73-78 since there are no states with these FIPS codes ***;
proc print data = sud_est3 (where = (HAD_CPOX = 1 and rowper ne . & STATE not in (3,7,14,43,52) and not (57 <= STATE <= 71) and not (73 <= STATE <= 78))) label noobs;
format STATE STATEf.;
var STATE rowper serow;
label rowper = 'Percent HAD_CPOX = Yes'
serow = 'Standard Error';
title "Child had Chicken Pox by State";
run;
***************************************************************************
EXAMPLE 4: PRODUCE A TABLE OF P_UTD431H314_ROUT_S BY INCPOV1 BY RACE_K
***************************************************************************;
proc sort data = nispuf;by &STRAT. NSEQNUMHH;run; *Sort by nest variables;
proc freq data = nispuf;
where &PROVWT. ne .;
tables P_UTD431H314_ROUT_S INCPOV1 RACE_K;
title "Table 4A. Q1/20&yy. - Q4/20&yy.: Unweighted Frequencies";
run;
proc crosstab data = nispuf filetype = sas design = wr;
weight &PROVWT;
nest &STRAT. NSEQNUMHH;
subgroup INCPOV1 RACE_K P_UTD431H314_ROUT_S;
levels 4 3 2;
tables (INCPOV1 * RACE_K * P_UTD431H314_ROUT_S);
print nsum wsum rowper = "4:3:1:3:3:1:4 Up-to-Date (rowper)"
serow = "Standard Error (serow)" /style = nchs;
rtitle "Table 4B. Q1/20&yy. - Q4/20&yy., Percent 4:3:1:3:3:1:4 Up-to-Date and Estimated Standard Errors";
rtitle "Weighted by &PROVWT.";
rformat P_UTD431H314_ROUT_S putd431h314f.;
rformat incpov1 incpvr2f.;
rformat race_k race_kf.;
output rowper serow / filename = sud_est4 filetype = sas replace;
run;
*Save % UTD estimates (not S.E.'s) for use in Example 5;
data out.sud_est4;
set sud_est4 (where = (P_UTD431H314_ROUT_S = 1 & incpov1 > 0 & race_k > 0));
keep incpov1 race_k rowper serow;
label rowper = '4:3:1:3:3:1:4 Up-to-Date';
format rowper 5.2 serow 5.2 RACE_K race_kf. INCPOV1 incpvr2f.;
run;
proc print data = out.sud_est4 label;
format race_k race_kf.;
format incpov1 incpvr2f.;
title "Table 4B. Q1/20&yy. - Q4/20&yy.: 4:3:1:3:3:1:4 Estimates by INCPOV1 by RACE_K";
run;
***************************************************************************
EXAMPLE 5: PRODUCE A BAR CHART OF P_UTD431H314_ROUT_S BY INCPOV1 BY RACE_K
***************************************************************************;
data sud_est4;
set out.sud_est4;
label RACE_K = 'Race of Child'
INCPOV1 = 'Poverty Status';
filename odsout &out.;
ods listing close;
*Set the graphics environment;
goptions reset = global gunit = pct border ftext = swissb htitle = 4 htext = 1.5 device = gif;
ods html body = 'graph_4_sud.html' path = odsout;
run;
title1 h = 12pt "Percentage of Children Up-to-Date with 4:3:1:3:3:1:4 Vaccine Series";
title2 h = 12pt "by Race and Poverty Status, National Immunization Survey - Child, 20&yy.";
footnote j = r'graph_4sud';
proc sgplot data = sud_est4;
styleattrs datacolors = (wheat lightpink forestgreen) datacontrastcolors = (wheat lightpink forestgreen) datalinepatterns = (solid);
vbar INCPOV1 / response = rowper group = RACE_K groupdisplay = cluster stat = mean barwidth = 0.8;
xaxis display = (noticks);
yaxis grid;
keylegend / across = 1 position = top;
run;
ods html close;
ods listing;
国产精品久久久久久一级毛片