Quantile selbst festlegen

Werbung
News
Artikel
Foren
Join
Projekte
List
Links
Random
Über Redscope
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
Log in or register to post comments
...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...
Log in or register to post comments
proc univariate
2 July, 2009 - 12:46 — sgeißler
proc univariate data=sashelp.class;
var age;
output out=percentile PCTLPTS=30 PCTLPRE=PCTL;
run;
Wie stellst du dir vor, dass wir Syntaxfehler beurteilen sollen, wenn du nicht schreibst, was du
genau abgeschickt hast?
Gruß
Simon
Log in or register to post comments
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
Log in or register to post comments
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;
run;
Das Ergebnis des Output...-Krams, landet in der Tabelle die mit der "OUT="-Option
angegeben wird. Hier also "percentile".
Gruß
Simon
Log in or register to post comments
Alles klar, vielen Dank. Ich
3 July, 2009 - 11:13 — risk_operator
Alles klar, vielen Dank.
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;
* Anzahl Simulati
I = 10000;
* Anzahl Kredite;
rho = 0.3;
* Assetkorrelatio
PD = 0.2;
* Probability of
RR = 0.475;
* Recovery Rate;
r = 0.04;
* Risikofreier Zi
c = 0.06;
* Coupon;
PV_LL = ((1-RR)+c)*exp(-r);
* Present Value L
PV_PP = (1+c)*exp(-r);
* Present Value P
Do j = 1 to J;
Y = Rannor(0);
* Makrofaktor ~ N
CPD = Probnorm((Probit(PD)-sqrt(rho)*Y)/(sqrt(1-rho)));
* Bedingte Ausfallwah
Default = Ranbin(0,I,CPD);
* Summe der Portf
PDR = (Default*PV_LL)/(I*PV_PP);
* Portfolioverlus
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=PCTL;
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
Log in or register to post comments
Doppelpost
3 July, 2009 - 13:05 — sgeißler
Doppelpost
Log in or register to post comments
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 MakroKenntnisse.
Gruß
Simon
Log in or register to post comments
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
Log in or register to post comments
Bitteschön: /* Tabelle
3 July, 2009 - 16:18 — sgeißler
Bitteschön:
/* Tabelle transponieren */
proc transpose data=pdr_percentile out=perc_trans;
run;
/* 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. &pctl4. &pctl5. &pctl
/* 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},max(0,PDR-pctls{w
run;
Log in or register to post comments
Danke Simon, mal wieder :-)
3 July, 2009 - 17:15 — risk_operator
Danke Simon, mal wieder :-) !!!!
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
Log in or register to post comments
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-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 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,99 PCTLPRE=PCTL;
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,PDR-0.3834));
TLoss2 = (1/(0.3834-0.3471))*min(0.3834-0.3471,max(0,PDR-0.3471));
TLoss3 = (1/(0.3471-0.2908))*min(0.3471-0.2908,max(0,PDR-0.2908));
TLoss4 = (1/(0.2908-0.2403))*min(0.2908-0.2403,max(0,PDR-0.2403));
TLoss5 = (1/(0.2403-0.1800))*min(0.2403-0.1800,max(0,PDR-0.1800));
TLoss6 = (1/(0.1800-0.1409))*min(0.1800-0.1409,max(0,PDR-0.1409));
TLoss7 = (1/(0.1409-0.0000))*min(0.1409-0.0000,max(0,PDR-0.0000));
TLossMezz = (1/(0.3834-0.1409))*min(0.3834-0.1409,max(0,PDR-0.1409));
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!!!!
Log in or register to post comments
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.
Gruß
Simon
Log in or register to post comments
Danke Simon!!! Muss
jetzt zur
4 July, 2009 - 10:36 — risk_operator
Danke Simon!!!
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
Log in or register to post comments
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)/(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 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,98,99 PCTLPRE=PCTL
proc transpose data=pdr_percentile out=perc_trans;
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-UT1));
TLoss2 = (1/(UT1-UT2))*min(UT1-UT2,max(0,PDR-UT2));
TLoss3 = (1/(UT2-UT3))*min(UT2-UT3,max(0,PDR-UT3));
TLoss4 = (1/(UT3-UT4))*min(UT3-UT4,max(0,PDR-UT4));
TLoss5 = (1/(UT4-UT5))*min(UT4-UT5,max(0,PDR-UT5));
TLoss6 = (1/(UT5-UT6))*min(UT5-UT6,max(0,PDR-UT6));
TLoss7 = (1/(UT6-UT7))*min(UT6-UT7,max(0,PDR-UT7));
Drop OT1 UT1 UT2 UT3 UT4 UT5 UT6 UT7;
Proc univariate data=Cdo.Tranched_PDR_Zerobond_FV;
Histogram;
run;
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?
Log in or register to post comments
Oh, ich wollte sagen:
"Vorher
5 July, 2009 - 10:58 — sgeißler
Oh, ich wollte sagen: "Vorher den Proc...".
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 "run;" 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 ;)
Gruß
Simon
Log in or register to post comments
Simon, 1000
Dank für
5 July, 2009 - 14:21 — risk_operator
Simon, 1000 Dank für alles.
Jetzt läufts :-).
Sie waren falsch rum!!!
Und Deinen Tipp habe ich gerne angenommen. Es sieht
auf jeden Fall übersichtlicher aus.
Nochmals vielen Dank!
Mit besten Grüßen
Gökhan
Log in or register to post comments
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?
Gruß
Simon
Log in or register to post comments
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)
Log in or register to post comments
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
Log in or register to post comments
Servus, besteht
eigentlich
12 July, 2009 - 12:40 — risk_operator
Servus,
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.
Gruß
Gökhan
Log in or register to post comments
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)/(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 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,98,99 PCTLPRE=PCTL;
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-UT1));
TLoss2 = (1/(UT1-UT2))*min(UT1-UT2,max(0,PDR-UT2));
TLoss3 = (1/(UT2-UT3))*min(UT2-UT3,max(0,PDR-UT3));
TLoss4 = (1/(UT3-UT4))*min(UT3-UT4,max(0,PDR-UT4));
TLoss5 = (1/(UT4-UT5))*min(UT4-UT5,max(0,PDR-UT5));
TLoss6 = (1/(UT5-UT6))*min(UT5-UT6,max(0,PDR-UT6));
TLoss7 = (1/(UT6-UT7))*min(UT6-UT7,max(0,PDR-UT7));
Drop OT1 UT1 UT2 UT3 UT4 UT5 UT6 UT7;
Proc univariate data=Cdo.Tranched_PDR_Zerobond_FV;
Histogram;
Run;
proc transpose data=pdr_percentile out=perc_trans;
run;
proc sql;
select col1
into :PCTL1-:PCTL7
from perc_trans
;
quit;
run;
Ich hoffe nicht, denn die Ergebnisse sind nicht richtig und den
Fehler kann ich nicht finden.
Log in or register to post comments
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?
Log in or register to post comments
Herunterladen