Upload
trinhhanh
View
217
Download
0
Embed Size (px)
Citation preview
1:N-Matching von Fällen und Kontrollen: Propensity
Score vs. PROC SQL
1:N1:N--Matching von FMatching von Fäällen und Kontrollen: llen und Kontrollen: PropensityPropensity
Score vs. PROC SQLScore vs. PROC SQL
Andreas Deckert
Institute of Public Health, Universität Heidelberg
Andreas Deckert
Institute of Public Health, Universität Heidelberg
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
ÜbersichtÜbersicht
Matching
Realisierung mit PROC SQL
Realisierung mit Propensity Scores
Problemstellung
Optimierung des Abgleichs mit PROC SQL
Vergleich der Ergebnisse
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Was ist Matching?Was ist Matching?
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Matching: TheorieMatching: Theorie
In epidemiologischen Fall-Kontroll-Studien ist Strukturgleichheit in Fällen und Kontrollen für verzerrungsfreie Ergebnisse wichtig
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Matching: TheorieMatching: Theorie
In epidemiologischen Fall-Kontroll-Studien ist Strukturgleichheit in Fällen und Kontrollen für verzerrungsfreie Ergebnisse wichtig
Methode zur Herstellung von Strukturgleichheit: Matching
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Matching: TheorieMatching: Theorie
In epidemiologischen Fall-Kontroll-Studien ist Strukturgleichheit in Fällen und Kontrollen für verzerrungsfreie Ergebnisse wichtig
Methode zur Herstellung von Strukturgleichheit: Matching
Gruppen-Matching: Häufigkeiten von Personen mit bestimmten Charakteristika sollen in Fall- und Kontrollgruppe gleich groß sein
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Matching: TheorieMatching: Theorie
In epidemiologischen Fall-Kontroll-Studien ist Strukturgleichheit in Fällen und Kontrollen für verzerrungsfreie Ergebnisse wichtig
Methode zur Herstellung von Strukturgleichheit: Matching
Gruppen-Matching: Häufigkeiten von Personen mit bestimmten Charakteristika sollen in Fall- und Kontrollgruppe gleich groß sein
Individuelles Matching: Zu jedem Fall wird individuell eine Kontroll- person mit gleich ausgeprägten Matching-Faktoren ausgewählt
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
1:N-Matching1:N-Matching 1:N-matching: Erhöhen der statistischen Power
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
1:N-Matching1:N-Matching 1:N-matching: Erhöhen der statistischen Power
Beispiel: Häufigkeit eines Faktors in der Kontrollgruppe 6%, Hypothese: Differenz zur Fallgruppe (n = 300) mindestens 5% (OR=2)
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
0.60
0.65
0.70
0.75
0.80
0.85
0.90
0.95
1 2 3 4 5 6 7 8 9 10
1 : N
Power
1:N-Matching1:N-Matching 1:N-matching: Erhöhen der statistischen Power
Beispiel: Häufigkeit eines Faktors in der Kontrollgruppe 6%, Hypothese: Differenz zur Fallgruppe (n = 300) mindestens 5% (OR=2)
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
0.60
0.65
0.70
0.75
0.80
0.85
0.90
0.95
1 2 3 4 5 6 7 8 9 10
1 : N
Power
1:N-Matching1:N-Matching 1:N-matching: Erhöhen der statistischen Power
Beispiel: Häufigkeit eines Faktors in der Kontrollgruppe 6%, Hypothese: Differenz zur Fallgruppe (n = 300) mindestens 5% (OR=2)
PROC
POWER; TWOSAMPLEFREQTEST
= pchiALPHA
= .05ODDSRATIO
=
2REFPROPORTION
= 0.06GROUPWEIGHTS
= (N 1)NTOTAL
= 300+300*NPOWER
= .; RUN;
PROC
POWER; TWOSAMPLEFREQTEST
= pchiALPHA
= .05ODDSRATIO
=
2REFPROPORTION
= 0.06GROUPWEIGHTS
= (N 1)NTOTAL
= 300+300*NPOWER
= .; RUN;
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
0.60
0.65
0.70
0.75
0.80
0.85
0.90
0.95
1 2 3 4 5 6 7 8 9 10
1 : N
Power
1:N-Matching1:N-Matching 1:N-matching: Erhöhen der statistischen Power
Beispiel: Häufigkeit eines Faktors in der Kontrollgruppe 6%, Hypothese: Differenz zur Fallgruppe (n = 300) mindestens 5% (OR=2)
PROC
POWER; TWOSAMPLEFREQTEST
= pchiALPHA
= .05ODDSRATIO
=
2REFPROPORTION
= 0.06GROUPWEIGHTS
= (N 1)NTOTAL
= 300+300*NPOWER
= .; RUN;
PROC
POWER; TWOSAMPLEFREQTEST
= pchiALPHA
= .05ODDSRATIO
=
2REFPROPORTION
= 0.06GROUPWEIGHTS
= (N 1)NTOTAL
= 300+300*NPOWER
= .; RUN;
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
0.60
0.65
0.70
0.75
0.80
0.85
0.90
0.95
1 2 3 4 5 6 7 8 9 10
1 : N
Power
1:N-Matching1:N-Matching 1:N-matching: Erhöhen der statistischen Power
Beispiel: Häufigkeit eines Faktors in der Kontrollgruppe 6%, Hypothese: Differenz zur Fallgruppe (n = 300) mindestens 5% (OR=2)
PROC
POWER; TWOSAMPLEFREQTEST
= pchiALPHA
= .05ODDSRATIO
=
2REFPROPORTION
= 0.06GROUPWEIGHTS
= (N 1)NTOTAL
= 300+300*NPOWER
= .; RUN;
PROC
POWER; TWOSAMPLEFREQTEST
= pchiALPHA
= .05ODDSRATIO
=
2REFPROPORTION
= 0.06GROUPWEIGHTS
= (N 1)NTOTAL
= 300+300*NPOWER
= .; RUN;
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Problemstellung (1)Problemstellung (1)
Fall-Kontroll-Studie, 1:2 Matching nach Alter, Geschlecht und Zuzugs- datum (Erweiterung um weitere Variablen möglich)
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Problemstellung (1)Problemstellung (1)
Fall-Kontroll-Studie, 1:2 Matching nach Alter, Geschlecht und Zuzugs- datum (Erweiterung um weitere Variablen möglich)
Fallgruppe n = 300, begrenzter Kontrollpool n = 900
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Problemstellung (1)Problemstellung (1)
Fall-Kontroll-Studie, 1:2 Matching nach Alter, Geschlecht und Zuzugs- datum (Erweiterung um weitere Variablen möglich)
Fallgruppe n = 300, begrenzter Kontrollpool n = 900
Simulation zweier Szenarien:
- Szenario I: Altersverteilung in Fällen und Kontrollpool gleich, Frauenanteil 50% in Fällen und Kontrollen
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Problemstellung (1)Problemstellung (1)
Fall-Kontroll-Studie, 1:2 Matching nach Alter, Geschlecht und Zuzugs- datum (Erweiterung um weitere Variablen möglich)
Fallgruppe n = 300, begrenzter Kontrollpool n = 900
Simulation zweier Szenarien:
- Szenario I: Altersverteilung in Fällen und Kontrollpool gleich, Frauenanteil 50% in Fällen und Kontrollen
- Szenario II: Altersverteilung in Fällen und Kontrollpool unterschiedlich, 30% Frauenanteil bei den Fällen, 50% Frauenanteil bei den möglichen Kontrollen
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Problemstellung (2)Problemstellung (2)
Simulation Szenario I
0
25
50
75
100
125
150
175
200
0-4 5-14 16-24 25-34 35-44 45-54 55-64 65-74 75-84 85+
0
25
50
75
100
125
150
175
200
0-4 5-14 16-24 25-34 35-44 45-54 55-64 65-74 75-84 85+
Fälle
Kontrollpool
Altersklassen
n
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Problemstellung (2)Problemstellung (2)
Simulation Szenario I
0
25
50
75
100
125
150
175
200
0-4 5-14 16-24 25-34 35-44 45-54 55-64 65-74 75-84 85+
0
25
50
75
100
125
150
175
200
0-4 5-14 16-24 25-34 35-44 45-54 55-64 65-74 75-84 85+
Fälle
Kontrollpool
Altersklassen
nSimulation Szenario II
0
25
50
75
100
125
150
175
200
0-4 5-14 16-24 25-34 35-44 45-54 55-64 65-74 75-84 85+
0
25
50
75
100
125
150
175
200
0-4 5-14 16-24 25-34 35-44 45-54 55-64 65-74 75-84 85+
Fälle
Kontrollpool
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Problemstellung (4)Problemstellung (4)Anforderungen:- Jede Kontrolle darf nur einmal verwendet werden- Toleranzbereich (± 3 Jahre) für das Alters- und Zuzugs-Matching
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Problemstellung (4)Problemstellung (4)Anforderungen:- Jede Kontrolle darf nur einmal verwendet werden- Toleranzbereich (± 3 Jahre) für das Alters- und Zuzugs-Matching
Probleme:- unterschiedliche Alters- und Geschlechtsverteilungen (Szenario II)- Eine Kontrolle kann zu mehreren Fällen passen- Es kann Fälle geben zu denen nur wenige Kontrollen passen
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Problemstellung (4)Problemstellung (4)Anforderungen:- Jede Kontrolle darf nur einmal verwendet werden- Toleranzbereich (± 3 Jahre) für das Alters- und Zuzugs-Matching
Probleme:- unterschiedliche Alters- und Geschlechtsverteilungen (Szenario II)- Eine Kontrolle kann zu mehreren Fällen passen- Es kann Fälle geben zu denen nur wenige Kontrollen passen
Theoretisch ideale Lösung: - Berechnung aller möglichen 1:N Fall-Kontroll-Kombinationen- Auswahl der Kombination, bei der am meisten Fällen n Kontrollen
zugeordnet werden können.
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Lösung mit PROC SQLLösung mit PROC SQL
Kawabata H, et. al. (2004): Using SAS ® to Match Cases for Case Control Studies. SUGI 29, 173-29, Princeton, New Jersey
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Lösung mit PROC SQLLösung mit PROC SQL
Kawabata H, et. al. (2004): Using SAS ® to Match Cases for Case Control Studies. SUGI 29, 173-29, Princeton, New Jersey
Grundidee: Abgleich jedes Eintrages der Kontrollgruppe mit jedem Eintrag der Fallgruppe mit PROC SQL entsprechend festgelegter Regeln.
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Lösung mit PROC SQLLösung mit PROC SQL
Kawabata H, et. al. (2004): Using SAS ® to Match Cases for Case Control Studies. SUGI 29, 173-29, Princeton, New Jersey
Grundidee: Abgleich jedes Eintrages der Kontrollgruppe mit jedem Eintrag der Fallgruppe mit PROC SQL entsprechend festgelegter Regeln.
1:n-Matching mit Range:- Abgleich mit PROC SQL- Zählen der Kontrollen pro Fall- Zuteilen einer Zufallszahl zu jedem Paar- Sortieren nach Kontrollen- Sortieren nach Anzahl Kontrollen pro Fall (innerhalb gleicher Kontrollen)- Auswählen der ersten Kontrolle- Sortieren nach Fällen- Sortieren nach Zufallszahlen innerhalb gleicher Fälle- Auswählen der ersten N Paare
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
DatenaufbereitungDatenaufbereitung
Datenstruktur: Eindeutige ID für jeden Eintrag in Kontrollen und Fällen, Geburtsdatum, Geschlecht, Zuzugsdatum, …
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
DatenaufbereitungDatenaufbereitung
1. Schritt: Toleranzbereiche für das Alter und den Zuzug festlegenDATA
Kontrollpool; SET
Kontrollpool;Geburtsjahr = year(Geburtsdatum);min_Geburtsjahr
= Geburtsjahr -
3;max_Geburtsjahr
= Geburtsjahr + 3;min_Zuzugsjahr
= Zuzugsjahr -
3;max_Zuzugsjahr
= Zuzugsjahr + 3;
Datenstruktur: Eindeutige ID für jeden Eintrag in Kontrollen und Fällen, Geburtsdatum, Geschlecht, Zuzugsdatum, …
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
DatenaufbereitungDatenaufbereitung
1. Schritt: Toleranzbereiche für das Alter und den Zuzug festlegenDATA
Kontrollpool; SET
Kontrollpool;Geburtsjahr = year(Geburtsdatum);min_Geburtsjahr
= Geburtsjahr -
3;max_Geburtsjahr
= Geburtsjahr + 3;min_Zuzugsjahr
= Zuzugsjahr -
3;max_Zuzugsjahr
= Zuzugsjahr + 3;
Datenstruktur: Eindeutige ID für jeden Eintrag in Kontrollen und Fällen, Geburtsdatum, Geschlecht, Zuzugsdatum, …
DATA
Fallgruppe; SET
Fallgruppe;Geburtsjahr = year(Geburtsdatum);Zuzugsjahr = year(Zuzugsdatum);
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
SQL-AbfrageSQL-Abfrage
PROC
SQL;CREATE
TABLE
Abgleich AS SELECTA.ID AS
Fall_ID, B.ID AS
Kontroll_ID,A.Geburtsjahr
AS
Fall_Gebjahr,B.Geburtsjahr
AS
Kontrolle_Gebjahr,A.Zuzugsjahr
AS
Fall_Zuzug,B.Zuzugsjahr
AS
Kontrolle_Zuzug,A.Geschlecht
AS
Fall_Geschlecht,B.Geschlecht
AS
Kontrolle_Geschlecht,FROM
Fallgruppe
A, Kontrollpool
BWHERE
((A.Geburtsjahr
between B.min_Geburtsjahr
AND
B.max_Geburtsjahr) AND
(A.Zuzugsjahr
between
B.min_Zuzugsjahr
AND
B.max_Zuzugsjahr)AND
A.Geschlecht
= B.Geschlecht);QUIT;
2. Schritt: Verknüpfen der Tabellen mit PROC SQL
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
…und was dabei passiert…und was dabei passiert
KontrollenID Jahr min maxA 1962 1959 1965B 1968 1965 1971C 1966 1963 1969D 1958 1955 1961E 1963 1960 1966F 1962 1959 1965G 1959 1956 1962
FälleID Jahr z_zahl1 1960 0.594962 1965 0.667433 1963 0.220114 1955 0.23779
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
…und was dabei passiert…und was dabei passiert
KontrollenID Jahr min maxA 1962 1959 1965B 1968 1965 1971C 1966 1963 1969D 1958 1955 1961E 1963 1960 1966F 1962 1959 1965G 1959 1956 1962
FälleID Jahr z_zahl1 1960 0.594962 1965 0.667433 1963 0.220114 1955 0.23779
1958D0.2377919554
…
0.22011
0.66743
0.59496
z_zahl
Kontrollen
1968B
1962A19652
1959G
1966C
1962A19633
1963E
JahrIDJahrID
…
F
E
D
…
1962
1963
1958
Fälle
……
19601
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
…und was dabei passiert…und was dabei passiert
KontrollenID Jahr min maxA 1962 1959 1965B 1968 1965 1971C 1966 1963 1969D 1958 1955 1961E 1963 1960 1966F 1962 1959 1965G 1959 1956 1962
FälleID Jahr z_zahl1 1960 0.594962 1965 0.667433 1963 0.220114 1955 0.23779
1958D0.2377919554
…
0.22011
0.66743
0.59496
z_zahl
Kontrollen
1968B
1962A19652
1959G
1966C
1962A19633
1963E
JahrIDJahrID
…
F
E
D
…
1962
1963
1958
Fälle
……
19601
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
…und was dabei passiert…und was dabei passiert
KontrollenID Jahr min maxA 1962 1959 1965B 1968 1965 1971C 1966 1963 1969D 1958 1955 1961E 1963 1960 1966F 1962 1959 1965G 1959 1956 1962
FälleID Jahr z_zahl1 1960 0.594962 1965 0.667433 1963 0.220114 1955 0.23779
1958D0.2377919554
…
0.22011
0.66743
0.59496
z_zahl
Kontrollen
1968B
1962A19652
1959G
1966C
1962A19633
1963E
JahrIDJahrID
…
F
E
D
…
1962
1963
1958
Fälle
……
19601
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Zuordnung der KontrollenZuordnung der Kontrollen
Fälle KontrollenID Jahr ID Jahr1 1960 D 19581 1960 E 19631 1960 F 19621 1960 G 19592 1965 A 19622 1965 B 19682 1965 C 19663 1963 A 19623 1963 E 19634 1955 D 1958… … … …
1:2-Matching, ohne Intervention: 1:2-Matching, ideal:
1959G19601
Kontrollen
1966C196521968B196521962A19652
1958D196011963E196011962F19601
JahrIDJahrID
…
EAD
…
196319621958
Fälle
……
196331963319554
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Zuordnung der KontrollenZuordnung der Kontrollen
Fälle KontrollenID Jahr ID Jahr1 1960 D 19581 1960 E 19631 1960 F 19621 1960 G 19592 1965 A 19622 1965 B 19682 1965 C 19663 1963 A 19623 1963 E 19634 1955 D 1958… … … …
1:2-Matching, ohne Intervention:
1:2-Matching, ideal:
1959G19601
Kontrollen
1966C196521968B196521962A19652
1958D196011963E196011962F19601
JahrIDJahrID
…
EAD
…
196319621958
Fälle
……
196331963319554
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Zuordnung der KontrollenZuordnung der Kontrollen
Fälle KontrollenID Jahr ID Jahr1 1960 D 19581 1960 E 19631 1960 F 19621 1960 G 19592 1965 A 19622 1965 B 19682 1965 C 19663 1963 A 19623 1963 E 19634 1955 D 1958… … … …
1:2-Matching, ohne Intervention:
1:2-Matching, ideal:
1959G19601
Kontrollen
1966C196521968B196521962A19652
1958D196011963E196011962F19601
JahrIDJahrID
…
EAD
…
196319621958
Fälle
……
196331963319554
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Zuordnung der KontrollenZuordnung der Kontrollen
Fälle KontrollenID Jahr ID Jahr1 1960 D 19581 1960 E 19631 1960 F 19621 1960 G 19592 1965 A 19622 1965 B 19682 1965 C 19663 1963 A 19623 1963 E 19634 1955 D 1958… … … …
1:2-Matching, ohne Intervention:
1:2-Matching, ideal:
1959G19601
Kontrollen
1966C196521968B196521962A19652
1958D196011963E196011962F19601
JahrIDJahrID
…
EAD
…
196319621958
Fälle
……
196331963319554
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Zuordnung der KontrollenZuordnung der Kontrollen
Fälle KontrollenID Jahr ID Jahr1 1960 D 19581 1960 E 19631 1960 F 19621 1960 G 19592 1965 A 19622 1965 B 19682 1965 C 19663 1963 A 19623 1963 E 19634 1955 D 1958… … … …
1:2-Matching, ohne Intervention:
1:2-Matching, ideal:
1959G19601
Kontrollen
1966C196521968B196521962A19652
1958D196011963E196011962F19601
JahrIDJahrID
…
EAD
…
196319621958
Fälle
……
196331963319554
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Zuordnung der KontrollenZuordnung der Kontrollen
Fälle KontrollenID Jahr ID Jahr1 1960 D 19581 1960 E 19631 1960 F 19621 1960 G 19592 1965 A 19622 1965 B 19682 1965 C 19663 1963 A 19623 1963 E 19634 1955 D 1958… … … …
1:2-Matching, ohne Intervention:
??
1:2-Matching, ideal:
1959G19601
Kontrollen
1966C196521968B196521962A19652
1958D196011963E196011962F19601
JahrIDJahrID
…
EAD
…
196319621958
Fälle
……
196331963319554
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Zuordnung der KontrollenZuordnung der Kontrollen
Fälle KontrollenID Jahr ID Jahr1 1960 D 19581 1960 E 19631 1960 F 19621 1960 G 19592 1965 A 19622 1965 B 19682 1965 C 19663 1963 A 19623 1963 E 19634 1955 D 1958… … … …
1:2-Matching, ohne Intervention:
??
1:2-Matching, ideal:
1959G19601
Kontrollen
1966C196521968B196521962A19652
1958D196011963E196011962F19601
JahrIDJahrID
…
EAD
…
196319621958
Fälle
……
196331963319554
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Zuordnung der KontrollenZuordnung der Kontrollen
Fälle KontrollenID Jahr ID Jahr1 1960 D 19581 1960 E 19631 1960 F 19621 1960 G 19592 1965 A 19622 1965 B 19682 1965 C 19663 1963 A 19623 1963 E 19634 1955 D 1958… … … …
1:2-Matching, ohne Intervention:
??
1:2-Matching, ideal:
1959G19601
Kontrollen
1966C196521968B196521962A19652
1958D196011963E196011962F19601
JahrIDJahrID
…
EAD
…
196319621958
Fälle
……
196331963319554
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Zuordnung der KontrollenZuordnung der Kontrollen
Fälle KontrollenID Jahr ID Jahr1 1960 D 19581 1960 E 19631 1960 F 19621 1960 G 19592 1965 A 19622 1965 B 19682 1965 C 19663 1963 A 19623 1963 E 19634 1955 D 1958… … … …
1:2-Matching, ohne Intervention:
??
1:2-Matching, ideal:
1959G19601
Kontrollen
1966C196521968B196521962A19652
1958D196011963E196011962F19601
JahrIDJahrID
…
EAD
…
196319621958
Fälle
……
196331963319554
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Zählen der Kontrollen pro FallZählen der Kontrollen pro Fall
PROC
SORT
DATA
= Abgleich; BY
Fall_ID; RUN;DATA
Abgleich_2 ( keep
= Fall_ID
Anzahl_K); SET
Abgleich;BY
Fall_ID;RETAIN
Anzahl_K;IF
first.Fall_ID
THEN
Anzahl_K
= 1; ELSE
Anzahl_K
+ 1;IF
last.Fall_ID
THEN
OUTPUT;RUN;
3. Schritt: Zählen der Anzahl gefundener Kontrollen pro Fall
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Zählen der Kontrollen pro FallZählen der Kontrollen pro Fall
PROC
SORT
DATA
= Abgleich; BY
Fall_ID; RUN;DATA
Abgleich_2 ( keep
= Fall_ID
Anzahl_K); SET
Abgleich;BY
Fall_ID;RETAIN
Anzahl_K;IF
first.Fall_ID
THEN
Anzahl_K
= 1; ELSE
Anzahl_K
+ 1;IF
last.Fall_ID
THEN
OUTPUT;RUN;
3. Schritt: Zählen der Anzahl gefundener Kontrollen pro Fall
Anzahl_KFall_ID
……1131251
Abgleich_2
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Verknüpfen und SortierenVerknüpfen und Sortieren
4. Schritt: Verknüpfen mit der Haupttabelle und sortieren der Fälle nach der Anzahl der Kontrollen
DATA
Abgleich_3; MERGE
Abgleich Abgleich_2;BY
Fall_ID;z_zahl=uniform(seed);
RUN;PROC
SORT
DATA
= Abgleich_3;BY
Kontroll_ID
Anzahl_K
z_zahl;RUN;
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Verknüpfen und SortierenVerknüpfen und Sortieren
4. Schritt: Verknüpfen mit der Haupttabelle und sortieren der Fälle nach der Anzahl der Kontrollen
DATA
Abgleich_3; MERGE
Abgleich Abgleich_2;BY
Fall_ID;z_zahl=uniform(seed);
RUN;PROC
SORT
DATA
= Abgleich_3;BY
Kontroll_ID
Anzahl_K
z_zahl;RUN;
Ab hier mehrmalige Wiederholung der restlichen Prozedur mit unterschied- lichen Zufallszahlen!
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
3
2
4
3
9
9
3
2
Anz_K
…
0.945
0.777
0.699
0.467
0.992
0.711
0.667
0.220
z_zahlKontrollen
1968B19708
1968B19652
1962A19606
1966C19673
1966C19652
JahrIDJahrID
…
A
A
A
…
1962
1962
1962
Fälle
……
19647
19652
19633
Verknüpfen und SortierenVerknüpfen und Sortieren
4. Schritt: Verknüpfen mit der Haupttabelle und sortieren der Fälle nach der Anzahl der Kontrollen
DATA
Abgleich_3; MERGE
Abgleich Abgleich_2;BY
Fall_ID;z_zahl=uniform(seed);
RUN;PROC
SORT
DATA
= Abgleich_3;BY
Kontroll_ID
Anzahl_K
z_zahl;RUN;
Ab hier mehrmalige Wiederholung der restlichen Prozedur mit unterschied- lichen Zufallszahlen!
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
3
2
4
3
9
9
3
2
Anz_K
…
0.945
0.777
0.699
0.467
0.992
0.711
0.667
0.220
z_zahlKontrollen
1968B19708
1968B19652
1962A19606
1966C19673
1966C19652
JahrIDJahrID
…
A
A
A
…
1962
1962
1962
Fälle
……
19647
19652
19633
Verknüpfen und SortierenVerknüpfen und Sortieren
4. Schritt: Verknüpfen mit der Haupttabelle und sortieren der Fälle nach der Anzahl der Kontrollen
DATA
Abgleich_3; MERGE
Abgleich Abgleich_2;BY
Fall_ID;z_zahl=uniform(seed);
RUN;PROC
SORT
DATA
= Abgleich_3;BY
Kontroll_ID
Anzahl_K
z_zahl;RUN;
Ab hier mehrmalige Wiederholung der restlichen Prozedur mit unterschied- lichen Zufallszahlen!
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
3
2
4
3
9
9
3
2
Anz_K
…
0.945
0.777
0.699
0.467
0.992
0.711
0.667
0.220
z_zahlKontrollen
1968B19708
1968B19652
1962A19606
1966C19673
1966C19652
JahrIDJahrID
…
A
A
A
…
1962
1962
1962
Fälle
……
19647
19652
19633
Verknüpfen und SortierenVerknüpfen und Sortieren
4. Schritt: Verknüpfen mit der Haupttabelle und sortieren der Fälle nach der Anzahl der Kontrollen
DATA
Abgleich_3; MERGE
Abgleich Abgleich_2;BY
Fall_ID;z_zahl=uniform(seed);
RUN;PROC
SORT
DATA
= Abgleich_3;BY
Kontroll_ID
Anzahl_K
z_zahl;RUN;
Ab hier mehrmalige Wiederholung der restlichen Prozedur mit unterschied- lichen Zufallszahlen!
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
3
2
4
3
9
9
3
2
Anz_K
…
0.945
0.777
0.699
0.467
0.992
0.711
0.667
0.220
z_zahlKontrollen
1968B19708
1968B19652
1962A19606
1966C19673
1966C19652
JahrIDJahrID
…
A
A
A
…
1962
1962
1962
Fälle
……
19647
19652
19633
Verknüpfen und SortierenVerknüpfen und Sortieren
4. Schritt: Verknüpfen mit der Haupttabelle und sortieren der Fälle nach der Anzahl der Kontrollen
DATA
Abgleich_3; MERGE
Abgleich Abgleich_2;BY
Fall_ID;z_zahl=uniform(seed);
RUN;PROC
SORT
DATA
= Abgleich_3;BY
Kontroll_ID
Anzahl_K
z_zahl;RUN;
Ab hier mehrmalige Wiederholung der restlichen Prozedur mit unterschied- lichen Zufallszahlen!
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Jede Kontrolle nur einmal!Jede Kontrolle nur einmal!
DATA
Abgleich_4; SET
Abgleich_3;BY
Kontroll_ID;IF
first.Kontroll_ID;RUN;
5. Schritt: Jeweils den ersten Eintrag zu jeder Kontrolle auswählen
Fälle KontrollenID Jahr z_zahl Anz_K ID Jahr3 1963 0.220 2 A 19622 1965 0.667 3 A 19627 1964 0.711 5 A 19626 1960 0.992 11 A 19622 1965 0.467 3 B 19688 1970 0.699 4 B 19683 1967 0.777 2 C 19662 1965 0.945 3 C 1966… … … … …
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Jede Kontrolle nur einmal!Jede Kontrolle nur einmal!
DATA
Abgleich_4; SET
Abgleich_3;BY
Kontroll_ID;IF
first.Kontroll_ID;RUN;
5. Schritt: Jeweils den ersten Eintrag zu jeder Kontrolle auswählen
Fälle KontrollenID Jahr z_zahl Anz_K ID Jahr3 1963 0.220 2 A 19622 1965 0.667 3 A 19627 1964 0.711 5 A 19626 1960 0.992 11 A 19622 1965 0.467 3 B 19688 1970 0.699 4 B 19683 1967 0.777 2 C 19662 1965 0.945 3 C 1966… … … … …
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Jede Kontrolle nur einmal!Jede Kontrolle nur einmal!
DATA
Abgleich_4; SET
Abgleich_3;BY
Kontroll_ID;IF
first.Kontroll_ID;RUN;
5. Schritt: Jeweils den ersten Eintrag zu jeder Kontrolle auswählen
Fälle KontrollenID Jahr z_zahl Anz_K ID Jahr3 1963 0.220 2 A 19622 1965 0.667 3 A 19627 1964 0.711 5 A 19626 1960 0.992 11 A 19622 1965 0.467 3 B 19688 1970 0.699 4 B 19683 1967 0.777 2 C 19662 1965 0.945 3 C 1966… … … … …
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Jede Kontrolle nur einmal!Jede Kontrolle nur einmal!
DATA
Abgleich_4; SET
Abgleich_3;BY
Kontroll_ID;IF
first.Kontroll_ID;RUN;
5. Schritt: Jeweils den ersten Eintrag zu jeder Kontrolle auswählen
Fälle KontrollenID Jahr z_zahl Anz_K ID Jahr3 1963 0.220 2 A 19622 1965 0.667 3 A 19627 1964 0.711 5 A 19626 1960 0.992 11 A 19622 1965 0.467 3 B 19688 1970 0.699 4 B 19683 1967 0.777 2 C 19662 1965 0.945 3 C 1966… … … … …
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Jede Kontrolle nur einmal!Jede Kontrolle nur einmal!
DATA
Abgleich_4; SET
Abgleich_3;BY
Kontroll_ID;IF
first.Kontroll_ID;RUN;
5. Schritt: Jeweils den ersten Eintrag zu jeder Kontrolle auswählen
Fälle KontrollenID Jahr z_zahl Anz_K ID Jahr3 1963 0.220 2 A 19622 1965 0.667 3 A 19627 1964 0.711 5 A 19626 1960 0.992 11 A 19622 1965 0.467 3 B 19688 1970 0.699 4 B 19683 1967 0.777 2 C 19662 1965 0.945 3 C 1966… … … … …
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Jeder Fall zweimal!Jeder Fall zweimal!
6. Schritt: Zufällige Auswahl von N Kontrollen pro FallPROC
SORT
DATA
= Abgleich_4; BY
Fall_ID
z_zahl; RUN;DATA
Final; SET
Abgleich_4;BY
Fall_ID;RETAIN
num;IF
first.Fall_ID
THEN
num
= 1;IF
num
le N THEN
DO;OUTPUT
Final;num
+ 1;END;
RUN;
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Jeder Fall zweimal!Jeder Fall zweimal!
6. Schritt: Zufällige Auswahl von N Kontrollen pro FallPROC
SORT
DATA
= Abgleich_4; BY
Fall_ID
z_zahl; RUN;DATA
Final; SET
Abgleich_4;BY
Fall_ID;RETAIN
num;IF
first.Fall_ID
THEN
num
= 1;IF
num
le N THEN
DO;OUTPUT
Final;num
+ 1;END;
RUN;
Letzter Schritt: Wiederholung ab Schritt 4 mit neuen Zufallszahlen, Auswählen der “Final”-Tabelle mit den meisten doppelten Zuordnungen! (“Final” enthält auch Fälle mit nur einer gefundenen Kontrolle)
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Ergebnis (PROC SLQ)Ergebnis (PROC SLQ)
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Ergebnis (PROC SLQ)Ergebnis (PROC SLQ)
Szenario 1: gleiche Altersverteilung
Zu 131 Fällen wurde keine Kontrolle gefunden!
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Ergebnis (PROC SLQ)Ergebnis (PROC SLQ)
Szenario 1: gleiche Altersverteilung
Zu 131 Fällen wurde keine Kontrolle gefunden!
Szenario 2: ungleiche Altersverteilung, Fälle 30% Frauen
Zu 144 Fällen wurde keine Kontrolle gefunden!
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
…ok, aber sooo schlecht?…ok, aber sooo schlecht?
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 8 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F
11 0.99 17 F
Sortieren
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
…ok, aber sooo schlecht?…ok, aber sooo schlecht?
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 8 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F
11 0.99 17 F
D10.339F80.541
8888
# K
0.220.670.120.02
zK
B1C1
IDID
E
A
Fälle
1
1
first.Kontroll_ID
Sortieren
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
…ok, aber sooo schlecht?…ok, aber sooo schlecht?
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 8 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F
11 0.99 17 F
D10.339F80.541
8888
# K
0.220.670.120.02
zK
B1C1
IDID
E
A
Fälle
1
1
first.Kontroll_ID
188
# K
0.330.120.02
zK
B1
IDID
D
A
Fälle
9
1ErgebnisErgebnis
Sortieren
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
…ok, aber sooo schlecht?…ok, aber sooo schlecht?
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 8 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F
11 0.99 17 F
In diesem Beispiel wird die Hälfte der möglichen Paare unterschlagen!
D10.339F80.541
8888
# K
0.220.670.120.02
zK
B1C1
IDID
E
A
Fälle
1
1
first.Kontroll_ID
188
# K
0.330.120.02
zK
B1
IDID
D
A
Fälle
9
1ErgebnisErgebnis
F90.597E80.354
7# K
0.86z
KIDIDC
Fälle
7VerlustVerlust
Sortieren
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
188
# K
0.330.120.02
zK
D9
IDID
BA
Fälle
11
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
188
# K
0.330.120.02
zK
D9
IDID
BA
Fälle
11
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
188
# K
0.330.120.02
zK
D9
IDID
BA
Fälle
11
A
X 100
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
188
# K
0.330.120.02
zK
D9
IDID
BA
Fälle
11
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
188
# K
0.330.120.02
zK
D9
IDID
BA
Fälle
11
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
188
# K
0.330.120.02
zK
D9
IDID
BA
Fälle
11
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
188
# K
0.330.120.02
zK
D9
IDID
BA
Fälle
11
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
188
# K
0.330.120.02
zK
D9
IDID
BA
Fälle
11
989
# K
0.590.350.86
zK
E4F7
IDIDC
Fälle
7
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
188
# K
0.330.120.02
zK
D9
IDID
BA
Fälle
11
989
# K
0.590.350.86
zK
E4F7
IDIDC
Fälle
7
899
# K
0.350.860.59
zK
C7E4
IDIDF
Fälle
7
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
188
# K
0.330.120.02
zK
D9
IDID
BA
Fälle
11
989
# K
0.590.350.86
zK
E4F7
IDIDC
Fälle
7
899
# K
0.350.860.59
zK
C7E4
IDIDF
Fälle
7899
0.350.860.59
E4FC
77
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
188
# K
0.330.120.02
zK
D9
IDID
BA
Fälle
11
989
# K
0.590.350.86
zK
E4F7
IDIDC
Fälle
7
899
# K
0.350.860.59
zK
C7E4
IDIDF
Fälle
7899
0.350.860.59
E4FC
77
899
0.350.860.59
E4CF
77
A
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
PROC SLQ: ModifikationPROC SLQ: Modifikation
Fälle KID z # K ID1 0.02 8 A4 0.66 8 A5 0.71 15 A6 0.99 21 A1 0.12 8 B8 0.44 10 B1 0.67 2 C7 0.86 9 C9 0.33 1 D1 0.72 8 D1 0.22 8 E4 0.35 8 E6 0.49 21 E1 0.54 8 F7 0.59 9 F110.99 17 F
F80.541E80.221
1288
# K
0.330.670.120.02
zK
B1C1
IDID
D
A
Fälle
9
1
D10.339C80.671
8288
# K
0.540.220.120.02
zK
B1E1
IDID
F
A
Fälle
1
1
188
# K
0.330.120.02
zK
D9
IDID
BA
Fälle
11
989
# K
0.590.350.86
zK
E4F7
IDIDC
Fälle
7
899
# K
0.350.860.59
zK
C7E4
IDIDF
Fälle
7899
0.350.860.59
E4FC
77
899
0.350.860.59
E4CF
77
A
do until A = { }
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Macro-Umsetzung (1)Macro-Umsetzung (1)
… 6. Schritt: Anwenden des Macros
%MACRO
Optimierung(TabIn=, TabOut=, caseID=, controlID=, numControls=, zzahl=);
DATA _reduction; SET &TabIn.; RUN;
PROC SQL NOPRINT; SELECT COUNT(*) INTO :_countFROM &TabIn.;
QUIT;
%DO %UNTIL
(&_count.
= %SYSEVALF(0));.........
%END;
%MEND
Optimierung;
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Macro-Umsetzung (1)Macro-Umsetzung (1)
… 6. Schritt: Anwenden des Macros
%MACRO
Optimierung(TabIn=, TabOut=, caseID=, controlID=, numControls=, zzahl=);
DATA _reduction; SET &TabIn.; RUN;
PROC SQL NOPRINT; SELECT COUNT(*) INTO :_countFROM &TabIn.;
QUIT;
%DO %UNTIL
(&_count.
= %SYSEVALF(0));.........
%END;
%MEND
Optimierung;
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Macro-Umsetzung (2)Macro-Umsetzung (2)
%MACRO
Optimierung(TabIn=, TabOut=, caseID=, controlID=, numControls=, zzahl=);
...
%DO %UNTIL
(&_count.
= %SYSEVALF(0));PROC SORT DATA =_reduction; BY &controlID. &numControls.
&zzahl.; RUN;DATA _set1; SET _reduction;
BY &controlID.; IF first.&controlID.;
RUN;
PROC SORT DATA = _set1; BY &caseID.; RUN;DATA _set2; SET _set1;
BY &caseID.; IF (first.&caseID.
or
last.&caseID.); /*1:2-Matching*/RUN;...
%END;
%MEND
Optimierung;
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Macro-Umsetzung (3)Macro-Umsetzung (3)
%MACRO
Optimierung(TabIn=, TabOut=, caseID=, controlID=, numControls=, zzahl=);
...
%DO %UNTIL
(&_count.
= %SYSEVALF(0));
...
PROC APPEND BASE = &TabOut.
DATA =_set2; RUN;
PROC SORT DATA = _reduction; BY &controlID.; RUN;PROC SORT DATA = _set2; BY &controlID.; RUN;DATA _reduction; MERGE _reduction
_set2 (in = b keep
= &controlID.);BY &controlID.; IF not
b; RUN;...
%END;
%MEND
Optimierung;
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Macro-Umsetzung (4)Macro-Umsetzung (4)
%MACRO
Optimierung(TabIn=, TabOut=, caseID=, controlID=, numControls=, zzahl=);
...
%DO %UNTIL
(&_count.
= %SYSEVALF(0));
...
PROC SORT DATA = _reduction; BY &caseID.; RUN;PROC SORT DATA = _set2; BY &caseID.; RUN;DATA _reduction; MERGE _reduction
_set2 (in = b keep
= &caseID.);BY &caseID.;IF not
b; RUN;
PROC SQL NOPRINT; SELECT COUNT(*) INTO :_count
FROM _reduction; QUIT;%END;
%MEND
Optimierung;
+
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Macro-Umsetzung (4)Macro-Umsetzung (4)
%MACRO
Optimierung(TabIn=, TabOut=, caseID=, controlID=, numControls=, zzahl=);
...
%DO %UNTIL
(&_count.
= %SYSEVALF(0));
...
PROC SORT DATA = _reduction; BY &caseID.; RUN;PROC SORT DATA = _set2; BY &caseID.; RUN;DATA _reduction; MERGE _reduction
_set2 (in = b keep
= &caseID.);BY &caseID.;IF not
b; RUN;
PROC SQL NOPRINT; SELECT COUNT(*) INTO :_count
FROM _reduction; QUIT;%END;
%MEND
Optimierung;
+
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Ergebnis (PROC SLQ modifiziert)Ergebnis (PROC SLQ modifiziert)
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Ergebnis (PROC SLQ modifiziert)Ergebnis (PROC SLQ modifiziert)
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
Szenario 1: gleiche Altersverteilung
Zu 2 Fällen wurde keine Kontrolle gefunden!
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Ergebnis (PROC SLQ modifiziert)Ergebnis (PROC SLQ modifiziert)
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
Szenario 2: ungleiche Altersverteilung, Fälle 30% Frauen
Zu 74 Fällen wurde keine Kontrolle gefunden!
Szenario 1: gleiche Altersverteilung
Zu 2 Fällen wurde keine Kontrolle gefunden!
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Lösung mit Propensity ScoresLösung mit Propensity Scores
Für jede Person wird die Vorhersage-Wahrscheinlichkeit berechnet, aufgrund der individuellen Variablen-Struktur ein Fall zu werden, d.h. Kontrollen mit ähnlicher Struktur erhalten ähnliche Wahrschein- lichkeiten wie vergleichbare Fälle.
Parsons LS, et. al. (2004): Performing a 1:N Case-Control Match on Propensity Score. SUGI 29, 165-29, Seattle, Washington
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Lösung mit Propensity ScoresLösung mit Propensity Scores
Für jede Person wird die Vorhersage-Wahrscheinlichkeit berechnet, aufgrund der individuellen Variablen-Struktur ein Fall zu werden, d.h. Kontrollen mit ähnlicher Struktur erhalten ähnliche Wahrschein- lichkeiten wie vergleichbare Fälle.
Parsons LS, et. al. (2004): Performing a 1:N Case-Control Match on Propensity Score. SUGI 29, 165-29, Seattle, Washington
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Logistisches ModellLogistisches Modell
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Logistisches ModellLogistisches Modell
PROC
LOGISTIC
DATA
= Frauen;MODEL
F_K = Alter Zuzug/ SELECTION
= NONE RISKLIMITS
LACKFIT
RSQUARE
PARMLABEL;OUTPUT
OUT
= Propensity_f
PROB = prob;RUN;
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Logistisches ModellLogistisches Modell
PROC
LOGISTIC
DATA
= Frauen;MODEL
F_K = Alter Zuzug/ SELECTION
= NONE RISKLIMITS
LACKFIT
RSQUARE
PARMLABEL;OUTPUT
OUT
= Propensity_f
PROB = prob;RUN;
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
0.2269100199945mF20
382320
Alter
f
mff
sex
0.24534892008F
pZuzugF_K
199320072008
0.22389910.24566770.2453482
KKK
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Logistisches ModellLogistisches Modell
PROC
LOGISTIC
DATA
= Frauen;MODEL
F_K = Alter Zuzug/ SELECTION
= NONE RISKLIMITS
LACKFIT
RSQUARE
PARMLABEL;OUTPUT
OUT
= Propensity_f
PROB = prob;RUN;
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
0.2269100199945mF20
382320
Alter
f
mff
sex
0.24534892008F
pZuzugF_K
199320072008
0.22389910.24566770.2453482
KKK
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Logistisches ModellLogistisches Modell
PROC
LOGISTIC
DATA
= Frauen;MODEL
F_K = Alter Zuzug/ SELECTION
= NONE RISKLIMITS
LACKFIT
RSQUARE
PARMLABEL;OUTPUT
OUT
= Propensity_f
PROB = prob;RUN;
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
0.2269100199945mF20
382320
Alter
f
mff
sex
0.24534892008F
pZuzugF_K
199320072008
0.22389910.24566770.2453482
KKK
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Logistisches ModellLogistisches Modell
PROC
LOGISTIC
DATA
= Frauen;MODEL
F_K = Alter Zuzug/ SELECTION
= NONE RISKLIMITS
LACKFIT
RSQUARE
PARMLABEL;OUTPUT
OUT
= Propensity_f
PROB = prob;RUN;
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
0.2269100199945mF20
382320
Alter
f
mff
sex
0.24534892008F
pZuzugF_K
199320072008
0.22389910.24566770.2453482
KKK
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Logistisches ModellLogistisches Modell
PROC
LOGISTIC
DATA
= Frauen;MODEL
F_K = Alter Zuzug/ SELECTION
= NONE RISKLIMITS
LACKFIT
RSQUARE
PARMLABEL;OUTPUT
OUT
= Propensity_f
PROB = prob;RUN;
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
0.2269100199945mF20
382320
Alter
f
mff
sex
0.24534892008F
pZuzugF_K
199320072008
0.22389910.24566770.2453482
KKK
Extremfall:
Danach Ausschluss der “falschen Socken” (nachträgliche Begrenzung)
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Ergebnis (Propensity Score)Ergebnis (Propensity Score)
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Ergebnis (Propensity Score)Ergebnis (Propensity Score)
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
Szenario 1: gleiche Altersverteilung
Zu 110 Fällen wurde keine Kontrolle gefunden!
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Ergebnis (Propensity Score)Ergebnis (Propensity Score)
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
Szenario 2: ungleiche Altersverteilung, Fälle 30% Frauen
Zu 220 Fällen wurde keine Kontrolle gefunden!
Szenario 1: gleiche Altersverteilung
Zu 110 Fällen wurde keine Kontrolle gefunden!
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
ZusammenfassungZusammenfassung
300 Fälle, 900 Kontrollen 300 Fälle, 10.000 Kontrollen
2 K 1 K keine 2 K 1 K keine
PROC SQL* 146 23 131 186 1 113PROC SQL modifiziert 273 25 2 298 2 0
Propensity Score 72 118 110 288 8 4
PROC SQL* 123 33 144 173 2 125
PROC SQL modifiziert 169 57 74 297 3 0
Propensity Score 32 48 220 253 35 12
Gle
iche
A
lters
verte
il.U
ngle
iche
A
lters
verte
il.
* jeweils 500 Durchläufe mit variierten Zufallszahlen
01.03.2011 Andreas Deckert, Institute of Public Health Heidelberg
Vielen Dank für Ihre Aufmerksamkeit!Vielen Dank für Ihre Aufmerksamkeit!
Kawabata H, et. al. Using SAS ® to Match Cases for Case Control Studies. SUGI 29, 173-29, Princeton, New Jersey
Parsons LS, et. al. Performing a 1:N Case-Control Match on Propensity Score. SUGI 29, 165-29, Seattle, Washington