| 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:
>Hi,
>
>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...
>
>Paul
>"Howard Schreier <hs AT dc-sug DOT org>" wrote:
>> This is not a simple problem.
>>
>> Have a look at the Mayo Clinic macro library.
>>
>> http://mayoresearch.mayo.edu/mayo/research/biostat/sasmacros.cfm
>>
>> On Thu, 28 Sep 2006 09:38:32 -0700, pbilin@GMAIL.COM wrote:
>>
>> >hello,
>> >
>> >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;
>> >run;
>> >
>> >
>> >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).
>> >
>> >Thanks!!!
>> >
>> >Paul
|