bart bartProbit

Robustheitstest: Umgang mit fehlenden Werten und gewichteten Beobachtungen

Scénario de test & Cas d'usage

Geschäftskontext

In einer klinischen Studie werden Daten von Patienten gesammelt, um die Wirksamkeit eines Medikaments vorherzusagen. Einige Biomarker-Messungen fehlen, und bestimmte Patientenkohorten sind unterrepräsentiert, was durch eine Frequenzvariable ausgeglichen werden soll. Das Ziel ist es, die Fähigkeit des Modells zu testen, mit unvollständigen und gewichteten Daten umzugehen.
Über das Set : bart

Bayesianische additive Regressionsbäume.

Entdecken Sie alle Aktionen von bart
Datenaufbereitung

Erstellung eines Datensatzes für eine klinische Studie mit fehlenden Werten in den Prädiktoren 'biomarker1' und 'biomarker2' sowie einer Frequenzvariable 'gewicht'.

Kopiert!
1DATA klinische_daten;
2 call streaminit(101);
3 DO patient_id = 1 to 500;
4 alter = 30 + floor(rand('UNIFORM')*40);
5 biomarker1 = rand('NORMAL', 100, 15);
6 biomarker2 = rand('NORMAL', 50, 5);
7 /* Fehlende Werte einführen */
8 IF rand('UNIFORM') < 0.15 THEN call missing(biomarker1);
9 IF rand('UNIFORM') < 0.10 THEN call missing(biomarker2);
10 /* Gewichtung für eine bestimmte Altersgruppe */
11 IF alter > 60 THEN gewicht = 2; ELSE gewicht = 1;
12 p = 1 / (1 + exp(-( -4 + 0.02*alter + 0.01*biomarker1 - 0.05*biomarker2)));
13 ansprechen = rand('BERNOULLI', p);
14 OUTPUT;
15 END;
16RUN;

Étapes de réalisation

1
Laden der klinischen Daten in CAS.
Kopiert!
1 
2PROC CASUTIL;
3load
4DATA=klinische_daten casout='klinische_daten_cas' replace;
5RUN;
6 
2
Ausführung von bart.bartProbit mit der Option missing='SEPARATE' und der Frequenzvariable 'gewicht'.
Kopiert!
1PROC CAS;
2 bart.bartProbit /
3 TABLE='klinische_daten_cas',
4 model={depVars={{name='ansprechen'}}, effects={{vars={'alter', 'biomarker1', 'biomarker2'}}}},
5 freq='gewicht',
6 missing='SEPARATE',
7 seed=987,
8 store={name='klinisches_modell_robust', replace=true};
9RUN;
3
Vergleichslauf mit missing='NONE', um den Ausschluss von Beobachtungen zu überprüfen.
Kopiert!
1PROC CAS;
2 bart.bartProbit /
3 TABLE='klinische_daten_cas',
4 model={depVars={{name='ansprechen'}}, effects={{vars={'alter', 'biomarker1', 'biomarker2'}}}},
5 freq='gewicht',
6 missing='NONE',
7 seed=987;
8RUN;

Erwartetes Ergebnis


Im ersten Lauf (missing='SEPARATE') wird das Modell erfolgreich trainiert, wobei alle Beobachtungen verwendet werden und fehlende Werte als separate Kategorie behandelt werden. Die Tabelle 'Anzahl der Beobachtungen' zeigt die volle gewichtete Anzahl. Im zweiten Lauf (missing='NONE') zeigt die Tabelle 'Anzahl der Beobachtungen' eine geringere Anzahl von verwendeten Beobachtungen, da Zeilen mit fehlenden Werten ausgeschlossen werden. Dies bestätigt, dass die `missing`-Option wie dokumentiert funktioniert und das Modell robust gegenüber unvollständigen Daten ist.