|Date: ||Tue, 3 Oct 2006 12:56:22 -0400|
|Reply-To: ||"Howard Schreier <hs AT dc-sug DOT org>" <nospam@HOWLES.COM>|
|Sender: ||"SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>|
|From: ||"Howard Schreier <hs AT dc-sug DOT org>" <nospam@HOWLES.COM>|
|Subject: ||Re: matching event sample to control sample but using any control|
On Mon, 2 Oct 2006 02:03:25 -0700, PBilin <pbilin@GMAIL.COM> wrote:
>I know it is not easy and I already had a look at that webpage. The
>problem is that they allow to use same match twice.
That's true of GMATCH. Look at VMATCH, which uses PROC ASSIGN to optimize
when controls are not to be re-used. You need a license for SAS/OR to be
able to use VMATCH.
But you have added a wrinkle by specifying that 5-year window. I'm just not
sure if there's a way to specify that to PROC ASSIGN.
>Besides, I do not
>follow most of the programmes.... I am too green with SAS yet...
>"Howard Schreier <hs AT dc-sug DOT org>" wrote:
>> This is not a simple problem.
>> Have a look at the Mayo Clinic macro library.
>> On Thu, 28 Sep 2006 09:38:32 -0700, pbilin@GMAIL.COM wrote:
>> >Since two weeks I am trying unsuccessfuly to solve the following
>> >problem. I have a sample of event firms (small sample) and non-event
>> >firms (big sample). I need to match each event firm with non-event firm
>> >that is similar on -/+30% size and closest another ratio (BEME).
>> >However, I want each control firm to be used only once (unless it is
>> >used another time five years after its first use).
>> >I found the following code, which I tried to implement in iterative way
>> >but it is not working.
>> >proc sql;
>> >create table SEO_matches as
>> >select eventfirm.*,
>> >match.id as match_id,
>> >match.ME as match_ME,
>> >match.beme as match_beme,
>> >abs(eventfirm.bemv - match.beme) as bmabsdiff
>> >from eventfirm
>> >join noneventfirms as match
>> >on (eventfirm.OfferYear1 - 1 ) = match.year
>> >where 0.7 * eventfirm.me < match.me < 1.3 * eventfirm.me
>> >and eventfirm.id^= match.idand not missing(match.beme) and not
>> >missing(match.me) group by eventfirm.id
>> >having bmabsdiff = min(bmabsdiff) ;
>> >data SEO_matches; set SEO_matches;
>> >by id;
>> >if first.id;
>> >I will be extremely greatful if someone could point out how to deal
>> >with this problem, i.e. how to secure that each match_id is used only
>> >once (it can be used again after 5 years).