Scénario de test & Cas d'usage
Präzise Berechnung von Perzentilen und Quantilen.
Entdecken Sie alle Aktionen von percentileErstellt die Tabelle `MASCHINEN_DATEN` mit einer Zielvariable `AUSFALL`, die fehlende Werte enthält, einer Vorhersage `P_AUSFALL` und einer Gewichtungsvariable `KRITIKALITAET`.
| 1 | DATA mycas.MASCHINEN_DATEN; |
| 2 | call streaminit(789); |
| 3 | DO MASCHINEN_ID = 1 to 1000; |
| 4 | P_AUSFALL = rand('UNIFORM'); |
| 5 | KRITIKALITAET = 1 + rand('INTEGER', 1, 5); /* Gewichtung von 1 bis 6 */ |
| 6 | IF rand('UNIFORM') < 0.1 THEN call missing(AUSFALL); /* 10% fehlende Zielwerte */ |
| 7 | ELSE IF P_AUSFALL > 0.8 THEN AUSFALL = 1; |
| 8 | ELSE AUSFALL = 0; |
| 9 | OUTPUT; |
| 10 | END; |
| 11 | RUN; |
| 1 | PROC CAS; |
| 2 | percentile.assess / |
| 3 | TABLE={name='MASCHINEN_DATEN'}, |
| 4 | response='AUSFALL', |
| 5 | inputs={{name='P_AUSFALL'}}, |
| 6 | event='1', |
| 7 | noMissingTarget=FALSE, /* Default */ |
| 8 | fitStatOut={name='wartung_stats_mit_missing', replace=true}; |
| 9 | RUN; |
| 10 | QUIT; |
| 1 | PROC CAS; |
| 2 | percentile.assess / |
| 3 | TABLE={name='MASCHINEN_DATEN'}, |
| 4 | response='AUSFALL', |
| 5 | inputs={{name='P_AUSFALL'}}, |
| 6 | event='1', |
| 7 | noMissingTarget=TRUE, /* Schließt Beobachtungen mit fehlendem AUSFALL aus */ |
| 8 | weight='KRITIKALITAET', /* Wendet die Gewichtung an */ |
| 9 | fitStatOut={name='wartung_stats_gewichtet', replace=true}; |
| 10 | RUN; |
| 11 | QUIT; |
Zwei Ergebnistabellen werden erstellt. `wartung_stats_mit_missing` wird auf Basis aller 1000 Beobachtungen berechnet, was zu potenziell irreführenden Statistiken führt. `wartung_stats_gewichtet` wird auf den ~900 Beobachtungen ohne fehlende Zielwerte berechnet, und die Statistiken (z.B. Gini, Lift) spiegeln die höhere Bedeutung der kritischen Maschinen wider. Der Vergleich der 'NObs'-Werte und der Statistiken in beiden Tabellen validiert die korrekte Funktionsweise von `noMissingTarget` und `weight`.