Download presentation
Presentation is loading. Please wait.
Published byOlivia Blake Modified over 9 years ago
1
Being Productive with Stata and VA Data Give me six hours to chop down a tree and I will spend the first four sharpening the axe. --Abraham Lincoln Todd Wagner August 2008
2
Outline Database manipulation in Stata Database manipulation in Stata Data Analysis in Stata Data Analysis in Stata
4
Working Interactively and.do files You can issue commands directly into the command line. You can issue commands directly into the command line. Unless you save your commands into a batch file (a.do file), you’ll lose your code once you close Stata. Unless you save your commands into a batch file (a.do file), you’ll lose your code once you close Stata. I often work interactively and then save the “right” commands in a do file. I often work interactively and then save the “right” commands in a do file.
5
Editing a.do file in Stata Any ASCII text editor will work Any ASCII text editor will work Stata has a built in text editor, but it is limited. Stata has a built in text editor, but it is limited. I recommend exploring your options I recommend exploring your optionshttp://fmwww.bc.edu/repec/bocode/t/textEditors.html
6
How Stata Thinks about Data
7
Handling Data SAS processes one record at a time SAS processes one record at a time Stata processes all the records at the same time Stata processes all the records at the same time –Loops are commonly used in SAS –Loops are very rarely used in Stata
8
Loading Data into Memory Stata reads the data into memory Stata reads the data into memory –set mem 100m (before you load the data) You must have enough memory for your dataset You must have enough memory for your dataset With large datasets: With large datasets: –drop unnecessary variables –Use the compress command (but don’t compress SCRSSN)
9
Stata Abbreviations Stata commands can be abbreviated with the first three letters Stata commands can be abbreviated with the first three letters –regression income education female could be written –reg income education female
10
Stata Help Stata’s built in help is great Stata’s built in help is great –Help –Help Stata manuals are great because they review theory Stata manuals are great because they review theory
11
Stata and the Web Stata is “web aware” Stata is “web aware” Check for updates periodically Check for updates periodically –update all You can search for user-written programs You can search for user-written programs –findit output –findit outreg (click to install)
12
Stata in Windows Page up scrolls through the previous commands Page up scrolls through the previous commands There is a graphical user interface (menus) if you forget a command There is a graphical user interface (menus) if you forget a command In Unix, you can all Stata’s functionality if you use x-windows (e.g., Cygwin). In Unix, you can all Stata’s functionality if you use x-windows (e.g., Cygwin).
13
Sysdir, ls and cd Stata recognizes some unix commands, such as ls and cd Stata recognizes some unix commands, such as ls and cd Sysdir provides a listing of Stata’s working directories Sysdir provides a listing of Stata’s working directoriessysdir STATA: C:\Program Files\Stata9\ UPDATES: C:\ProgramFiles\Stata9\ado\updates\ BASE: C:\Program Files\Stata9\ado\base\ SITE: C:\Program Files\Stata9\ado\site\ PLUS: c:\ado\stbplus\ PERSONAL: c:\ado\personal\ OLDPLACE: c:\ado\ Store your data on a VA server– not on your PC or laptop! Store your data on a VA server– not on your PC or laptop!
14
Delimiters SAS recognizes “;” as a delimiter SAS recognizes “;” as a delimiter Stata recognizes the carriage return Stata recognizes the carriage return –Always add a carriage return after your last command You can change delimiters to ; You can change delimiters to ; #delimit ;
15
Missing Data Stata and SAS both use “.” as missing Stata and SAS both use “.” as missing Stata implicitly values a missing as a very large number Stata implicitly values a missing as a very large number SAS implicitly values a missing as a very small number SAS implicitly values a missing as a very small number
16
Generating and Recoding Variables In SAS you type In SAS you typequality=0; If VA=1 then quality=1; In Stata you type In Stata you type gen quality=0 recode quality 0=1 if VA==1 or replace quality=1 if VA==1
17
Boolean Logic Stata is picky about Boolean logic Stata is picky about Boolean logic gen y=x if a==b (must use two ==) gen y=x if a>b & b>10 (must use &) gen y=x if a must be before =)
18
Creating Dummy Variables Goal: create dummy variable for gender Goal: create dummy variable for gender gen male=sex==“M” tab sex, gen(sex_) This second command automatically creates 2 dummy variables This second command automatically creates 2 dummy variables Be careful about missing data– missing data are assigned to 0, unless you use “if” or “recode” Be careful about missing data– missing data are assigned to 0, unless you use “if” or “recode”
19
Drop Drop (drops variables) Drop (drops variables) Drop if X==1 (drop cases where value is 1) Drop if X==1 (drop cases where value is 1)
20
egen Commands You want to generate total costs for a medical center You want to generate total costs for a medical center In SAS this is done by proc summary In SAS this is done by proc summary In Stata, you can type In Stata, you can type collapse (sum) costs, by (stan3) or sort sta3n by sta3n: egen sumcost=total(cost)
21
ICD-9 Codes Stata has capabilities to handle ICD-9 diagnosis and procedure codes Stata has capabilities to handle ICD-9 diagnosis and procedure codes You can You can –check to see if codes are valid –generate identifiers based on codes or ranges of codes
22
Dates Same date functions as SAS Same date functions as SAS
23
Combining Data Merge Merge –this automatically creates a variable called _merge –merge==1 obs. from master data –merge==2 obs. from only one using dataset –merge==3 obs. from at least two datasets, master or using merge scrssn admitday disday using data_y Append (stacking data) Append (stacking data)
24
Explicit Subscripting Identify the most recent encounter in an encounter database Identify the most recent encounter in an encounter database gsort id -date by id : gen n=_n by id : gen N=_N gen select=n==1 Ascending sort by ID and reverse by date Record counter from 1 to N per person Total number of records per person
25
Using Stata
26
Set, Clear and More Set: sets system parameters Set: sets system parameters –Need to set memory size to open a database set mem 100m Clear erases data from memory Clear erases data from memory When output is >1 page, you are asked to continue ( set more off ) When output is >1 page, you are asked to continue ( set more off )
27
Summarizing Data. sum gender age educ Variable | Obs Mean Std. Dev. Min Max -------------+-------------------------------------------------------- gender | 4085 1.496206.5000468 1 2 age | 4085 64.5601 9.451724 50 94 educ | 4085 4.398286 1.662883 1 9 Sum, d provides more details on each variable Sum, d provides more details on each variable Tabstat provides summary info, including totals Tabstat provides summary info, including totals
28
Tabulating Data. tab gender gender | Freq. Percent Cum. gender | Freq. Percent Cum.------------+----------------------------------- 1 | 2,058 50.38 50.38 1 | 2,058 50.38 50.38 2 | 2,027 49.62 100.00 2 | 2,027 49.62 100.00------------+----------------------------------- Total | 4,085 100.00 Total | 4,085 100.00. table gender ---------------------- gender | Freq. gender | Freq.----------+----------- 1 | 2,058 1 | 2,058 2 | 2,027 2 | 2,027----------------------
29
Tabulating Data tab gender age too many values r(134); tab age gender tab age gender | gender | gender age | 1 2 | Total age | 1 2 | Total-----------+----------------------+---------- 50 | 49 69 | 118 50 | 49 69 | 118 51 | 72 71 | 143 51 | 72 71 | 143… 94 | 1 0 | 1 94 | 1 0 | 1-----------+----------------------+---------- Total | 2,058 2,027 | 4,085 Total | 2,058 2,027 | 4,085
30
Tabstat. tabstat age, by (gender) gender | mean gender | mean---------+---------- 1 | 64.77454 1 | 64.77454 2 | 64.34238 2 | 64.34238---------+---------- Total | 64.5601 Total | 64.5601--------------------. table gender, c(mean age) ----------------------- gender | mean(age) gender | mean(age)----------+------------ 1 | 64.77454 1 | 64.77454 2 | 64.34238 2 | 64.34238-----------------------
31
Graphing Diagnostic graphics Diagnostic graphics Presenting Presentingresults
32
Basic Analytical Functions OLS (reg) OLS (reg) Logistic, probit, count data (e.g., CLAD) Logistic, probit, count data (e.g., CLAD) Multinomials Multinomials GLM/HLM GLM/HLM Duration models Duration models Semi and non-parametric models Semi and non-parametric models
33
Creating Publishable Tables Outreg command Outreg command Outputs data to a delimited file Outputs data to a delimited file Delimited file can be read into Excel Delimited file can be read into Excel Very flexible Very flexible Creates publishable tables easily Creates publishable tables easily
34
Example with VA data
35
Becaplermin June 2006, FDA issued a Boxed Warning for becaplerim (a treatment for lower extremity diabetic ulcers) June 2006, FDA issued a Boxed Warning for becaplerim (a treatment for lower extremity diabetic ulcers) Warning raised potential risk of cancer related mortality Warning raised potential risk of cancer related mortality
36
Analytical Goal Case-control study for becaplermin Case-control study for becaplermin Sample is all patients with a diabetic ulcer of the lower extremity Sample is all patients with a diabetic ulcer of the lower extremity Exposure is quantity of becaplermin prescriptions Exposure is quantity of becaplermin prescriptions Multivariate analysis, stratifying for patients with prior history of cancer Multivariate analysis, stratifying for patients with prior history of cancer
37
Pulling VA Data VA utilization data extracts reside in SAS. I extract my sample using SAS and then moved the data into Stata. VA utilization data extracts reside in SAS. I extract my sample using SAS and then moved the data into Stata. VA Data: VA Data: –Sample: All encounters with a diabetic ulcer principal diagnosis in NPCD and PTF (FY02-07) –Exposure: All prescriptions from DSS pharmacy FY02-07 for Becaplermin feeder code –Outcome: All encounters with a neoplasm principal diagnosis (FY97-07)
38
Transferring Data Stattransfer or DBMS copy work Stattransfer or DBMS copy work Stattransfer often seeks to optimize the Stata dataset by default Stattransfer often seeks to optimize the Stata dataset by default –If transferring data with SCRSSN, FORCE Stattransfer to transfer SCRSSN as double precision –http://www.stata.com/support/faqs/data/prec.html
39
Stattransfer CLICK ON DOUBLE
40
Diabetic Ulcer Sample Goal: turn encounter level data into person level data Goal: turn encounter level data into person level data cd R:\twagner\customer\becap use ulcer, clear sort scrssn by scrssn: gen n=_n tab n keep if n==1 keep scrssn sort scrssn gen ulcer=1 save finder, replace
41
Alternative Code sort scrssn by scrssn: gen n=_n by scrssn: gen num_ulcervisits=_N sort scrssn by scrssn: gen newepisode=vizday[_n]- vizday[_n-1]>60 recode newepisode.=1 if n==1 by scrssn: egen episodes=sum(newepisode)
42
Step 2: Merge Ulcer Sample and Cancer Cases use neo, clear gen cancer=1 sort scrssn merge scrssn using finder drop if _m==1 Merge command creates a new variable: _m=1 data only in master data _m=2 data only in using data _m=3 data merged in both
43
sort scrssn admitday disday sta3n adtime by scrssn: egen firstcancer=min(admitday) if cancer==1 gen diedihcan=disto==-2 & cancer==1 gen dod_can=disday if diedihcan==1 gen cancerstays=1 if cancer==1 recode cancerstays.=0 collapse (min) firstcancer (sum) cancerstays (max) diedihcan dod_can cancer, by (scrssn) sort scrssn drop _m save diabcancer, replace Step 2: continued
44
Merge in Exposure data use becap, clear gen numrx=1 sort scrssn svc_dte by scrssn: egen firstbecap=min(svc_dte) by scrssn: egen lastbecap=max(svc_dte) collapse (min) firstbecap (max) lastbecap (sum) day_supply numrx, by (scrssn) gen becap=1 sort scrssn save becapsum, replace use diabcancer merge scrssn using becapsum
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.