Download presentation
Presentation is loading. Please wait.
Published byRussell Golden Modified over 9 years ago
1
X 11 X 12 X 13 X 21 X 22 X 23 X 31 X 32 X 33
2
Research Question Are nursing homes dangerous for seniors? Does admittance to a nursing home increase risk of death in adults over 65 years of age when controlling for age, gender, race, and number of emergency room visits?
3
Propensity Score Matching or Do nursing homes kill you? ANNMARIA DE MARS, PH.D. & CHELSEA HEAVEN THE JULIA GROUP
4
WHY YOU NEED IT TWO NON- EQUIVALENT GROUPS Patients in specialized units People who attend a fundraising event
5
Any time you can ask the question …. Is there a difference on OUTCOME between levels of “treatment” A, controlling for X, Y and Z ?
6
Examples OUTCOME“TREATMENT” LEVELS COVARIATES DROP OUTPUBLIC, PRIVATEINCOME PARENT EDUCATION GR. 8 ACHIEVEMENT BMIDAILY SOFT DRINKS NO SOFT DRINKS GENDER AGE RACE EXERCISE FREQ. DEATHLIVES AT HOME NURSING HOME AGE GENDER TOTAL ER VISITS
7
1. Make sure there are pre-existing differences (Thank you, Captain Obvious)
8
2a. Decide on covariates Are the differences pre-existing or could they possibly be due to the different “treatment” levels? Are the differences pre-existing or could they possibly be due to the different “treatment” levels? Race and gender are good choices for covariates. If more students at private vs public schools are black or female, the schooling probably didn’t cause that Race and gender are good choices for covariates. If more students at private vs public schools are black or female, the schooling probably didn’t cause that Differences in grade 10 math scores may be a result of the type of school Differences in grade 10 math scores may be a result of the type of school
9
2b. Decide on covariates Don’t use your outcome variable as one of your covariates
10
3. Run logistic regression to generate propensity scores PROC LOGISTIC DATA= datasetname ; CLASS categorical variables ; MODEL dependent = list-of-covariates ; OUTPUT OUT = newdataset PREDICTED= propensity-score; PREDICTED= propensity-score;
11
4. Select matching method 1.Quintiles 2.Nearest neighbors 3.Calipers ALL OF THE ABOVE CAN BE DONE EITHER WITH OR WITHOUT REPLACEMENT
12
5. Run matching program & test its effectiveness 6. Run your analysis using the matched data set
13
An actual example Do nursing homes kill you?
14
Our data Kaiser Permanente Study of the Oldest Old, 1971-1979 and 1980-1988: [California] DEPENDENT VARIABLE: Dthflag = 1 if Died during study period 0 if alive at end of study period 0 if alive at end of study period
15
Our data TREATMENT VARIABLE athome = 1 if lived at home continuously 0 if admitted to nursing home any time during study period 0 if admitted to nursing home any time during study period
16
Before matching AT HOME >NOYESTOTAL DIED Frequency (Column %) ======= == NO184 (14.6) 2,486 (52.6) 2,670 (44.6) YES1,077 (85.4) 2,239 (47.4) 3,316 (55.4) TOTAL1,2614,7255,986
17
Covariates * AGEAGE RACERACE GENDERGENDER TOTAL Emergency Room VISITS **TOTAL Emergency Room VISITS ** * Three out of four were DEFINITELY pre-existing differences ** Proxy for health
18
PROC LOGISTIC PROC LOGISTIC DATA= saslib.old ; CLASS athome race sex ; MODEL athome = race sex age_comp vissum1; OUTPUT OUT =study.allpropen PREDICTED = prob; Create propensity scores NOTE: No DESCENDING option
19
ODDS Ratios
21
Yes, pre-existing differences TYPE 3 ANALYSIS OF EFFECTS EffectDF Wald Chi-SquarePr > ChiSq RACE418.70170.0009 SEX112.54240.0004 age_comp1412.8103<.0001 VISSUM11212.9695<.0001
22
QUINTILE MATCHING EXAMPLE ONE
23
Part on creating quintiles blatantly copied (almost) http://www.pauldickman.com/teaching /sas/quintiles.php
24
Calculate Quintile Cutpoints PROC UNIVARIATE DATA= saslib.allpropen; VAR prob; VAR prob; OUTPUT OUT=quintile OUTPUT OUT=quintile PCTLPTS=20 40 60 80 PCTLPRE=pct; PCTLPTS=20 40 60 80 PCTLPRE=pct; Remember the dataset we created with the predicted probabilities saved in it?
25
PROC UNIVARIATE VAR prob; *** predicted probability as variable OUTPUT OUT=quintile OUTPUT OUT=quintile PCTLPTS=20 40 60 80 PCTLPRE=pct; PCTLPTS=20 40 60 80 PCTLPRE=pct; *** output to a dataset named quintile, *** create four variables at these percentiles *** with the prefix pct ;
26
/* write the quintiles to macro variables */ data _null_ ; set quintile; call symput('q1',pct20) ; call symput('q2',pct40) ; call symput('q3',pct60) ; call symput('q4',pct80) ; Just because I am too lazy to write down the percentiles
27
Create quintiles data STUDY.AllPropen; set STUDY.AllPropen ; if prob =. then quintile =.; if prob =. then quintile =.; else if prob le &q1 then quintile=1; else if prob le &q1 then quintile=1; else if prob le &q2 then quintile=2; else if prob le &q2 then quintile=2; else if prob le &q3 then quintile=3; else if prob le &q3 then quintile=3; else if prob le &q4 then quintile=4; else if prob le &q4 then quintile=4; else quintile=5; else quintile=5;
28
Quintiles QuintileFrequencyPercent Cumulative Frequency Cumulative Percent 1107519.76107519.76 2110120.24217640.00 3108820.00326460.00 4108820.00435280.00 5108820.005440100.00
29
The matching part Try to control your excitement
30
Create case & control data sets DATA small large ; SET study.allpropen ; IF athome = 0 THEN OUTPUT small ; ELSE IF athome = 1 THEN OUTPUT large ;
31
Create data set of sampling percentages PROC FREQ DATA = small ; quintile / OUT = samp_pct ; quintile / OUT = samp_pct ;
32
Quintiles in smaller data set QuintileFrequencyPercent Cumulative Frequency Cumulative Percent 1504.06504.06 21159.3316513.39 320816.8837330.28 433827.4471157.71 552142.291232100.00
33
Create data set of sampling percentages PROC FREQ DATA = small ; quintile / OUT = samp_pct ; quintile / OUT = samp_pct ;
34
Create sampling data set DATA samp_pct ; SET samp_pct ; _NSIZE_ = 1 ; _NSIZE_ = _NSIZE_ * COUNT ; DROP PERCENT ; Just here to make it easy to modify
35
PROC SURVEYSELECT SAMPSIZE= input data set can provide stratum sample sizes in the _NSIZE_ variable STRATA groups should appear in the same order in the secondary data set as in the DATA= data set.
36
SELECT RANDOM SAMPLE PROC SORT DATA = large ; BY quintile ; PROC SURVEYSELECT DATA= large SAMPSIZE = samp_pct OUT = largesamp ; STRATA quintile ;
37
Concatenate data sets DATA study.psm_sample ; SET largesamp small ;
38
Did it work? VariableBeforeAfter AT Home NOT Home ProbAT HomeNOT Home Prob Age75.079.3.000179.279.3.60 ER visits4.52.4.00014.5 ****3.8 ****.0001 Female49%54%.0152%54%.36 Race.0001.97 ** P <.01 **** P <.0001
39
Before odds ratio 6.5 : 1 Effect Point Estimate 95% Wald Confidence Limits athome 0 vs 10.1540.1300.182 Effect Point Estimate 95% Wald Confidence Limits quintile0.6610.6100.716 athome 0 vs 10.2730.2230.334 AFTER ODDS RATIO = 3.7: 1
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.