Quantile selbst festlegen

Ähnliche Dokumente
Spalten aufsummieren?!

Ansprechen einer Anzahl von Variablen über einen Schleifendurchlauf

Mehrere Datensätze zu einem Datensatz zusammenführen

Wie kann ich die Ausgabe als Excel speichern?

Jede Kombination von 7 Spalten erzeugen

QMF Tabelle Q.OBJECT_DATA in DB2

Hallo Jessi, wenn ich das. DATA aufg3_b; vari='<.0001'; IF &wil_two_test. le vari THEN pwert=0.0001;

Import von Text-Dateien. Einzelne Wörter einlesen.

Zeilen in SAS-Datensatz einfügen

Alter berechnen mit Base SAS

Umbenennung von Spaltennamen über Schleife(n)

Änderung der Ordnung der Variablen in den SAS Datensatz

SUBSTRING - wo liegt mein Fehler?

Achsenbeschriftung um 90 drehen

Erzeugung von Zufallszahlen mit RANUNI()

Merge mit nicht eindeutigen by-variablen

Zeichen abscheiden???

Dateien trennen und zusammenfügen

zusammenfassen von Text variablenin einer Variable bei unterschiedlicher Variablenanzahl

Berechnung der Arbeitstage

Anhang zur Frage Data statement und Proc Statement

Daten aus SPSS-18 Proc Format...

IMPORT / EXPORT Access

Berechnung der Dauer eines SAS Makros?

Ermittlung der übereinstimmenden Variablen (-Namen) zweier Datasets

Kreuztabelle als Data-Set so wie aus proc tabulate

Einlesen von Textdateien mit sehr langen Zeilen

Dynamisch Makros aufrufen

Hilfe bei Programmierung mit SAS

Auslesen von SAS Systeminformationen über die aktuelle Log- Ausgabe

Allman-Einrückungsstil versus 1TBS bei SAS-Base-Programmen

Excel sheet input / Zufallsgenerator/ Excel sheet output

ODS RTF Titel in Spalten linksbündig darstellen

Vollständigen Code. News Artikel Foren Projekte Links Über Redscope. Join List Random Previous Next

Fehlermeldung, wenn Anzahl der %do der %end entspricht - was läuft falsch?

Wie überprüfen, ob eine Datei existiert?

SPDS-Problem - proc summary auf View mit by-variable - Sortierung wird verlangt

rechtsbündige Leerzeichen mit einlesen im Datastep

Dateneingabe und Transformation Übersicht

Formatierung beim Einlesen

Der SAS DataStep und die Prozedur SQL Cellent Finance Solutions GmbH Seite: 1

NICHT TRIVIAL: MAKROVARIABLEN - GLOBAL ODER LOKAL

PROC GCHART HBAR Zeilenumbruch in Achsenbeschriftung

News Artikel Foren Projekte Links Über Redscope

1 Univariate Statistiken

SAS BASE LOG Fragen. Antwort, Teil 1

Zugriff aus Oracle via Proc SQL: Performanceprobleme

Kalenderfrage zu Ostern

SAS-Kurs: SS 09. Helmut Küchenhoff, Cornelia Oberhauser, Monia Mahling, Vroni Fensterer, Sara Wadle. 8. Juni 2009

Data2Office: Eine neue Methode der SAS-Datenpräsentation in MS-Excel

Macro erzeugt Dateifilter

EG 4.2: Pfade zu verlinkten SAS-Files als relative Pfade speichern!?

viele ähnliche Datensätze automatisch einlesen

Möglichkeiten der SAS Software für die Analyse großer Datentabellen

Fragen zu Table of Content erstellung

Exportieren in excel sheets

spezielle Summen bilden und proc corr

Zeit-Macro-Variablen, passend zu einem Tag

Datensatz aus Datensatz erzeugen

Robuste und effiziente Konfidenzbereiche für nichtzentrale Perzentile

Failed to transcode data from U_UTF8_CE to U_LATIN9_CE?!

SAS-Online Dokumentation: zu finden über Internetsuche nach sas online documentation

SAS Daten per Remote SUBMITE vom Großrechner selektieren,

Proc Transpose oder Do-it-yourself

Excel Formularen mit SAS Daten

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Kapitel. Platzhalter. Was sind Platzhalter?

SAS Implementierungs- Erfahrungen beim Aufbau eines zentralen Kunden Data Marts für Data Mining

Makro zum Auffinden mehrfach vergebener Schlüsselnummern

Übung Statistik I Statistik mit Stata SS Grafiken und Wiederholung

Übersicht. Grafiken mit SAS Teil 1: GCHART und GPLOT. Elemente einer Grafik. Hauptmotiv. Prozedur GCHART. Anweisungen von GCHART

Copyr i g ht 2014, SAS Ins titut e Inc. All rights res er ve d. What s New im SAS Enterprise Guide 7.

Performance von SAS Anwendungen optimieren!?

Streuungsmaße. Die angegebenen Maßzahlen sind empirisch, d.h. sie sind Schätzungen für die wahre Varianz (empirische) Varianz (Streuung) s 2 = 1 n

Programm GArtenlisten. Computerhinweise

THEMA: ZUGRIFF AUF RELATIONALE DATENBANKEN GEWUSST WIE! BRUNO MÜLLER

Excel-Datei zur Verwaltung deines ordentlichen Urlaubes. Urlaubsplanung. Seite 1/9

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbank und Tabelle mit SQL erstellen

Perl Regular Expressions in Base SAS

3.4 Bivariate Datenanalyse in R

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Dateneingabe über ein HTML-Formular in eine Datenbank:

Übersicht der wichtigsten MySQL-Befehle

Road Account Maut Control - Version 1.60

Häufigkeitsdiagramme PROC UNIVARIATE PROC GCHART

Dieser Artikel stammt aus dem Magazin von C++.de (

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen

1.4 Der Binomialtest. Die Hypothesen: H 0 : p p 0 gegen. gegen H 1 : p p 0. gegen H 1 : p > p 0

3. Bestehende Dateien

1. Aufgabenstellung. 2. Methoden der Auswertung. 2.1 Die Theorie: κ - von Karman Konstante (0,4)

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

1.5 Berechnung von Rangzahlen

SAS-Treff am URZ: Formate Formate automatisieren. 2. Picture-Formate. 3. Boxplots und Formate. 4. Beschriften von Balkendiagrammen

Allgemeiner Import-Ablauf

Programmiertechnik 1 FOR-SCHLEIFEN

Transkript:

News Artikel Foren Projekte Links Über Redscope Join List Random Previous Next Startseite Foren Allgemeine Fragen zu SAS Quantile selbst festlegen 2 July, 2009-12:01 risk_operator Hallo Zusammen, wie kann man bei SAS Quantile einer Variable selber festlegen? Z.b. möchte ich das 30% Quantil eines simulierten Verlustportfolios bestimmen. Mit proc univariate kann ich die Quantile ja nicht beeinflussen, wenn ich mich nicht täusche?!? Wäre für einen Hinweis sehr dankbar. Mit freundlichen Grüßen Foren: Allgemeine Fragen zu SAS...bin grad auf die Option 2 July, 2009-12:27 risk_operator...bin grad auf die Option percent der histogram Anweisung gestoßen, jedoch zeigt mir der Log einen Syntaxfehler bei percent bzw. percents an... proc univariate 2 July, 2009-12:46 sgeißler proc univariate data=sashelp.class; var age; output out=percentile PCTLPTS=30 PCTLPRE=PCTL; Wie stellst du dir vor, dass wir Syntaxfehler beurteilen sollen, wenn du nicht schreibst, was du genau abgeschickt hast? Simon Danke Simon für die Antwort 2 July, 2009-15:40 risk_operator Danke Simon für die Antwort und sorry für den nicht hinzugefügten Syntaxfehler! Der lautet wie folgt: 44 Proc univariate;

45 Histogram / Percents=30; -------- 22 76 FEHLER 22-322: Syntaxfehler, erwartet wird eines der folgenden: ;, ANNOKEY, ANNOTATE, BARLABEL, BARWIDTH, BETA, CAXIS, CBARLINE, CFILL, CFRAME, CFRAMESIDE, CFRAMETOP, CGRID, CHREF, CLIPREF, CONTENTS, CPROP, CTEXT, CV, CVREF, DESCRIPTION, ENDPOINTS, EXPONENTIAL, FONT, FRONTREF, GAMMA, GRID, HANGING, HAXIS, HEIGHT, HMINOR, HOFFSET, HREF, HREFLABELS, HREFLABPOS, INFONT, INHEIGHT, INTERBAR, INTERTILE, KERNEL, LGRID, LHREF, LOGNORMAL, LVREF, MAXNBIN, MAXSIGMAS, MIDPERCENTS, MIDPOINTS, NAME, NCOL, NCOLS, NENDPOINTS, NMIDPOINTS, NOBARS, NOCHART, NOFRAME, NOHLABEL, NOPLOT, NORMAL, NOTABCONTENTS, NOVLABEL, NOVTICK, NROW, NROWS, OUTHISTOGRAM, OUTKERNEL, OVERLAY, PFILL, RTINCLUDE, SB, SU, TILELEGLABEL, TURNVLABELS, VAXIS, VAXISLABEL, VMINOR, VOFFSET, VREF, VREFLABELS, VREFLABPOS, VSCALE, WAXIS, WBARLINE, WEIBULL, WGRID. FEHLER 76-322: Syntaxfehler, Anweisung wird ignoriert. 46 Run; Habe Deinen Hinweis auf folgende Wiese versucht umzusetzen: Proc univariate; Histogram; var pdr; Output out=percentile PCTLPTS=30 PCTLPRE=PCTL; Run; Jedoch zeigt mit SAS als Ergebnis das Gleiche an, wenn ich var pdr; Output out=percentile PCTLPTS=30 PCTLPRE=PCTL; weglasse. Im Prinzip erhalte ich alos keine neuen Ergebnisse. Woran kann das liegen? Vielen Danke für die Hilfe!!!! Mit besten Grüßen Gökhan Das "Percents=30" ist eine 2 July, 2009-15:57 sgeißler Das "Percents=30" ist eine Option einer Option und gehört zu einer Verteilung, die an das Histogram angepasst werden soll. Z.B.

proc univariate data=sashelp.class; var age; histogram age /normal(percents=30); Output out=percentile PCTLPTS=30 PCTLPRE=PCTL; Das Ergebnis des Output...-Krams, landet in der Tabelle die mit der "OUT="-Option angegeben wird. Hier also "percentile". Simon Alles klar, vielen Dank. Ich Alles klar, vielen Dank. 3 July, 2009-11:13 risk_operator Ich bin leider noch sehr unerfahren mit SAS, so dass ich bereits an meinem nächsten Problem angekommen bin. Mein bisheriger Code sieht folgendermaßen aus: Data PDR_Default; J = 50000; I = 10000; rho = 0.3; PD = 0.2; RR = 0.475; r = 0.04; c = 0.06; PV_LL = ((1-RR)+c)*exp(-r); PV_PP = (1+c)*exp(-r); Do j = 1 to J; Y = Rannor(0); CPD = Probnorm((Probit(PD)-sqrt(rho)*Y)/(sqrt(1-rho))); * Default = Ranbin(0,I,CPD); PDR = (Default*PV_LL)/(I*PV_PP); Output; End; Drop J I rho PD RR r c PV_LL PV_PP; Proc univariate; Histogram; var pdr; Output out=pdr_percentile PCTLPTS=0,70,80,90,95,98,99 PCTLPRE=PCT Run; Das ganze beschert mir eine Verlustverteilung. Nun will ich diese in w=7 Tranchen einteilen und die jeweiligen Tranchenverlustverteilungen ermitteln. Dafür muss ich folgende Formel implementieren: TLoss_w=(1/(O_Tw-U_Tw))*min[O_Tw-U_Tw,max[0,PDR_j-U_Tw]] O_Tw entspricht dabei der Tranchenobergrenze der Tranche w und U_Tw der Untergrenze. PDR_j ist die Portfolioverlustrate der j-ten Simulation.

Die Ober- und Untergrenzen der Tranchen entsprechen dabei bestimmten Perzentilen der Verlustverteiluing PDR. D.h. z.b. für Tranche 2 ist O_T2=Perzentil99 von PDR und U_T2=Perzentil98 von PDR. (70,80,90,95,98,99 sind alle notwenidgen Perzentile für die jeweiligen Tranchen.) O_T2 ist gleichzeitig die Untergrenze der Tanche 1, also U_T1. Die Obergrenze der Tanche 1 ist O_T1=1. Die Untergenze der Tanche 7 ist U_T7=0. TLoss_w sollte dann eine neue Variable mit 50000 Beobachtungen werden, entsprechend der Anzahl der Beobachtungen von PDR_j bzw. der Anzahl der Simulationen. Wie kann ich das Ganze umsetzen? Mit Excel habe ich es hibekommen, aber ich würde gerne wissen, wie es mit SAS funktioniert. Ich bin für jede Hilfe dankbar!!! Mit besten Grüßen Doppelpost Doppelpost 3 July, 2009-13:05 sgeißler Habe es mal grob überflogen. 3 July, 2009-13:05 sgeißler Habe es mal grob überflogen. In Worten wäre die Lösung: Die Tranchen-Grenzen bestimmen (liegen ja schon in PDR_percentile) und in Makrovariablen speichern. Dann die große Tabelle nochmal einlesen und die PDR-Werte klassifizieren (etwa IF U_Tw1 gt PDR lt O_Tw1 then W=1). Danach lässt sich die Formel ja fast 1 zu 1 übertragen. Du kannst das Ganze auch manuell schreiben, dafür bräuchtest du keine Makro- Kenntnisse. Simon Danke für die raschen 3 July, 2009-14:55 risk_operator Danke für die raschen Antworten, aber leider kann ich das mit meinen SAS Kentnissen nicht umsetzen. Kannst Du bitte konkretere Beispiele dazu schreiben. Mit freundlichen Grüßen Bitteschön: /* Tabelle 3 July, 2009-16:18 sgeißler

Bitteschön: /* Tabelle transponieren */ proc transpose data=pdr_percentile out=perc_trans; /* Percentile in den Makrovariablen PCTL1-PCTL7 speichern proc sql; select col1 into :PCTL1-:PCTL7 from perc_trans ; quit; data pdr_final; set pdr_default; /* Eine Array mit den Grenzen anlegen */ array pctls{8} _TEMPORARY_ (&pctl1. &pctl2. &pctl3. &p /* Die PDR-Werte klassifizieren */ do i=1 to 7; if pctls{i} <= PDR < pctls{i+1} then w=i; end; /* TLoss berechnen */ TLoss=(1/(pctls{w+1}-pctls{w}))*min(pctls{w+1}-pctls{w Danke Simon, mal wieder :-) Danke Simon, mal wieder :-)!!!! 3 July, 2009-17:15 risk_operator Sorry, wenn ich weiter damit nerve, aber ich habe noch Fragen. Den Schritt /* Die PDR-Werte klassifizieren */ do i=1 to 7; if pctls{i} <= PDR < pctls{i+1} then w=i; end; verstehe ich nicht. Die anderen Anweisungen so halb wegs. Mit TLoss_w=(1/(O_Tw-U_Tw))*min[O_Tw-U_Tw,max[0,PDR_j-U_Tw]] wird der Verlust des Portfolios auf die jeweiligen Größen der Tranchen normiert wird. Ich kann nicht nachvollziehen warum die PDR-WErte klassifiziert werden? Darf ich Dir meine Excel Tabelle schicken? Dann wirds vielleicht klarer?? A propos Excel. Da dieses nette Programm auf 65 Tausend und paar zerquetschte Zeilen beschränkt ist, komme ich nicht drum rum das Ganze mit SAS umzusetzen, weil meine eigentliche Simulation 500000 Auspägungen enthält. Das macht mir echt Sorgen, weil ich nicht bei SAS durchsteige :-(.

Wäre Dir sehr dankbar, wenn Du mir weiterhelfen könntest!!!! Mit freundlichen Grüßen Ich habe das ganze nochmal 3 July, 2009-19:10 risk_operator Ich habe das ganze nochmal per Hand in einem Data-Step eingegeben. Hier der Code: Libname Cdo "C:\Users\OEM\Desktop\SAS_CDO"; Data Cdo.PDR_Zerobond_PV_T1; J = 50000; I = 10000; rho = 0.3; PD = 0.2; RR = 0.475; r = 0.04; c = 0.06; PV_LL = ((1-RR)+c)*exp(-r); PV_PP = (1+c)*exp(-r); Do j = 1 to J; Y = Rannor(0); CPD = Probnorm((Probit(PD)-sqrt(rho)*Y)/(sqrt(1- Default = Ranbin(0,I,CPD); PDR = (Default*PV_LL)/(I*PV_PP); Output; End; Drop J I rho PD RR r c PV_LL PV_PP; Proc univariate data=cdo.pdr_zerobond_pv_t1; Histogram Y CPD Default PDR; var PDR Y CPD Default; Output out=pdr_percentile PCTLPTS=0,70,80,90,95,98,9 Data Cdo.Tranched_PDR_Zerobond_PV_T1; set Cdo.PDR_Zerobond_PV_T1; TLoss1 = (1/(1.0000-0.3834))*min(1.0000-0.3834,max(0 TLoss2 = (1/(0.3834-0.3471))*min(0.3834-0.3471,max(0 TLoss3 = (1/(0.3471-0.2908))*min(0.3471-0.2908,max(0 TLoss4 = (1/(0.2908-0.2403))*min(0.2908-0.2403,max(0 TLoss5 = (1/(0.2403-0.1800))*min(0.2403-0.1800,max(0 TLoss6 = (1/(0.1800-0.1409))*min(0.1800-0.1409,max(0 TLoss7 = (1/(0.1409-0.0000))*min(0.1409-0.0000,max(0 TLossMezz = (1/(0.3834-0.1409))*min(0.3834-0.1409,m Proc univariate data=cdo.tranched_pdr_zerobond_pv_t1 Histogram; Run; Die Zahlen in den Nennern der TLoss-Variablen sind Perzentile, die ich irgendeinem Verlustportfolio entnommen habe und entsprechen den Grenzen der Tranchen. Ich würde das ganze gerne so automatisieren, dass es jeweils den Perzentilen des ganz oben im ersten Data-Step erzeugten Verlustportfolios entspricht, um die Werte nicht immer manuell eingeben zu müssen.

Ich BITTE nochmals um Hilfe und bedanke mich für die Mühen!!!! Achso, hatte das falsch 4 July, 2009-10:33 sgeißler Achso, hatte das falsch verstanden. Dann vergiss das Klassifizieren und tausche einfach deine manuell eingetragenen Grenzen durch &PCTL1 bis &PCTL7 aus. Das sind Makrovariablen, die die aus dem Proc-Univariate errechneten Percentile enthalen. Vor den Proc transpose und den proc sql Schritt aus meinem vorherigen Post ausführen. Dann sollte das klappen. Simon Danke Simon!!! Muss jetzt zur Danke Simon!!! 4 July, 2009-10:36 risk_operator Muss jetzt zur Arbeit und kanns schon nicht abwarten es heute Abend auszuprobieren. Wenn es klappt, wäre es für mich ein großer Schritt :-) Vielen Dank und einen schönen Tag noch Mit besten Grüßen Gökhan Ja da habe ich mir gedacht, 5 July, 2009-09:26 risk_operator Ja da habe ich mir gedacht, aber weil Du meintest "Vor den Proc transpose und den proc sql Schritt aus meinem vorherigen Post ausführen." habe ich es so verstanden. Wie auch immer nun sieht meint Code wie folgt aus:

Libname Cdo "C:\Users\OEM\Desktop\SAS_CDO"; Data Cdo.PDR_Zerobond_PV_T1; J = 50000; I = 10000; rho = 0.3; PD = 0.2; RR = 0.475; r = 0.04; c = 0.06; PV_LL = ((1-RR)+c)*exp(-r); PV_PP = (1+c)*exp(-r); Do j = 1 to J; Y = Rannor(0); CPD = Probnorm((Probit(PD)-sqrt(rho)*Y)/( Default = Ranbin(0,I,CPD); PDR = (Default*PV_LL)/(I*PV_PP); Output; End; Drop J I rho PD RR r c PV_LL PV_PP; Proc univariate data=cdo.pdr_zerobond_pv_t1; Histogram Y CPD Default PDR; var PDR Y CPD Default; Output out=pdr_percentile PCTLPTS=70,80,90,95 proc transpose data=pdr_percentile out=perc_t proc sql; select col1 into :PCTL1-:PCTL6 from perc_trans ; quit; Data Cdo.Tranched_PDR_Zerobond_FV; set Cdo.PDR_Zerobond_PV_T1; OT1=1; UT1=&PCTL1; UT2=&PCTL2; UT3=&PCTL3; UT4=&PCTL4; UT5=&PCTL5; UT6=&PCTL6; UT7=0; TLoss1 = (1/(OT1-UT1))*min(OT1-UT1,max(0,PDR- TLoss2 = (1/(UT1-UT2))*min(UT1-UT2,max(0,PDR- TLoss3 = (1/(UT2-UT3))*min(UT2-UT3,max(0,PDR- TLoss4 = (1/(UT3-UT4))*min(UT3-UT4,max(0,PDR- TLoss5 = (1/(UT4-UT5))*min(UT4-UT5,max(0,PDR- TLoss6 = (1/(UT5-UT6))*min(UT5-UT6,max(0,PDR- TLoss7 = (1/(UT6-UT7))*min(UT6-UT7,max(0,PDR- Drop OT1 UT1 UT2 UT3 UT4 UT5 UT6 UT7; Proc univariate data=cdo.tranched_pdr_zerobon Histogram; Aber die Werte der TLoss-Variablen stimmen nicht. Während Tloss1 und 7 falsche Verteilungsmomente aufweisen haben Tloss2-6 jeweils nur 50000 Werte von eins und ich verstehe nicht wie das sein kann?

Oh, ich wollte sagen: "Vorher Oh, ich wollte sagen: "Vorher den Proc...". 5 July, 2009-10:58 sgeißler Du hättest dir vielleicht den Inhalt der UT1-UT6 Variablen erstmal angucken sollen, bevor du sie dropst. Die sind wohl falsch rum. Änder den den Sql-Step in: proc sql; select col1 into :PCTL1-:PCTL6 from perc_trans order by col1 desc ; quit; Zur Funktion: Das Proc Transpose transponiert den Output von Proc Univariate (wo die percentile drin stehen). Das heißt aus Spalten werden Zeilen. Mit dem SQL-Step und dem "INTO:" Statement kann man die Zeilen automatisch in durchnummerierte Makro-Variablen speichern. Durch das neu eingefügte "order by" wird die Reihenfolge getauscht. Jetzt erhalte ich zumindest nicht mehr nur 1en. Kleiner Tipp am Rande: Obwohl syntaktisch korrekt würde ich mir angewöhnen jeden Step mit einem "" abzuschließen und zwischen "PROC...;" und RUN;" einzurücken. Das erhöht die Lesbarkeit ungemein. Finde ich zumindest. So hoffentlich passt es nun. Sonst schick mir mal eine Mail über das Kontaktformular hier. Dann kannst du mir zur Not wirklich die Excel-Datei schicken. Sonst nimmt das ja nie ein Ende hier ;) Simon Simon, 1000 Dank für Simon, 1000 Dank für alles. Jetzt läufts :-). Sie waren falsch rum!!! 5 July, 2009-14:21 risk_operator Und Deinen Tipp habe ich gerne angenommen. Es sieht auf jeden Fall übersichtlicher aus.

Nochmals vielen Dank! Mit besten Grüßen Gökhan Puh, ein Glück :-) Und was 5 July, 2009-14:58 sgeißler Puh, ein Glück :-) Und was ist das Ergebnis? Ist das Finanzsystem noch zu retten? Oder fallen alle Kredite aus? Darf ich fragen was und wo du studierst? Simon Neugierig 6 July, 2009-08:06 HansKneilmann Hallo Ihr beiden, die Antworten zu "Ist das Finanzsystem noch zu retten?" bzw. "fallen alle Kredite aus?" bitte nicht über das Kontakt-Formular oder emails austauschen, das interessiert bestimmt ausser mir noch andere Lser hier im Forum. Das gleiche gilt ganz besonders für die Antwort auf die Frage "was und wo du studierst"... Viele Grüße Hans Kneilmann, Schäfer Shop GmbH (SSI) Guten Tag Herr 6 July, 2009-12:35 risk_operator Guten Tag Herr Kneilmann, über Rettung kann keine Rede sein, wenn man bedenkt wie viel verloren gegangen ist. Indes gehören Verluste scheinbar zu einem Finanzsystem dazu und auch Strafen über hunderte von Jahren für ein paar "Finanzjongleure". Und wenn unser Finanzsystem total kollabiert wird es bestimmt bald ein neues geben. Ich schreibe zurzeit meine Diplomarbeit an der Leibniz Uni Hannover. Dabei befasse ich mich mit der Risikoverteilung im Rahmen von

Collateralized Debt Obligation's und führe mit SAS Simulationen durch. SAS lerne ich erst im Rahmen der Diplomarbeit. Jedoch will ich mich darüber hinaus damit intensiv weiter beschäftigen. Es ist echt einsame Spitze in welcher Form in diesem Forum geholfen wird. An dieser Stelle großen Dank an Simon und auch an Herr Muschik, der mir zu vor bei einem grafischen Problem geholfen hat, auch wenn ich das bisher noch nicht zufriedenstellend lösen konnte :-)... Mit besten Grüßen Gökhan Servus, besteht eigentlich Servus, 12 July, 2009-12:40 risk_operator besteht eigentlich die Möglichkeit sich Perzentile im PDR-Histogramm anzeigen zu lassen, z.b. als senkrechte Trennungslinien der einzelnen Perzentile? Oder sowas in der Art? Vielen Dank und einen schönen Sonntag noch. Gökhan Meintest Du das so? Libname Meintest Du das so? 4 July, 2009-21:00 risk_operator

Libname Cdo "C:\Users\OEM\Desktop\SAS_CDO"; Data Cdo.PDR_Zerobond_PV_T1; J = 50000; I = 10000; rho = 0.3; PD = 0.2; RR = 0.475; r = 0.04; c = 0.06; PV_LL = ((1-RR)+c)*exp(-r); PV_PP = (1+c)*exp(-r); Do j = 1 to J; Y = Rannor(0); CPD = Probnorm((Probit(PD)-sqrt(rho)*Y)/(sq Default = Ranbin(0,I,CPD); PDR = (Default*PV_LL)/(I*PV_PP); Output; End; Drop J I rho PD RR r c PV_LL PV_PP; Proc univariate data=cdo.pdr_zerobond_pv_t1; Histogram Y CPD Default PDR; var PDR Y CPD Default; Output out=pdr_percentile PCTLPTS=70,80,90,95,9 Libname Cdo "C:\Users\OEM\Desktop\SAS_CDO"; Data Cdo.Tranched_PDR_Zerobond_FV; set CDO.PDR_Zerobond_PV_T1; OT1=1; UT1=&PCTL1; UT2=&PCTL2; UT3=&PCTL3; UT4=&PCTL4; UT5=&PCTL5; UT6=&PCTL6; UT7=0; TLoss1 = (1/(OT1-UT1))*min(OT1-UT1,max(0,PDR-UT TLoss2 = (1/(UT1-UT2))*min(UT1-UT2,max(0,PDR-UT TLoss3 = (1/(UT2-UT3))*min(UT2-UT3,max(0,PDR-UT TLoss4 = (1/(UT3-UT4))*min(UT3-UT4,max(0,PDR-UT TLoss5 = (1/(UT4-UT5))*min(UT4-UT5,max(0,PDR-UT TLoss6 = (1/(UT5-UT6))*min(UT5-UT6,max(0,PDR-UT TLoss7 = (1/(UT6-UT7))*min(UT6-UT7,max(0,PDR-UT Drop OT1 UT1 UT2 UT3 UT4 UT5 UT6 UT7; Proc univariate data=cdo.tranched_pdr_zerobond_ Histogram; Run; proc transpose data=pdr_percentile out=perc_tra proc sql; select col1 into :PCTL1-:PCTL7 from perc_trans ; quit; Ich hoffe nicht, denn die Ergebnisse sind nicht richtig und den Fehler kann ich nicht finden.

Das du den SQL-Step vor dem 4 July, 2009-22:03 sgeißler Das du den SQL-Step vor dem 2. Datastep ausführen musst ist klar, oder? Wo ist sonst das Problem? Nicht die erwarteten Werte?