Fehlersuche bei Simulation
Verfasst von Nicci am 25 Oktober, 2008 - 02:52
Kann mir jemand sagen, was ich hier falsch gemacht habe?
PROC IML;
N_sim=10000;
N_schuldner=1000;
PD=0.01;
rho=0.2;
c=PROBIT(PD);
DO sim=1 TO N_sim;
X=RANNOR(0);
U=RANNOR(J(N_schuldner,1,0));
Rendite=SQRT(rho)*X+SQRT(1-rho)*U;
Default=Rendite
»
- Anmelden oder Registrieren um Kommentare zu schreiben

Teil hat gefehlt, hier der Rest
hinter der letzten Zeile oben fehlt "kleiner c;" (das kann ich hier irgendwie nicht reinschreiben)
defaultsrate=Default[+]/N_schuldner;
Loss=Loss//(X||Defaultrate);
END;
CREATE start.loss FROM loss;
APPEND FROM loss;
QUIT;
PROC UNIVARIATE DATA=start.loss;
Histogram;
RUN;
Benutzerkonto ordentlich pflegen
Hallo,
ich fände es schön, wenn die gute Redscope-Sitte Benutzerkonto ordentlich pflegen nicht in Vergessenheit geraten würde. Ich denke, dass es auch anderen Forums-Teilnehmern so geht (dieser Punkt wurde schon des öfteren thematisiert), z.B. unter Eine Bitte an alle (neuen) Forumsmitglieder oder Bitte ...
Mit Benutzerkonto ordentlich pflegen meine ich konkret, dass unter dem Punkt
Organisation nicht lapidar Universität steht.
Super-Toll wäre, wenn möglichst alle ein bisschen mehr über sich erzählen würden, also nicht nur kurz+trocken
und
ausfüllen, sondern auch ein paar Worte bei
eintragen!
Das gilt auch für die immer zahlreicheren Studenten: Bei denen ist dann die Uni/FH (mit Ort!) interessant und der Studiengang und der "Status" bzw. Grund der Anfrage (z.B. Projekt-/Studien/Diplomarbeit) und ...
Gruß
Hans Kneilmann, Schäfer Shop GmbH (SSI)
P.S. In dem oben angebenen Link Bitte ... stehen auch ein paar Worte zum Thema Wie (lesbare) Beiträge schreiben.
""
Füge doch bitte den Code als Ganzes innerhalb der tags < sas code > und < / sas code > (ohne Leerzeichen; s.u. Formatierungsrichtlinien) ein, damit man ihn gleich in den Editor kopieren kann. Eine genauere Fehlerbeschreibung und der Zweck des Codes wären auch hilfreich.
Gruß,
Simon
komplett
PROC IML;
N_sim=10000;
N_schuldner=1000;
PD=0.01;
rho=0.2;
c=PROBIT(PD);
DO sim=1 TO N_sim;
X=RANNOR(0);
U=RANNOR(J(N_schuldner,1,0));
Rendite=SQRT(rho)*X+SQRT(1-rho)*U;
Default=Rendite<c;
defaultsrate=Default[+]/N_schuldner;
Loss=Loss//(X||Defaultrate);
END;
CREATE start.loss FROM loss;
APPEND FROM loss;
QUIT;
PROC UNIVARIATE DATA=start.loss;
Histogram;
RUN;
raus kommt folgendes:
1 PROC IML;
HINWEIS: IML Ready
2 N_sim=10000;
3 N_schuldner=1000;
4 PD=0.01;
5 rho=0.2;
6 c=PROBIT(PD);
7 DO sim=1 TO N_sim;
8 X=RANNOR(0);
9 U=RANNOR(J(N_schuldner,1,0));
10 Rendite=SQRT(rho)*X+SQRT(1-rho)*U;
11 Default=Rendite<c;
12 defaultsrate=Default[+]/N_schuldner;
13 Loss=Loss//(X||Defaultrate);
14 END;
15 CREATE start.loss FROM loss;
FEHLER: Libname START ist nicht zugewiesen.
statement : CREATE at line 15 column 1
16 APPEND FROM loss;
FEHLER: No data set is currently open for output.
statement : APPEND at line 16 column 1
17 QUIT;
HINWEIS: Exiting IML.
HINWEIS: 5075 workspace compresses.
HINWEIS: Das SAS System hat die Verarbeitung dieses Schritts aufgrund von Fehlern abgebrochen.
HINWEIS: PROZEDUR IML benötigt. (Gesamtverarbeitungszeit):
Echtzeit 5.45 Sekunden
CPU-Zeit 5.19 Sekunden
18 PROC UNIVARIATE DATA=start.loss;
FEHLER: Libname START ist nicht zugewiesen.
19 Histogram;
20 RUN;
HINWEIS: Das SAS System hat die Verarbeitung dieses Schritts aufgrund von Fehlern abgebrochen.
HINWEIS: PROZEDUR UNIVARIATE benötigt. (Gesamtverarbeitungszeit):
Echtzeit 0.04 Sekunden
CPU-Zeit 0.01 Sekunden
Was ist denn libname? Was will er denn da vorgegeben haben? Und Zeile 19 muss der Befehl noch davor. PROC oder wie kriege ich hin, dass mir ein Histogramm angezeigt wird?
PROC
N_sim=10000;
N_schuldner=1000;
PD=0.01;
rho=0.2;
c=PROBIT(PD);
DO sim=1 TO N_sim;
X=RANNOR(0);
U=RANNOR(J(N_schuldner,1,0));
Rendite=SQRT(rho)*X+SQRT(1-rho)*U;
Default=Rendite
Loss=Loss//(X||Defaultrate);
END;
print loss;
CREATE loss var{loss};
APPEND FROM loss;
CLOSE loss;
QUIT;
PROC UNIVARIATE DATA=loss;
Histogram;
RUN;
So sollte eingefügter SAS-Code aussehen... (Siehe "Formatierungsrichtlinien" unter dem Eingabefeld".
Die Syntax zur Erstellung des Datasets war falsch. Ein libname ist der Name einer Library, mit der man auf vorher definierte oder standardmmäßig vorhandene Bibliotheken zugreifen kann. In deinem Fall gibt es keine Library mit dem Namen "start". Die syntax ist immer: "libname.datasetname".
Gruß
Simon
vielen herzlichen Dank!
vielen herzlichen Dank!