Die Aktion `assess` im `percentile`-Aktionssatz dient zur Bewertung und zum Vergleich von Vorhersagemodellen. Sie ist besonders nützlich für die Evaluierung von Klassifikations- und Regressionsmodellen, indem sie wichtige Leistungsstatistiken wie ROC-Kurven (Receiver Operating Characteristic), Lift-Charts und Anpassungsstatistiken (z. B. Gini-Koeffizient, KS-Statistik, mittlere quadratische Abweichung) berechnet. Dies ermöglicht es Datenanalysten, die Genauigkeit und Vorhersagekraft ihrer Modelle objektiv zu messen und verschiedene Modelle miteinander zu vergleichen, um das leistungsstärkste auszuwählen.
| Parameter | Beschreibung |
|---|---|
| attributes | Gibt temporäre Attribute an, wie z. B. ein Format, das auf Eingabevariablen angewendet werden soll. |
| binNum | Anzahl der Bins in einem Drei-Durchlauf-Verfahren. |
| casOut | Gibt die Ausgabetabelle für Lift-Statistiken an. |
| cutStep | Gibt die Schrittweite für die ROC-Berechnungen an. Standard ist 0.01. |
| epsilon | Gibt die Toleranz an, die zur Bestimmung der Konvergenz des iterativen Algorithmus für die Perzentilberechnung verwendet wird. Standard ist 1E-05. |
| event | Gibt den formatierten Wert der Antwortvariablen an, der das Ereignis darstellt. Erforderlich für Klassifikationsmodelle. |
| fitStatOut | Gibt die Ausgabetabelle für die Anpassungsstatistiken an. |
| freq | Gibt die Variable an, die die Häufigkeit einer Beobachtung enthält. |
| groupByLimit | Gibt die maximale Anzahl von Stufen in einer Gruppierungsmenge an, um die Erstellung sehr großer Ergebnismengen zu vermeiden. |
| includeCutoffOne | Wenn auf TRUE gesetzt, wird eine Zeile für cutoff=1 in die ROC-Statistiken aufgenommen, um das Zeichnen der ROC-Kurve zu vereinfachen. Standard ist FALSE. |
| includeFitStat | Wenn auf FALSE gesetzt, werden die Anpassungsstatistiken nicht generiert. Standard ist TRUE. |
| includeLift | Wenn auf FALSE gesetzt, werden die Lift-Berechnungen nicht generiert. Standard ist TRUE. |
| includeRoc | Wenn auf FALSE gesetzt, werden die ROC-Berechnungen nicht generiert. Standard ist TRUE. |
| includeZeroDepth | Wenn auf TRUE gesetzt, wird eine Zeile für depth=0 in die Lift-Statistiken aufgenommen, um das Zeichnen der Lift-Kurve zu vereinfachen. Standard ist FALSE. |
| inputs | Gibt die Eingabevariablen an, die in der Analyse verwendet werden sollen. Dies sind typischerweise die vorhergesagten Wahrscheinlichkeiten oder Werte des Modells. |
| maxIters | Gibt die maximale Anzahl von Iterationen für den iterativen Algorithmus an. |
| method | Gibt den Algorithmus für die Perzentilanalyse an. 'ITERATIVE' ist der Standard, 'EXACT' ist ressourcenintensiver. |
| nBins | Gibt die Anzahl der Bins an, die für die Lift-Berechnungen verwendet werden sollen. Standard ist 20. |
| noMissingTarget | Wenn auf TRUE gesetzt, werden Beobachtungen ausgeschlossen, bei denen die Zielvariable einen fehlenden Wert hat. Standard ist FALSE. |
| partition | Wenn auf TRUE gesetzt und die Tabelle partitioniert ist, werden die Ergebnisse für jede Partition effizient berechnet. |
| partKey | Gibt einen Partitionsschlüssel an, um die Ergebnisse für eine einzelne Partition zu berechnen, wenn die Tabelle partitioniert ist. |
| pEvent | Gibt die Ereignisse an, die jeder Wahrscheinlichkeitsvariable im `pVar`-Parameter entsprechen. |
| pResponse | Gibt die vorhergesagte Antwortvariable für die Modellbewertung an. |
| pVar | Gibt die Ereigniswahrscheinlichkeitsvariablen an, die bewertet werden sollen. |
| response | Gibt die Antwortvariable (tatsächlicher Wert) für die Modellbewertung an. Dieser Parameter ist erforderlich. |
| responseFmt | Gibt ein temporäres Format für die Antwortvariable an, um das im `event`-Parameter angegebene Ereignis zu erzeugen. |
| rocOut | Gibt die Ausgabetabelle für die ROC-Berechnungen an. |
| table | Gibt die Eingabetabelle an, die die Antwortvariable und die vorhergesagten Werte enthält. Dieser Parameter ist erforderlich. |
| useRawPResponse | Wenn auf TRUE gesetzt, werden Rohwerte der vorhergesagten Antwortvariablen verwendet, um die Beobachtungen zu filtern. Standard ist FALSE. |
| userCutoff | Vom Benutzer angegebener Schwellenwert für die Konfusionsmatrix. |
| weight | Gibt die Variable an, die die Gewichtung einer Beobachtung enthält. |
Dieser Code erstellt eine Tabelle `hmeq_assessed` in der `mycas` CAS-Bibliothek. Er verwendet die `sampsio.hmeq`-Tabelle als Basis und fügt eine simulierte Vorhersagewahrscheinlichkeit `P_BAD1` für das Ereignis hinzu, dass ein Kredit schlecht ist (`BAD` = 1). Diese Tabelle wird in den folgenden Beispielen zur Bewertung der Modellleistung verwendet.
| 1 | DATA mycas.hmeq_assessed; |
| 2 | SET sampsio.hmeq; |
| 3 | /* Simulieren einer vorhergesagten Wahrscheinlichkeit */ |
| 4 | P_BAD1 = rand('UNIFORM'); |
| 5 | RUN; |
Dies ist ein grundlegendes Beispiel zur Bewertung eines Klassifikationsmodells. Es verwendet die `assess`-Aktion, um Lift- und ROC-Informationen für die Antwortvariable `BAD` und die vorhergesagte Wahrscheinlichkeit `P_BAD1` zu berechnen. Das Ereignis von Interesse ist, wenn `BAD` den Wert '1' hat. Die Ergebnisse werden in den Tabellen `assess_results` und `roc_results` gespeichert.
| 1 | PROC CAS; |
| 2 | percentile.assess / |
| 3 | TABLE={name='hmeq_assessed'}, |
| 4 | response='BAD', |
| 5 | inputs={{name='P_BAD1'}}, |
| 6 | event='1', |
| 7 | casOut={name='assess_results', replace=true}, |
| 8 | rocOut={name='roc_results', replace=true}; |
| 9 | RUN; |
Dieses Beispiel zeigt, wie ein Regressionsmodell bewertet wird, bei dem die Zielvariable (`LOAN`) intervallbasiert ist. Es wird eine simulierte Vorhersage `P_LOAN` erstellt. Da der `event`-Parameter weggelassen wird, führt die Aktion eine Regressionsbewertung durch und gibt Anpassungsstatistiken wie die mittlere quadratische Abweichung (ASE) aus.
| 1 | /* Erstellen von Regressionsdaten mit einer Vorhersage */ |
| 2 | DATA mycas.hmeq_regression; |
| 3 | SET sampsio.hmeq; |
| 4 | P_LOAN = LOAN * (0.8 + rand('UNIFORM') * 0.4); |
| 5 | IF missing(loan) or missing(P_LOAN) THEN delete; |
| 6 | RUN; |
| 7 | |
| 8 | /* Bewertung des Regressionsmodells */ |
| 9 | PROC CAS; |
| 10 | percentile.assess / |
| 11 | TABLE={name='hmeq_regression'}, |
| 12 | response='LOAN', |
| 13 | inputs={{name='P_LOAN'}}, |
| 14 | fitStatOut={name='regression_fit_stats', replace=true}; |
| 15 | RUN; |
Dieses Beispiel vergleicht die Leistung von zwei verschiedenen Vorhersagemodellen (`P_BAD1` und `P_BAD2`). Durch die Angabe beider Variablen im `inputs`-Parameter berechnet die Aktion die Bewertungsstatistiken für jedes Modell separat, was einen direkten Vergleich ihrer Vorhersagekraft ermöglicht. Die Anpassungsstatistiken werden zur einfachen Analyse in der Tabelle `fit_stats_compare` gespeichert.
| 1 | /* Erstellen von Daten mit zwei Modellvorhersagen */ |
| 2 | DATA mycas.hmeq_compare; |
| 3 | SET sampsio.hmeq; |
| 4 | P_BAD1 = rand('UNIFORM'); |
| 5 | P_BAD2 = 0.1 + (rand('UNIFORM') * 0.85); /* Zweites, etwas anderes Modell */ |
| 6 | RUN; |
| 7 | |
| 8 | /* Vergleichsbewertung durchführen */ |
| 9 | PROC CAS; |
| 10 | percentile.assess / |
| 11 | TABLE={name='hmeq_compare'}, |
| 12 | response='BAD', |
| 13 | inputs={{name='P_BAD1'}, {name='P_BAD2'}}, |
| 14 | event='1', |
| 15 | casOut={name='assess_compare_lift', replace=true}, |
| 16 | rocOut={name='assess_compare_roc', replace=true}, |
| 17 | fitStatOut={name='fit_stats_compare', replace=true}; |
| 18 | RUN; |
Dieses Beispiel zeigt eine Bewertung, bei der Beobachtungen sowohl gewichtet (`weight`) als auch mit einer Frequenz (`freq`) versehen sind. Dies ist nützlich, wenn einige Beobachtungen wichtiger sind als andere oder wenn die Daten in einem zusammengefassten Format vorliegen. Die `VALUE`-Variable wird als Gewichtung und `YOJ` als Frequenz verwendet.
| 1 | PROC CAS; |
| 2 | percentile.assess / |
| 3 | TABLE={name='hmeq_assessed', where='VALUE > 0 and YOJ > 0'}, |
| 4 | response='BAD', |
| 5 | inputs={{name='P_BAD1'}}, |
| 6 | event='1', |
| 7 | weight='VALUE', |
| 8 | freq='YOJ', |
| 9 | casOut={name='assess_weighted_results', replace=true}; |
| 10 | RUN; |
Eine Marketingabteilung möchte ein neues Vorhersagemodell bewerten, das die Wahrscheinlichkeit vorhersagt, mit der Kunden auf eine Werbekampagne reagieren. Ziel ist es, die Leis...
Eine Bank muss zwei konkurrierende Modelle zur Vorhersage von Kreditausfällen (ein etabliertes 'Champion'-Modell und ein neues 'Challenger'-Modell) vergleichen. Die Bewertung mu...
Ein Industrieunternehmen bewertet ein Modell zur Vorhersage von Maschinenausfällen. Die historischen Daten sind unvollständig; bei einigen Beobachtungen ist der Ausfallstatus (`...