To calculate the percentiles and standard errors, you will use SAScallable SUDAAN because this software takes into account the complex survey design of NHANES data when determining variance estimates. The data from analysis_Data must be sorted by strata first and then PSU (unless the data have already been sorted by PSU within strata). The SAS proc sort statement must precede the SUDAAN statements.
The design variables, sdmvstra and sdmvpsu, are provided in the demographic data files and are used to calculate variance estimates. Before you call SUDAAN into SAS, the data must first be sorted by these variables.
The SUDAAN procedure proc descript is used to generate percentiles and standard errors. These estimates are requested on the print statement along with the sample size (nsum). The general program for obtaining weighted percentiles and standard errors is below.
These programs use variable formats listed in the Tutorial Formats page. You may need to format the variables in your dataset the same way to reproduce results presented in the tutorial.
Statements  Explanation 

DATA BY

Use the proc sort procedure to sort the dataset by strata (sdmvstra) and PSU (sdmvpsu). The data statement refers to the dataset, analysis_Data. 
Use proc descript procedure to generate means and specify the sample design using the design option WR (with replacement). 

20 
Use the subpopn statement to select the sample persons 20 years and older (ridageyr >=20) because only those individuals are of interest in this example. Please note that for accurate estimates, it is preferable to use subpopn in SUDAAN to select a subpopulation for analysis, rather than select the study population in the SAS program while preparing the data file. 
Use the nest statement with strata (sdmvstra) and PSU (sdmvpsu) to account for the design effects. 

weight 
Use the weight statement to account for the unequal probability of sampling and nonresponse. In this example, the MEC weight for 4 years of data (wtmec4yr) is used. 
Use the subgroup statement to list the categorical variables for which statistics are requested. This example uses gender (riagendr) and age (age). These variables will also appear in the table statement. 

2 3 
Use the levels statement to define the number of categories in each of the subgroup variables. The level must be an integer greater than 0. This example uses two genders and three age groups. 
var 
Use the var statement to name the variable(s) to be analyzed. In this example, the total cholesterol variables (lbxtc) is used. 
percentile 5 25 50 75 95 ;  Use the percentile statement to request select percentiles. 
table 
Use the table statement to specify crosstabulations for which estimates are requested. If a table statement is not present, a one—dimensional distribution is generated for each variable in the subgroup statement. In this example, the estimates are for gender (riagendr) by age (age). 
"Sample Size" "Quantile"
F7.0 F9.2

Use the print statement to assign names, format the statistics desired, and view the output. If the statement print is used alone, all of the default statistics are printed with default labels and formats. In this example, the sample size (nsum) and quantile (qtile) are requested. Note: For a complete list of statistics that can be requested on the print statement see SUDAAN Users Manual. Use the style option equal to NCHS to produce output which parallels a table style used at NCHS.

"Percentiles of total cholesterol by sex and age: NHANES 19992002" 
Use the rtitle statement to assign a heading for each page of output. 
The output will list the sample sizes, percentiles and their standard errors.