cdm

cdm

Beschreibung

Die `cdm`-Aktion im `cdm`-Aktionssatz wird verwendet, um Stichproben einer zusammengesetzten Verteilung zu erstellen. Dies ist ein zentraler Bestandteil der Modellierung von Gesamtschäden, bei dem die Gesamtschäden als Summe einzelner Schadensereignisse modelliert werden, deren Anzahl und Höhe zufällig sind. Die Aktion kann verschiedene Arten von Modellen für den Gesamtschaden simulieren, einschließlich des kollektiven Risikomodells und des reinen Prämienmodells, und bietet umfangreiche Optionen zur Angabe von Zähl- und Schadenshöhenverteilungen, zur Durchführung von Parameter-Perturbationsanalysen und zur Erzeugung von zusammenfassenden Statistiken und Perzentilen.

cdm.cdm <result=results> <status=rc> / <adjustedSeverity={adjParm}>, <aggLossModelType="COLLECTIVERISK" | "CUSTOM" | "PUREPREMIUM">, <countDistributions={{countDist-1} <, {countDist-2}, ...>}>, <countStore={castable}>, <countVariable="variable-name">, <display={displayTables}>, <idVariable="variable-name">, <ignoreParmCovariance=TRUE | FALSE>, <maxCountDraw=integer>, <nPerturbedSamples=integer>, <nReplicates=64-bit-integer>, <outDraw={casouttable}>, <output={outsampleParm}>, <outputTables={outputTables}>, <outsum={outsumParm}>, <percentileMethod=integer>, <perturbMode="AUTO" | "DIST">, <plotTable={plotTable}>, <seed=integer>, <severityDefinitions={castable}>, <severityDistributions={"string-1" <, "string-2", ...>}>, <severityEst={castable}>, <severityStore={castable}>, <severityTruncationLeft=double>, <severityTruncationRight=double>, <simulatedSymbols={{simSymbol-1} <, {simSymbol-2}, ...>}>, <table>, <truncateZeros=TRUE | FALSE>, <varianceDivisor="DF" | "N">;
Einstellungen
ParameterBeschreibung
adjustedSeverity Gibt die angepassten Schadensymbole und ein SAS-Programm zu deren Berechnung an. Für jedes angepasste Schadensymbol wird eine Gesamtschadenverteilung geschätzt.
aggLossModelType Gibt den Typ des Modells an, das für den Gesamtschaden verwendet werden soll.
countDistributions Gibt Zählverteilungen und Parameterwerte an.
countStore Gibt eine Item-Store-Tabelle an, aus der Schätzungen des Zählmodells gelesen werden sollen. Dies muss eine Item-Store-Tabelle sein, die von der Aktion `countregFitModel` mit dem Parameter `store` erstellt wurde.
countVariable Gibt die Zählvariable an.
display Gibt eine Liste von Ergebnistabellen an, die zur Anzeige an den Client gesendet werden sollen.
idVariable Gibt den Namen der Replikations-ID-Variable an. Wenn Sie diese Variable angeben, muss die Eingabetabelle nach {BY-Variablen, ID-Variable} partitioniert sein.
ignoreParmCovariance Wenn auf True gesetzt, werden die Kovarianzschätzungen der Parameter ignoriert und nur deren Standardfehler zur Störung verwendet.
maxCountDraw Gibt eine Obergrenze für die Anzahl der Schadensereignisse (Anzahl) an, die zur Simulation eines einzelnen Gesamtschaden-Stichprobenpunkts verwendet wird.
nPerturbedSamples Gibt die Anzahl der zu erzeugenden gestörten Stichproben an, um die Parameterstörungsanalyse durchzuführen.
nReplicates Gibt eine Zahl an, die die Größe der Stichprobe der zusammengesetzten Verteilung steuert, die die Aktion simuliert. Wenn Sie den Parameter `countVariable` angeben, wird diese Zahl mit der Anzahl der Replikationen in der Eingabetabelle multipliziert, um die Gesamtstichprobengröße zu bestimmen.
outDraw Gibt die Details der Ausgabetabelle an, in die die Ziehungen der Schadenshöhe geschrieben werden sollen.
output Gibt die Details der Ausgabetabelle an, in die Stichproben geschrieben werden sollen.
outputTables Listet die Namen der Ergebnistabellen auf, die als CAS-Tabellen auf dem Server gespeichert werden sollen.
outsum Gibt die Details der Ausgabetabelle an, in die zusammenfassende Statistiken geschrieben werden sollen.
percentileMethod Gibt die Methode zur Berechnung der Perzentile der zusammengesetzten Verteilung an. Der Wert kann zwischen 0 und 5 liegen. Die Standardmethode ist 5. Ein Wert von 0 bedeutet, dass keine Perzentile berechnet werden.
perturbMode Gibt an, wie die gestörten Stichproben organisiert werden sollen, wenn Simulationen mehr als einen Worker-Knoten verwenden. Dieser Parameter ist nur relevant, wenn Zählungen intern generiert werden.
plotTable Gibt Informationen an, die die Erstellung und den Inhalt der PlotData-Ergebnistabelle steuern. Sie können diese Tabelle zur Vorbereitung von Diagrammen verwenden.
seed Gibt den Startwert für den Zufallszahlengenerator an. Bei dem Standardwert 0 wird intern ein zufälliger Startwert ausgewählt.
severityDefinitions Gibt den Namen der CAS-Tabelle an, die die Definitionen der Schadenshöhenverteilung enthält.
severityDistributions Gibt die Liste der zu analysierenden Schadenshöhenverteilungsnamen an.
severityEst Gibt eine Tabelle an, aus der Schätzungen des Schadenshöhenmodells gelesen werden sollen. Dieser Parameter wird ignoriert, wenn Sie den Item-Store für Schätzungen angeben.
severityStore Gibt eine Item-Store-Tabelle an, aus der Schätzungen des Schadenshöhenmodells gelesen werden sollen. Dies muss eine Item-Store-Tabelle sein, die von der Aktion `severity` mit dem Parameter `store` erstellt wurde.
severityTruncationLeft Gibt die linke Kürzungsschwelle an, die auf jeden Schadenswert angewendet wird.
severityTruncationRight Gibt die rechte Kürzungsgrenze an, die auf jeden Schadenswert angewendet wird.
simulatedSymbols Gibt die simulierten Symbole und ihre Wahrscheinlichkeitsverteilungen an.
table Gibt die Eingabedatentabelle an.
truncateZeros Wenn auf True gesetzt, werden nullwertige Gesamtschäden aus der Gesamtstichprobe gekürzt (entfernt). Standardmäßig werden nullwertige Gesamtschäden, die bei einer Zählung von 0 entstehen, in der Stichprobe belassen.
varianceDivisor Gibt den Divisor an, der bei der Berechnung von Varianz, Standardabweichung, Kurtosis und Schiefe der Stichprobe der zusammengesetzten Verteilung verwendet wird.
Erforderliche Daten für die Simulation erstellen

Dieser Code erstellt zwei Tabellen: `mycas.sevdeffits` für die Definitionen der Schadenshöhenverteilung und `mycas.countest` für die Schätzungen des Zählmodells. Diese Tabellen sind für die Ausführung der `cdm`-Aktion erforderlich.

Kopiert!
1PROC CAS;
2DATA mycas.sevdeffits;
3 LENGTH model $20;
4 INFILE DATALINES truncover;
5 INPUT model$ @@;
6 DO while(model ne '');
7 INPUT scale shape @@;
8 OUTPUT;
9 INPUT model$ @@;
10 END;
11 DATALINES;
12burr 1000 2
13;
14RUN;
15DATA mycas.countest;
16 LENGTH _distname_ $20 _var_ $32;
17 INFILE DATALINES truncover;
18 INPUT _distname_$ _var_$ estimate stderr;
19 DATALINES;
20poisson _intercept_ 1.386294 0.05
21;
22RUN;
23QUIT;

Beispiele

Dieses Beispiel zeigt, wie eine Stichprobe von 100.000 Pfaden einer zusammengesetzten Verteilung simuliert wird, die eine Poisson-Verteilung für die Anzahl und eine Gamma-Verteilung für die Schadenshöhe verwendet. Es ist ein grundlegendes Beispiel für das kollektive Risikomodell.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 cdm.cdm /
3 nreplicates=100000
4 seed=1234
5 countStore={name='countest'}
6 severityEst={name='sevdeffits'}
7 severityDistributions={'Burr'}
8 OUTPUT={outSample={name='cdmsample', replace=true},
9 sampleVariable='AggLoss_Burr'}
10 outsum={outSummary={name='cdmsummary', replace=true},
11 percentiles={{percentile=97.5}, {percentile=99.5}}};
12RUN;
13QUIT;
Ergebnis :
Die Aktion generiert eine Ausgabetabelle `mycas.cdmsample`, die die simulierte Stichprobe des Gesamtschadens enthält, sowie eine Zusammenfassungstabelle `mycas.cdmsummary` mit Statistiken wie Mittelwert, Standardabweichung und den angeforderten Perzentilen (97.5 und 99.5).

Dieses Beispiel erweitert die grundlegende Simulation, indem es eine Parameter-Perturbationsanalyse durchführt. Es werden 50 gestörte Stichproben generiert, um die Unsicherheit in den Eingabeparametern des Zähl- und Schadenshöhenmodells zu bewerten. Dies ist nützlich, um die Stabilität der Risikokennzahlen zu analysieren.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 cdm.cdm /
3 nreplicates=100000
4 seed=1234
5 countStore={name='countest'}
6 severityEst={name='sevdeffits'}
7 severityDistributions={'Burr'}
8 nPerturbedSamples=50
9 OUTPUT={outSample={name='cdmsample_perturbed', replace=true},
10 sampleVariable='AggLoss_Burr_p',
11 perturbOut=true}
12 outsum={outSummary={name='cdmsummary_perturbed', replace=true},
13 percentiles={{percentile=97.5}, {percentile=99.5}}};
14RUN;
15QUIT;
Ergebnis :
Zusätzlich zu den vorherigen Ergebnissen enthält die Ausgabetabelle `mycas.cdmsample_perturbed` nun auch die 50 gestörten Stichproben, identifiziert durch die Variable `_sample_`. Die Zusammenfassungstabelle `mycas.cdmsummary_perturbed` wird ebenfalls aktualisiert, um Statistiken über die gestörten Stichproben zu enthalten, was eine robustere Analyse der Risikokennzahlen ermöglicht.

FAQ

Was ist der Zweck der `cdm`-Aktion in SAS Viya?
Welche Haupttypen von Gesamtschadenmodellen unterstützt die `cdm`-Aktion?
Wie kann ich die Schadenhöhenverteilung für die Simulation definieren?
Was ist eine Parameter-Perturbationsanalyse und wie wird sie in der `cdm`-Aktion aktiviert?
Wie kann ich die Ergebnisse der Simulation speichern?
Was ist die `cdm`-Aktion?
Welche Modelltypen für den Gesamtschaden unterstützt die `cdm`-Aktion?
Wie kann ich die Verteilungen für die Schadenshöhe und deren Parameter angeben?
Was ist der Zweck des Parameters `nPerturbedSamples`?

Zugehörige Szenarien

Anwendungsfall
Standard-Simulation des Gesamtschadens (Kfz-Versicherung)

Eine Versicherungsgesellschaft möchte die Gesamtschäden für ein Portfolio von Kfz-Policen simulieren, um die notwendigen Kapitalreserven zu bestimmen (Value at Risk). Es wird ei...

Anwendungsfall
Hochleistungs-Stresstest mit Parameter-Perturbation (Bankwesen)

Eine Bank muss ihr operatives Risikokapital validieren. Dazu wird eine Simulation mit hohem Volumen (1 Million Replikationen) durchgeführt. Zusätzlich wird eine Parameter-Pertur...

Anwendungsfall
Garantieanalyse mit Kürzung und Null-Werten (Fertigung)

Ein Hersteller analysiert Garantiekosten. Es gibt einen Selbstbehalt (Kürzung von links), sodass kleine Schäden ignoriert werden. Zudem sollen Fälle, in denen der simulierte Ges...