1 The SAS System 13:11 Sunday, November 21, 2004
NOTE: Copyright (c) 1999-2001 by SAS Institute Inc., Cary, NC, USA.
NOTE: SAS (r) Proprietary Software Release 8.2 (TS2M0)
Licensed to AGENCY FOR HEALTHCARE RESEARCH & QUALITY, Site 0040776001.
NOTE: This session is executing on the WIN_PRO platform.
1 options ls=120 ps=79 nodate;
2 ods noproctitle;
3 /************************************************************************************\
4 Program: c:\meps\prog\Example_L3.sas
5
6 Description: This example shows how to:
7 (1) Aggregate event records to the person level
8 (2) Make 1 annual variable from 3 round variables
9 (3) Make a categorical variable from a continuous variable
10 (4) Use SUDAAN to calculate standard errors
11
12 Input Files: c:\meps\data\h59g.sas7bdat (2001 Office-Based Visits)
13 c:\meps\data\h60.sas7bdat (2001 Full-Year File)
14 \************************************************************************************/
15
16 libname hc 'c:\meps\data';
NOTE: Libref HC was successfully assigned as follows:
Engine: V8
Physical Name: c:\meps\data
17
18 title 'AHRQ MEPS DATA USERS WORKSHOP (LINKING) -- NOV/DEC 2004';
19 title2 'Link 2001 Household File and 2001 Events File';
20
21 proc format;
22 value inscov 1='1 Any Private' 2='2 Public Only' 3='3 Uninsured';
NOTE: Format INSCOV has been output.
23 value insured 1='1 Insured' 2='2 Uninsured';
NOTE: Format INSURED has been output.
24 value agecat
25 1='1. 0-3'
26 2='2. 4-7'
27 3='3. 8-11'
28 4='4. 12-15'
29 5='5. 16-17'
30 6='6. 18+';
NOTE: Format AGECAT has been output.
31 value genckup 1='1 General Checkup' 2='2 No General Checkup';
NOTE: Format GENCKUP has been output.
32 run;
33
34 /* 2001 Office-based medical provider visits */
35 /* Identify persons with a visit for a general check-up & their expenditures */
36
37 title3 "# Persons with a General Checkup in a Provider's Office";
38 data h59g; set hc.h59g(keep=dupersid vstctgry obxp01x obsf01x); by dupersid;
39 if first.dupersid then do;
40 genckup=.;
41 ambtotpd=0;
42 ambfampd=0;
43 end;
44 retain genckup ambtotpd ambfampd;
45 if vstctgry = 1 then do;
46 genckup = 1;
47 ambtotpd + obxp01x;
48 ambfampd + obsf01x;
49 end;
50 if last.dupersid;
51 label
52 genckup ='Had Office-Based General Checkup'
53 ambtotpd='Total Amount Paid'
54 ambfampd='Amount Paid by Family';
55 keep dupersid genckup ambtotpd ambfampd;
56 run;
NOTE: There were 147490 observations read from the data set HC.H59G.
NOTE: The data set WORK.H59G has 23286 observations and 4 variables.
57 proc freq; tables genckup/missing; run;
2 The SAS System
NOTE: There were 23286 observations read from the data set WORK.H59G.
NOTE: The PROCEDURE FREQ printed page 1.
58
59 title3 'Variables from Full-Year File (Persons w/ Positive Weight)';
60 data h60; set hc.h60(keep=dupersid perwt01f varstr01 varpsu01 age31x--age53x inscov01);
61 by dupersid;
62 /* subset to positive weight persons */
63 if perwt01f > 0;
64 /* define AGE as last nonmissing age in 2001 */
65 if age53x ge 0 then age=age53x;
66 else if age42x ge 0 then age=age42x;
67 else if age31x ge 0 then age=age31x;
68 /* make age category variable */
69 agecat = (age ge 0) + (age gt 3) + (age gt 7) + (age gt 11) + (age gt 15) + (age gt 17);
70 /* make insurance status variable */
71 if inscov01>2 then insured=2; else insured=1;
72 label insured='Had Health Insurance in 2001';
73 run;
NOTE: There were 33556 observations read from the data set HC.H60.
NOTE: The data set WORK.H60 has 32122 observations and 11 variables.
74 proc freq; tables
75 insured*inscov01
76 agecat/list missing;
77 format insured insured. inscov01 inscov. agecat agecat.;
78 run;
NOTE: There were 32122 observations read from the data set WORK.H60.
NOTE: The PROCEDURE FREQ printed page 2.
79 proc means nmiss min max maxdec=0; class agecat; var age; format agecat agecat.; run;
NOTE: There were 32122 observations read from the data set WORK.H60.
NOTE: The PROCEDURE MEANS printed page 3.
80
81 title3 'Link Person-Level File from Events File with Full-Year Person File';
82 data pers; merge
83 h59g
84 h60(drop=age31x--age53x inscov01 in=a); by dupersid; if a;
85 if genckup = . then genckup=2;
86 run;
NOTE: There were 23286 observations read from the data set WORK.H59G.
NOTE: There were 32122 observations read from the data set WORK.H60.
NOTE: The data set WORK.PERS has 32122 observations and 10 variables.
87 proc freq; tables genckup; format genckup genckup.; run;
NOTE: There were 32122 observations read from the data set WORK.PERS.
NOTE: The PROCEDURE FREQ printed page 4.
88
89 /* sort for SUDAAN */
90 proc sort; by varstr01 varpsu01; run;
NOTE: There were 32122 observations read from the data set WORK.PERS.
NOTE: The data set WORK.PERS has 32122 observations and 10 variables.
91
92 title3 'Persons Age 18+';
93 proc crosstab data=pers filetype=sas design=wr notot norow;
94 subpopn agecat=6;
95 nest varstr01 varpsu01/missunit;
96 weight perwt01f;
97 subgroup genckup insured;
98 levels 2 2;
99 tables genckup genckup*insured;
100 print nsum colper secol / style=box wsumfmt=f15.0 nodate notime;
101 rformat genckup genckup.;
102 rformat insured insured.;
103 run;
3 The SAS System
Opened SAS data file PERS for reading.
NOTE: There were 32122 observations read from the data set WORK.PERS.
NOTE: The PROCEDURE CROSSTAB printed pages 5-7.
104
105 title3 'Persons Age 18+ with a General Checkup';
106 proc means data=pers(where=(agecat=6 & genckup=1)) n mean maxdec=2;
107 class insured;
108 format insured insured.;
109 var ambtotpd ambfampd;
110 weight perwt01f;
111 run;
NOTE: There were 9369 observations read from the data set WORK.PERS.
WHERE (agecat=6) and (genckup=1);
NOTE: The PROCEDURE MEANS printed page 8.
NOTE: SAS Institute Inc., SAS Campus Drive, Cary, NC USA 27513-2414
AHRQ MEPS DATA USERS WORKSHOP (LINKING) -- NOV/DEC 2004 1
Link 2001 Household File and 2001 Events File
# Persons with a General Checkup in a Provider's Office
Had Office-Based General Checkup
Cumulative Cumulative
genckup Frequency Percent Frequency Percent
------------------------------------------------------------
. 10859 46.63 10859 46.63
1 12427 53.37 23286 100.00
AHRQ MEPS DATA USERS WORKSHOP (LINKING) -- NOV/DEC 2004 2
Link 2001 Household File and 2001 Events File
Variables from Full-Year File (Persons w/ Positive Weight)
Cumulative Cumulative
insured INSCOV01 Frequency Percent Frequency Percent
---------------------------------------------------------------------------------
1 Insured 1 Any Private 21127 65.77 21127 65.77
1 Insured 2 Public Only 6410 19.96 27537 85.73
2 Uninsured 3 Uninsured 4585 14.27 32122 100.00
Cumulative Cumulative
agecat Frequency Percent Frequency Percent
-------------------------------------------------------------
1. 0-3 1847 5.75 1847 5.75
2. 4-7 2096 6.53 3943 12.28
3. 8-11 2122 6.61 6065 18.88
4. 12-15 2103 6.55 8168 25.43
5. 16-17 989 3.08 9157 28.51
6. 18+ 22965 71.49 32122 100.00
AHRQ MEPS DATA USERS WORKSHOP (LINKING) -- NOV/DEC 2004 3
Link 2001 Household File and 2001 Events File
Variables from Full-Year File (Persons w/ Positive Weight)
Analysis Variable : age
N
agecat N Obs Miss Minimum Maximum
----------------------------------------------------------
1. 0-3 1847 0 0 3
2. 4-7 2096 0 4 7
3. 8-11 2122 0 8 11
4. 12-15 2103 0 12 15
5. 16-17 989 0 16 17
6. 18+ 22965 0 18 85
----------------------------------------------------------
AHRQ MEPS DATA USERS WORKSHOP (LINKING) -- NOV/DEC 2004 4
Link 2001 Household File and 2001 Events File
Link Person-Level File from Events File with Full-Year Person File
Had Office-Based General Checkup
Cumulative Cumulative
genckup Frequency Percent Frequency Percent
-------------------------------------------------------------------------
1 General Checkup 12161 37.86 12161 37.86
2 No General Checkup 19961 62.14 32122 100.00
AHRQ MEPS DATA USERS WORKSHOP (LINKING) -- NOV/DEC 2004 5
Link 2001 Household File and 2001 Events File
Persons Age 18+
S U D A A N
Software for the Statistical Analysis of Correlated Data
Copyright Research Triangle Institute January 2002
Release 8.0.1
Number of observations read : 32122 Weighted count :284247327
Observations in subpopulation : 22965 Weighted count:211917458
Denominator degrees of freedom : 412
Research Triangle Institute Page : 1
The CROSSTAB Procedure Table : 1
Variance Estimation Method: Taylor Series (WR)
For Subpopulation: AGECAT = 6
by: Had Office-Based General Checkup.
-----------------------------------------------------------------------
| | |
| | | Had Office-Based General
| | | Checkup
| | | Total | 1 | 2 No |
| | | | General | General |
| | | | Checkup | Checkup |
-----------------------------------------------------------------------
| | | | | |
| | Sample Size | 22965 | 9369 | 13596 |
| | Col Percent | 100.00 | 42.53 | 57.47 |
| | SE Col Percent | 0.00 | 0.52 | 0.52 |
-----------------------------------------------------------------------
Research Triangle Institute Page : 2
The CROSSTAB Procedure Table : 2
Variance Estimation Method: Taylor Series (WR)
For Subpopulation: AGECAT = 6
by: Had Office-Based General Checkup, Had Health Insurance in 2001.
-----------------------------------------------------------------------
| | |
| Had Office- | | Had Health Insurance in 2001
| Based General | | Total | 1 | 2 |
| Checkup | | | Insured | Uninsur- |
| | | | | ed |
-----------------------------------------------------------------------
| | | | | |
| Total | Sample Size | 22965 | 19315 | 3650 |
| | Col Percent | 100.00 | 100.00 | 100.00 |
| | SE Col Percent | 0.00 | 0.00 | 0.00 |
-----------------------------------------------------------------------
| | | | | |
| 1 General | Sample Size | 9369 | 8739 | 630 |
| Checkup | Col Percent | 42.53 | 46.12 | 17.86 |
| | SE Col Percent | 0.52 | 0.54 | 0.78 |
-----------------------------------------------------------------------
| | | | | |
| 2 No General | Sample Size | 13596 | 10576 | 3020 |
| Checkup | Col Percent | 57.47 | 53.88 | 82.14 |
| | SE Col Percent | 0.52 | 0.54 | 0.78 |
-----------------------------------------------------------------------
AHRQ MEPS DATA USERS WORKSHOP (LINKING) -- NOV/DEC 2004 8
Link 2001 Household File and 2001 Events File
Persons Age 18+ with a General Checkup
Had Health
Insurance
in 2001 N Obs Variable Label N Mean
----------------------------------------------------------------------------------
1 Insured 8739 ambtotpd Total Amount Paid 8739 271.70
ambfampd Amount Paid by Family 8739 38.73
2 Uninsured 630 ambtotpd Total Amount Paid 630 204.03
ambfampd Amount Paid by Family 630 83.54
----------------------------------------------------------------------------------