Fehlersuche bei Simulation

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

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

  • Name:

und

  • Organisation:

ausfüllen, sondern auch ein paar Worte bei

  • Interesse an SAS-Software:
  • Homepage:
  • Branche:
  • Als SAS-Anwender bin ich ...:

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

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 defaultsrate=Default[+]/N_schuldner;
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!