Individuelles Matching

Werbung
1:N
-Matching von F
ällen und Kontrollen:
1:N-Matching
Fällen
Propensity Score vs. PROC SQL
Andreas
Andreas Deckert
Deckert
Institute
Institute of
of Public
Public Health,
Health, Universität
Universität Heidelberg
Heidelberg
Übersicht
 Matching
 Problemstellung
 Realisierung mit PROC SQL
 Optimierung des Abgleichs mit PROC SQL
 Realisierung mit Propensity Scores
 Vergleich der Ergebnisse
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

01.03.2011
Was ist Matching?
Andreas Deckert, Institute of Public Health Heidelberg

Matching: 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: 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: 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: 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 Kontrollperson mit gleich ausgeprägten Matching-Faktoren ausgewählt
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

1:N-Matching
 1:N-matching: Erhöhen der statistischen Power
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

1: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

1: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)
Power
0.95
0.90
0.85
0.80
0.75
0.70
0.65
0.60
1
2
3
4
5
6
7
8
9
10
1:N
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

1: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)
Power
0.95
PROC
PROC POWER;
POWER;
TWOSAMPLEFREQ
TWOSAMPLEFREQ
TEST
TEST == pchi
pchi
ALPHA
ALPHA == .05
.05
ODDSRATIO
ODDSRATIO == 22
REFPROPORTION
REFPROPORTION == 0.06
0.06
GROUPWEIGHTS
GROUPWEIGHTS == ((NN 1)
1)
NTOTAL
NTOTAL == 300+300*N
300+300*N
POWER
POWER == .;
.;
RUN;
RUN;
0.90
0.85
0.80
0.75
0.70
0.65
0.60
1
2
3
4
5
6
7
8
9
10
1:N
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

1: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)
Power
0.95
PROC
PROC POWER;
POWER;
TWOSAMPLEFREQ
TWOSAMPLEFREQ
TEST
TEST == pchi
pchi
ALPHA
ALPHA == .05
.05
ODDSRATIO
ODDSRATIO == 22
REFPROPORTION
REFPROPORTION == 0.06
0.06
GROUPWEIGHTS
GROUPWEIGHTS == ((NN 1)
1)
NTOTAL
NTOTAL == 300+300*N
300+300*N
POWER
POWER == .;
.;
RUN;
RUN;
0.90
0.85
0.80
0.75
0.70
0.65
0.60
1
2
3
4
5
6
7
8
9
10
1:N
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

1: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)
Power
0.95
PROC
PROC POWER;
POWER;
TWOSAMPLEFREQ
TWOSAMPLEFREQ
TEST
TEST == pchi
pchi
ALPHA
ALPHA == .05
.05
ODDSRATIO
ODDSRATIO == 22
REFPROPORTION
REFPROPORTION == 0.06
0.06
GROUPWEIGHTS
GROUPWEIGHTS == ((NN 1)
1)
NTOTAL
NTOTAL == 300+300*N
300+300*N
POWER
POWER == .;
.;
RUN;
RUN;
0.90
0.85
0.80
0.75
0.70
0.65
0.60
1
2
3
4
5
6
7
8
9
10
1:N
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Problemstellung (1)
 Fall-Kontroll-Studie, 1:2 Matching nach Alter, Geschlecht und Zuzugsdatum (Erweiterung um weitere Variablen möglich)
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Problemstellung (1)
 Fall-Kontroll-Studie, 1:2 Matching nach Alter, Geschlecht und Zuzugsdatum (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)
 Fall-Kontroll-Studie, 1:2 Matching nach Alter, Geschlecht und Zuzugsdatum (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)
 Fall-Kontroll-Studie, 1:2 Matching nach Alter, Geschlecht und Zuzugsdatum (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)
Simulation Szenario I
n
200
Fälle
175
150
125
100
75
50
25
0
200
0-4
5-14 16-24 25-34 35-44 45-54 55-64 65-74 75-84 85+
Kontrollpool
175
150
125
100
75
50
25
0
0-4
5-14 16-24 25-34 35-44 45-54 55-64 65-74 75-84 85+
Altersklassen
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Problemstellung (2)
Simulation Szenario I
n
200
Fälle
175
Simulation Szenario II
200
150
150
125
125
100
100
75
75
50
50
25
25
0
200
Fälle
175
0
0-4
5-14 16-24 25-34 35-44 45-54 55-64 65-74 75-84 85+
Kontrollpool
175
200
0-4
5-14 16-24 25-34 35-44 45-54 55-64 65-74 75-84 85+
0-4
5-14 16-24 25-34 35-44 45-54 55-64 65-74 75-84 85+
175
150
150
125
125
100
100
75
75
50
50
25
25
Kontrollpool
0
0
0-4
5-14 16-24 25-34 35-44 45-54 55-64 65-74 75-84 85+
Altersklassen
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

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)
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)
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 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 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 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

Datenaufbereitung
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

Datenaufbereitung
Datenstruktur: Eindeutige ID für jeden Eintrag in Kontrollen und Fällen,
Geburtsdatum, Geschlecht, Zuzugsdatum, …
 1. Schritt: Toleranzbereiche für das Alter und den Zuzug festlegen
DATA Kontrollpool; SET Kontrollpool;
Geburtsjahr = year(Geburtsdatum);
min_Geburtsjahr = Geburtsjahr - 3;
max_Geburtsjahr = Geburtsjahr + 3;
min_Zuzugsjahr = Zuzugsjahr - 3;
max_Zuzugsjahr = Zuzugsjahr + 3;
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Datenaufbereitung
Datenstruktur: Eindeutige ID für jeden Eintrag in Kontrollen und Fällen,
Geburtsdatum, Geschlecht, Zuzugsdatum, …
 1. Schritt: Toleranzbereiche für das Alter und den Zuzug festlegen
DATA Kontrollpool; SET Kontrollpool;
Geburtsjahr = year(Geburtsdatum);
min_Geburtsjahr = Geburtsjahr - 3;
max_Geburtsjahr = Geburtsjahr + 3;
min_Zuzugsjahr = Zuzugsjahr - 3;
max_Zuzugsjahr = Zuzugsjahr + 3;
DATA Fallgruppe; SET Fallgruppe;
Geburtsjahr = year(Geburtsdatum);
Zuzugsjahr = year(Zuzugsdatum);
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

SQL-Abfrage
 2. Schritt: Verknüpfen der Tabellen mit PROC SQL
PROC SQL;
CREATE TABLE Abgleich AS SELECT
A.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 B
WHERE ((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;
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

…und was dabei passiert
Fälle
ID
Jahr
z_zahl
1
1960
0.59496
2
1965
0.66743
3
1963
0.22011
4
1955
0.23779
Kontrollen
ID
Jahr
min
A
1962
1959 1965
B
1968
1965 1971
C
1966
1963 1969
D
1958
1955 1961
E
1963
1960 1966
F
1962
1959 1965
G
1959
1956 1962
01.03.2011
max
Andreas Deckert, Institute of Public Health Heidelberg

…und was dabei passiert
Fälle
ID
Jahr
z_zahl
1
1960
0.59496
2
1965
0.66743
3
1963
4
1955
Fälle
Kontrollen
ID
Jahr
z_zahl
ID
Jahr
1
1960
0.59496
D
1958
0.22011
E
1963
0.23779
F
1962
G
1959
A
1962
Kontrollen
1965
0.66743
Jahr
min
A
1962
1959 1965
B
1968
B
1968
1965 1971
C
1966
C
1966
1963 1969
A
1962
D
1958
1955 1961
E
1963
E
1963
1960 1966
4
1955
0.23779
D
1958
F
1962
1959 1965
…
…
…
…
…
G
1959
1956 1962
01.03.2011
max
2
ID
3
1963
0.22011
Andreas Deckert, Institute of Public Health Heidelberg

…und was dabei passiert
Fälle
ID
Jahr
z_zahl
1
1960
0.59496
2
1965
0.66743
3
1963
4
1955
Fälle
Kontrollen
ID
Jahr
z_zahl
ID
Jahr
1
1960
0.59496
D
1958
0.22011
E
1963
0.23779
F
1962
G
1959
A
1962
Kontrollen
1965
0.66743
Jahr
min
A
1962
1959 1965
B
1968
B
1968
1965 1971
C
1966
C
1966
1963 1969
A
1962
D
1958
1955 1961
E
1963
E
1963
1960 1966
4
1955
0.23779
D
1958
F
1962
1959 1965
…
…
…
…
…
G
1959
1956 1962
01.03.2011
max
2
ID
3
1963
0.22011
Andreas Deckert, Institute of Public Health Heidelberg

…und was dabei passiert
Fälle
ID
Jahr
z_zahl
1
1960
0.59496
2
1965
0.66743
3
1963
4
1955
Fälle
Kontrollen
ID
Jahr
z_zahl
ID
Jahr
1
1960
0.59496
D
1958
0.22011
E
1963
0.23779
F
1962
G
1959
A
1962
Kontrollen
1965
0.66743
Jahr
min
A
1962
1959 1965
B
1968
B
1968
1965 1971
C
1966
C
1966
1963 1969
A
1962
D
1958
1955 1961
E
1963
E
1963
1960 1966
4
1955
0.23779
D
1958
F
1962
1959 1965
…
…
…
…
…
G
1959
1956 1962
01.03.2011
max
2
ID
3
1963
0.22011
Andreas Deckert, Institute of Public Health Heidelberg

Zuordnung der Kontrollen
1:2-Matching, ohne Intervention:
Fälle
1:2-Matching, ideal:
Fälle
Kontrollen
Kontrollen
ID
Jahr
ID
Jahr
ID
Jahr
ID
Jahr
1
1960
D
1958
4
1955
D
1958
1
1960
E
1963
3
1963
A
1962
1
1960
F
1962
3
1963
E
1963
1
1960
G
1959
2
1965
A
1962
2
1965
A
1962
2
1965
B
1968
2
1965
B
1968
2
1965
C
1966
2
1965
C
1966
1
1960
D
1958
3
1963
A
1962
1
1960
E
1963
3
1963
E
1963
1
1960
F
1962
4
1955
D
1958
1
1960
G
1959
…
…
…
…
…
…
…
…
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Zuordnung der Kontrollen
1:2-Matching, ohne Intervention:
Fälle
1:2-Matching, ideal:
Fälle
Kontrollen
Kontrollen
ID
Jahr
ID
Jahr
4
1955
D
1958
1963
3
1963
A
1962
F
1962
3
1963
E
1963
1960
G
1959
2
1965
A
1962
2
1965
A
1962
2
1965
B
1968
2
1965
B
1968
2
1965
C
1966
2
1965
C
1966
1
1960
D
1958
3
1963
A
1962
1
1960
E
1963
3
1963
E
1963
1
1960
F
1962
4
1955
D
1958
1
1960
G
1959
…
…
…
…
…
…
…
…
ID
Jahr
ID
Jahr
1
1960
D
1958
1
1960
E
1
1960
1
01.03.2011

Andreas Deckert, Institute of Public Health Heidelberg

Zuordnung der Kontrollen
1:2-Matching, ohne Intervention:
Fälle
1:2-Matching, ideal:
Fälle
Kontrollen
Kontrollen
ID
Jahr
ID
Jahr
4
1955
D
1958
1963
3
1963
A
1962
F
1962
3
1963
E
1963
1960
G
1959
2
1965
A
1962
2
1965
A
1962
2
1965
B
1968
2
1965
B
1968
2
1965
C
1966
2
1965
C
1966
1
1960
D
1958
3
1963
A
1962
1
1960
E
1963
3
1963
E
1963
1
1960
F
1962
4
1955
D
1958
1
1960
G
1959
…
…
…
…
…
…
…
…
ID
Jahr
ID
Jahr
1
1960
D
1958
1
1960
E
1
1960
1
01.03.2011

Andreas Deckert, Institute of Public Health Heidelberg

Zuordnung der Kontrollen
1:2-Matching, ohne Intervention:
Fälle
1:2-Matching, ideal:
Fälle
Kontrollen
Kontrollen
ID
Jahr
ID
Jahr
4
1955
D
1958
3
1963
A
1962
1962
3
1963
E
1963
G
1959
2
1965
A
1962
1965
A
1962
2
1965
B
1968
2
1965
B
1968
2
1965
C
1966
2
1965
C
1966
1
1960
D
1958
3
1963
A
1962
1
1960
E
1963
3
1963
E
1963
1
1960
F
1962
4
1955
D
1958
1
1960
G
1959
…
…
…
…
…
…
…
…
ID
Jahr
ID
Jahr
1
1960
D
1958
1
1960
E
1963
1
1960
F
1
1960
2
01.03.2011


Andreas Deckert, Institute of Public Health Heidelberg

Zuordnung der Kontrollen
1:2-Matching, ohne Intervention:
Fälle
1:2-Matching, ideal:
Fälle
Kontrollen
Kontrollen
ID
Jahr
ID
Jahr
4
1955
D
1958
3
1963
A
1962
1962
3
1963
E
1963
G
1959
2
1965
A
1962
1965
A
1962
2
1965
B
1968
2
1965
B
1968
2
1965
C
1966
2
1965
C
1966
1
1960
D
1958
3
1963
A
1962
1
1960
E
1963
3
1963
E
1963
1
1960
F
1962
4
1955
D
1958
1
1960
G
1959
…
…
…
…
…
…
…
…
ID
Jahr
ID
Jahr
1
1960
D
1958
1
1960
E
1963
1
1960
F
1
1960
2
01.03.2011




Andreas Deckert, Institute of Public Health Heidelberg

Zuordnung der Kontrollen
1:2-Matching, ohne Intervention:
Fälle
1:2-Matching, ideal:
Fälle
Kontrollen
Kontrollen
ID
Jahr
ID
Jahr
4
1955
D
1958
3
1963
A
1962
1962
3
1963
E
1963
G
1959
2
1965
A
1962
1965
A
1962
2
1965
B
1968
2
1965
B
1968
2
1965
C
1966
2
1965
C
1966
1
1960
D
1958
3
1963
A
1962
1
1960
E
1963
3
1963
E
1963
1
1960
F
1962
4
1955
D
1958
1
1960
G
1959
…
…
…
…
…
…
…
…
ID
Jahr
ID
Jahr
1
1960
D
1958
1
1960
E
1963
1
1960
F
1
1960
2
01.03.2011




?
?
Andreas Deckert, Institute of Public Health Heidelberg

Zuordnung der Kontrollen
1:2-Matching, ohne Intervention:
Fälle
1:2-Matching, ideal:
Fälle
Kontrollen
Kontrollen
ID
Jahr
ID
Jahr
4
1955
D
1958
3
1963
A
1962
1962
3
1963
E
1963
G
1959
2
1965
A
1962
1965
A
1962
2
1965
B
1968
2
1965
B
1968
2
1965
C
1966
2
1965
C
1966
1
1960
D
1958
3
1963
A
1962
1
1960
E
1963
3
1963
E
1963
1
1960
F
1962
4
1955
D
1958
1
1960
G
1959
…
…
…
…
…
…
…
…
ID
Jahr
ID
Jahr
1
1960
D
1958
1
1960
E
1963
1
1960
F
1
1960
2
01.03.2011




?
?

Andreas Deckert, Institute of Public Health Heidelberg

Zuordnung der Kontrollen
1:2-Matching, ohne Intervention:
Fälle
1:2-Matching, ideal:
Fälle
Kontrollen
Kontrollen
ID
Jahr
ID
Jahr
4
1955
D
1958
3
1963
A
1962
1962
3
1963
E
1963
G
1959
2
1965
A
1962
1965
A
1962
2
1965
B
1968
2
1965
B
1968
2
1965
C
1966
2
1965
C
1966
1
1960
D
1958
3
1963
A
1962
1
1960
E
1963
3
1963
E
1963
1
1960
F
1962
4
1955
D
1958
1
1960
G
1959
…
…
…
…
…
…
…
…
ID
Jahr
ID
Jahr
1
1960
D
1958
1
1960
E
1963
1
1960
F
1
1960
2
01.03.2011




?
?



Andreas Deckert, Institute of Public Health Heidelberg

Zuordnung der Kontrollen
1:2-Matching, ohne Intervention:
Fälle
1:2-Matching, ideal:
Fälle
Kontrollen
Kontrollen
ID
Jahr
ID
Jahr
4
1955
D
1958
3
1963
A
1962
1962
3
1963
E
1963
G
1959
2
1965
A
1962
1965
A
1962
2
1965
B
1968
2
1965
B
1968
2
1965
C
1966
2
1965
C
1966
1
1960
D
1958
3
1963
A
1962
1
1960
E
1963
3
1963
E
1963
1
1960
F
1962
4
1955
D
1958
1
1960
G
1959
…
…
…
…
…
…
…
…
ID
Jahr
ID
Jahr
1
1960
D
1958
1
1960
E
1963
1
1960
F
1
1960
2
01.03.2011




?
?







Andreas Deckert, Institute of Public Health Heidelberg

Zählen der Kontrollen pro Fall
 3. Schritt: Zählen der Anzahl gefundener 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;
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Zählen der Kontrollen pro Fall
 3. Schritt: Zählen der Anzahl gefundener 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;
Abgleich_2
01.03.2011
Fall_ID
Anzahl_K
1
5
2
1
3
11
…
…
Andreas Deckert, Institute of Public Health Heidelberg

Verknü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 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 unterschiedlichen Zufallszahlen!
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Verknü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 unterschiedlichen Zufallszahlen!
01.03.2011
Fälle
Kontrollen
ID Jahr z_zahl Anz_K ID
Jahr
3
1963
0.220
2
A
1962
2
1965
0.667
3
A
1962
7
1964
0.711
9
A
1962
6
1960
0.992
9
A
1962
2
1965
0.467
3
B
1968
8
1970
0.699
4
B
1968
3
1967
0.777
2
C
1966
2
1965
0.945
3
C
1966
…
…
…
…
…
Andreas Deckert, Institute of Public Health Heidelberg

Verknü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 unterschiedlichen Zufallszahlen!
01.03.2011
Fälle
Kontrollen
ID Jahr z_zahl Anz_K ID
Jahr
3
1963
0.220
2
A
1962
2
1965
0.667
3
A
1962
7
1964
0.711
9
A
1962
6
1960
0.992
9
A
1962
2
1965
0.467
3
B
1968
8
1970
0.699
4
B
1968
3
1967
0.777
2
C
1966
2
1965
0.945
3
C
1966
…
…
…
…
…
Andreas Deckert, Institute of Public Health Heidelberg

Verknü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 unterschiedlichen Zufallszahlen!
01.03.2011
Fälle
Kontrollen
ID Jahr z_zahl Anz_K ID
Jahr
3
1963
0.220
2
A
1962
2
1965
0.667
3
A
1962
7
1964
0.711
9
A
1962
6
1960
0.992
9
A
1962
2
1965
0.467
3
B
1968
8
1970
0.699
4
B
1968
3
1967
0.777
2
C
1966
2
1965
0.945
3
C
1966
…
…
…
…
…
Andreas Deckert, Institute of Public Health Heidelberg

Verknü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 unterschiedlichen Zufallszahlen!
01.03.2011
Fälle
Kontrollen
ID Jahr z_zahl Anz_K ID
Jahr
3
1963
0.220
2
A
1962
2
1965
0.667
3
A
1962
7
1964
0.711
9
A
1962
6
1960
0.992
9
A
1962
2
1965
0.467
3
B
1968
8
1970
0.699
4
B
1968
3
1967
0.777
2
C
1966
2
1965
0.945
3
C
1966
…
…
…
…
…
Andreas Deckert, Institute of Public Health Heidelberg

Jede Kontrolle nur einmal!
 5. Schritt: Jeweils den ersten Eintrag zu jeder Kontrolle auswählen
Fälle
DATA Abgleich_4;
SET Abgleich_3;
BY Kontroll_ID;
IF first.Kontroll_ID;
RUN;
01.03.2011
Kontrollen
ID Jahr z_zahl Anz_K ID
Jahr
3
1963
0.220
2
A
1962
2
1965
0.667
3
A
1962
7
1964
0.711
5
A
1962
6
1960
0.992
11
A
1962
2
1965
0.467
3
B
1968
8
1970
0.699
4
B
1968
3
1967
0.777
2
C
1966
2
1965
0.945
3
C
1966
…
…
…
…
…
Andreas Deckert, Institute of Public Health Heidelberg

Jede Kontrolle nur einmal!
 5. Schritt: Jeweils den ersten Eintrag zu jeder Kontrolle auswählen
Fälle
DATA Abgleich_4;
SET Abgleich_3;
BY Kontroll_ID;
IF first.Kontroll_ID;
RUN;
01.03.2011
Kontrollen
ID Jahr z_zahl Anz_K ID
Jahr
3
1963
0.220
2
A
1962
2
1965
0.667
3
A
1962
7
1964
0.711
5
A
1962
6
1960
0.992
11
A
1962
2
1965
0.467
3
B
1968
8
1970
0.699
4
B
1968
3
1967
0.777
2
C
1966
2
1965
0.945
3
C
1966
…
…
…
…
…
Andreas Deckert, Institute of Public Health Heidelberg

Jede Kontrolle nur einmal!
 5. Schritt: Jeweils den ersten Eintrag zu jeder Kontrolle auswählen
Fälle
DATA Abgleich_4;
SET Abgleich_3;
BY Kontroll_ID;
IF first.Kontroll_ID;
RUN;
01.03.2011
Kontrollen
ID Jahr z_zahl Anz_K ID
Jahr
3
1963
0.220
2
A
1962
2
1965
0.667
3
A
1962
7
1964
0.711
5
A
1962
6
1960
0.992
11
A
1962
2
1965
0.467
3
B
1968
8
1970
0.699
4
B
1968
3
1967
0.777
2
C
1966
2
1965
0.945
3
C
1966
…
…
…
…
…
Andreas Deckert, Institute of Public Health Heidelberg

Jede Kontrolle nur einmal!
 5. Schritt: Jeweils den ersten Eintrag zu jeder Kontrolle auswählen
Fälle
DATA Abgleich_4;
SET Abgleich_3;
BY Kontroll_ID;
IF first.Kontroll_ID;
RUN;
01.03.2011
Kontrollen
ID Jahr z_zahl Anz_K ID
Jahr
3
1963
0.220
2
A
1962
2
1965
0.667
3
A
1962
7
1964
0.711
5
A
1962
6
1960
0.992
11
A
1962
2
1965
0.467
3
B
1968
8
1970
0.699
4
B
1968
3
1967
0.777
2
C
1966
2
1965
0.945
3
C
1966
…
…
…
…
…
Andreas Deckert, Institute of Public Health Heidelberg

Jede Kontrolle nur einmal!
 5. Schritt: Jeweils den ersten Eintrag zu jeder Kontrolle auswählen
Fälle
DATA Abgleich_4;
SET Abgleich_3;
BY Kontroll_ID;
IF first.Kontroll_ID;
RUN;
01.03.2011
Kontrollen
ID Jahr z_zahl Anz_K ID
Jahr
3
1963
0.220
2
A
1962
2
1965
0.667
3
A
1962
7
1964
0.711
5
A
1962
6
1960
0.992
11
A
1962
2
1965
0.467
3
B
1968
8
1970
0.699
4
B
1968
3
1967
0.777
2
C
1966
2
1965
0.945
3
C
1966
…
…
…
…
…
Andreas Deckert, Institute of Public Health Heidelberg

Jeder Fall zweimal!
 6. Schritt: Zufällige Auswahl von N Kontrollen pro Fall
PROC 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!
 6. Schritt: Zufällige Auswahl von N Kontrollen pro Fall
PROC 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)
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)
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
 Szenario 1: gleiche Altersverteilung
Zu 131 Fällen wurde keine Kontrolle gefunden!
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Ergebnis (PROC SLQ)
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
 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!
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

…ok, aber sooo schlecht?
Sortieren
Fälle
ID
z
1 0.02
4 0.66
5 0.71
6 0.99
1 0.12
8 0.44
1 0.67
7 0.86
9 0.33
1 0.72
1 0.22
4 0.35
6 0.49
1 0.54
7 0.59
11 0.99
#K
8
8
15
21
8
10
8
9
1
8
8
8
21
8
9
17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
Andreas Deckert, Institute of Public Health Heidelberg

…ok, aber sooo schlecht?
Sortieren
Fälle
ID
z
1 0.02
4 0.66
5 0.71
6 0.99
1 0.12
8 0.44
1 0.67
7 0.86
9 0.33
1 0.72
1 0.22
4 0.35
6 0.49
1 0.54
7 0.59
11 0.99
#K
8
8
15
21
8
10
8
9
1
8
8
8
21
8
9
17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
first.Kontroll_ID
Fälle
ID
z
1 0.02
1 0.12
1 0.67
1 0.22
1 0.54
9 0.33
#K
8
8
8
8
8
1
K
ID
A
B
C
E
F
D
Andreas Deckert, Institute of Public Health Heidelberg

…ok, aber sooo schlecht?
Sortieren
Fälle
ID
z
1 0.02
4 0.66
5 0.71
6 0.99
1 0.12
8 0.44
1 0.67
7 0.86
9 0.33
1 0.72
1 0.22
4 0.35
6 0.49
1 0.54
7 0.59
11 0.99
#K
8
8
15
21
8
10
8
9
1
8
8
8
21
8
9
17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
first.Kontroll_ID
Fälle
ID
z
1 0.02
1 0.12
1 0.67
1 0.22
1 0.54
9 0.33
#K
8
8
8
8
8
1
K
ID
A
B
C
E
F
D
Ergebnis
Fälle
ID
z
1 0.02
1 0.12
9 0.33
#K
8
8
1
K
ID
A
B
D
Andreas Deckert, Institute of Public Health Heidelberg

…ok, aber sooo schlecht?
Sortieren
Fälle
ID
z
1 0.02
4 0.66
5 0.71
6 0.99
1 0.12
8 0.44
1 0.67
7 0.86
9 0.33
1 0.72
1 0.22
4 0.35
6 0.49
1 0.54
7 0.59
11 0.99
#K
8
8
15
21
8
10
8
9
1
8
8
8
21
8
9
17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
Ergebnis
Fälle
ID
z
1 0.02
1 0.12
9 0.33
Verlust
Fälle
ID
z
7 0.86
4 0.35
7 0.59
first.Kontroll_ID
Fälle
ID
z
1 0.02
1 0.12
1 0.67
1 0.22
1 0.54
9 0.33
#K
8
8
8
8
8
1
K
ID
A
B
C
E
F
D
#K
8
8
1
K
ID
A
B
D
#K
7
8
9
K
ID
C
E
F
In diesem Beispiel wird die Hälfte der möglichen
Paare unterschlagen!
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
ID
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.33 1
K
ID
A
B
D
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
ID
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.33 1
K
ID
A
B
D
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
ID
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.33 1
K
ID
A
B
D
X 100
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
ID
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.33 1
K
ID
A
B
D
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
ID
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.33 1
K
ID
A
B
D
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
ID
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.33 1
K
ID
A
B
D
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
ID
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.33 1
K
ID
A
B
D
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
7
4
7
Fälle
z #K
0.86 9
0.35 8
0.59 9
K
ID
C
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
ID
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.33 1
K
ID
A
B
D
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
7
4
7
Fälle
z #K
0.86 9
0.35 8
0.59 9
K
ID
C
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
ID
7
7
4
Fälle
z #K
0.59 9
0.86 9
0.35 8
K
ID
F
C
E
ID
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.33 1
K
ID
A
B
D
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
7
4
7
Fälle
z #K
0.86 9
0.35 8
0.59 9
K
ID
C
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
ID
7
7
4
Fälle
z #K
0.59 9
0.86 9
0.35 8
K
ID
F
C
E
ID
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.33 1
7 0.59 9
7 0.86 9
4 0.35 8
K
ID
A
B
D
C
F
E
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
7
4
7
Fälle
z #K
0.86 9
0.35 8
0.59 9
K
ID
C
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
ID
7
7
4
Fälle
z #K
0.59 9
0.86 9
0.35 8
K
ID
F
C
E
ID
1
1
9
7
7
4
Fälle
z #K
0.02 8
0.12 8
0.33 1
0.59 9
0.86 9
0.35 8
7 0.59 9
7 0.86 9
4 0.35 8
K
ID
A
B
D
F
C
E
C
F
E
Andreas Deckert, Institute of Public Health Heidelberg

PROC SLQ: Modifikation
A
Fälle
ID z # K
1 0.02 8
4 0.66 8
5 0.71 15
6 0.99 21
1 0.12 8
8 0.44 10
1 0.67 2
7 0.86 9
9 0.33 1
1 0.72 8
1 0.22 8
4 0.35 8
6 0.49 21
1 0.54 8
7 0.59 9
11 0.99 17
01.03.2011
K
ID
A
A
A
A
B
B
C
C
D
D
E
E
E
F
F
F
ID
1
1
1
9
1
1
Fälle
z #K
0.02 8
0.12 8
0.67 2
0.33 1
0.22 8
0.54 8
K
ID
A
B
C
D
E
F
ID
7
4
7
Fälle
z #K
0.86 9
0.35 8
0.59 9
K
ID
C
E
F
ID
1
1
1
1
1
9
Fälle
z #K
0.02 8
0.12 8
0.22 2
0.54 8
0.67 8
0.33 1
K
ID
A
B
E
F
C
D
ID
7
7
4
Fälle
z #K
0.59 9
0.86 9
0.35 8
K
ID
F
C
E
ID
1
1
9
7
7
4
Fälle
z #K
0.02 8
0.12 8
0.33 1
0.59 9
0.86 9
0.35 8
7 0.59 9
7 0.86 9
4 0.35 8
K
ID
A
B
D
F
C
E
C
F
E
do until A = { }
Andreas Deckert, Institute of Public Health Heidelberg

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 :_count
FROM &TabIn.;
QUIT;
%DO %UNTIL (&_count. = %SYSEVALF(0));
...
...
...
%END;
%MEND Optimierung;
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg


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 :_count
FROM &TabIn.;
QUIT;
%DO %UNTIL (&_count. = %SYSEVALF(0));
...
...
...
%END;
%MEND Optimierung;
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg


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 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 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 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)
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)
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)
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
 Szenario 1: gleiche Altersverteilung
Zu 2 Fällen wurde keine Kontrolle gefunden!
 Szenario 2: ungleiche Altersverteilung, Fälle 30% Frauen
Zu 74 Fällen wurde keine Kontrolle gefunden!
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Lösung mit Propensity Scores
Parsons LS, et. al. (2004): Performing a 1:N Case-Control Match
on Propensity Score. SUGI 29, 165-29, Seattle, Washington
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 Wahrscheinlichkeiten wie vergleichbare Fälle.
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Lösung mit Propensity Scores
Parsons LS, et. al. (2004): Performing a 1:N Case-Control Match
on Propensity Score. SUGI 29, 165-29, Seattle, Washington
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 Wahrscheinlichkeiten wie vergleichbare Fälle.
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Logistisches 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 Modell
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
PROC LOGISTIC DATA = Frauen;
MODEL F_K = Alter Zuzug/
SELECTION = NONE RISKLIMITS LACKFIT RSQUARE PARMLABEL;
OUTPUT OUT = Propensity_f PROB = prob;
RUN;
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Logistisches Modell
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
PROC LOGISTIC DATA = Frauen;
MODEL F_K = Alter Zuzug/
SELECTION = NONE RISKLIMITS LACKFIT RSQUARE PARMLABEL;
OUTPUT OUT = Propensity_f PROB = prob;
RUN;
F_K
K
K
K
F
F
01.03.2011
sex
f
f
m
m
f
Alter
20
23
38
45
20
Zuzug
2008
2007
1993
1999
2008
p
0.2453482
0.2456677
0.2238991
0.2269100
0.2453489
Andreas Deckert, Institute of Public Health Heidelberg

Logistisches Modell
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
PROC LOGISTIC DATA = Frauen;
MODEL F_K = Alter Zuzug/
SELECTION = NONE RISKLIMITS LACKFIT RSQUARE PARMLABEL;
OUTPUT OUT = Propensity_f PROB = prob;
RUN;
F_K
K
K
K
F
F
01.03.2011
sex
f
f
m
m
f
Alter
20
23
38
45
20
Zuzug
2008
2007
1993
1999
2008
p
0.2453482
0.2456677
0.2238991
0.2269100
0.2453489
Andreas Deckert, Institute of Public Health Heidelberg

Logistisches Modell
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
PROC LOGISTIC DATA = Frauen;
MODEL F_K = Alter Zuzug/
SELECTION = NONE RISKLIMITS LACKFIT RSQUARE PARMLABEL;
OUTPUT OUT = Propensity_f PROB = prob;
RUN;
F_K
K
K
K
F
F
01.03.2011
sex
f
f
m
m
f
Alter
20
23
38
45
20
Zuzug
2008
2007
1993
1999
2008
p
0.2453482
0.2456677
0.2238991
0.2269100
0.2453489
Andreas Deckert, Institute of Public Health Heidelberg

Logistisches Modell
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
PROC LOGISTIC DATA = Frauen;
MODEL F_K = Alter Zuzug/
SELECTION = NONE RISKLIMITS LACKFIT RSQUARE PARMLABEL;
OUTPUT OUT = Propensity_f PROB = prob;
RUN;
F_K
K
K
K
F
F
01.03.2011
sex
f
f
m
m
f
Alter
20
23
38
45
20
Zuzug
2008
2007
1993
1999
2008
p
0.2453482
0.2456677
0.2238991
0.2269100
0.2453489
Andreas Deckert, Institute of Public Health Heidelberg

Logistisches Modell
Anforderung: Geschlecht darf zwischen Fall und Kontrollen nicht variieren
Zwei getrennte Modelle für Frauen und Männer!
PROC LOGISTIC DATA = Frauen;
MODEL F_K = Alter Zuzug/
SELECTION = NONE RISKLIMITS LACKFIT RSQUARE PARMLABEL;
OUTPUT OUT = Propensity_f PROB = prob;
RUN;
F_K
K
K
K
F
F
sex
f
f
m
m
f
Alter
20
23
38
45
20
Zuzug
2008
2007
1993
1999
2008
p
0.2453482
0.2456677
0.2238991
0.2269100
0.2453489
Extremfall:
Danach Ausschluss der “falschen Socken” (nachträgliche Begrenzung)
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

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)
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)
300 Fälle, 900 Kontrollen, 1:2 Matching nach Alter, Zuzug, Geschlecht
 Szenario 1: gleiche Altersverteilung
Zu 110 Fällen wurde keine Kontrolle gefunden!
 Szenario 2: ungleiche Altersverteilung, Fälle 30% Frauen
Zu 220 Fällen wurde keine Kontrolle gefunden!
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg

Zusammenfassung
2K
1K
keine
2K
1K
keine
Gleiche
Altersverteil.
300 Fälle, 10.000 Kontrollen
PROC SQL*
146
23
131
186
1
113
PROC SQL
modifiziert
273
25
2
298
2
0
Propensity
Score
72
118
110
288
8
4
Ungleiche
Altersverteil.
300 Fälle, 900 Kontrollen
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
* jeweils 500 Durchläufe mit variierten Zufallszahlen
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg
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
01.03.2011
Andreas Deckert, Institute of Public Health Heidelberg
Herunterladen