2016-12-20 5 views
0

Ich habe einen sehr großen Datensatz (100 GB) und muss PROC NLIN für jeden Satz von Beobachtungen ausführen. In einigen Fällen versagt das Modell zu konvergieren, die eine Reihe von Warnlinien in die Protokolldatei erzeugt:PROC NLIN-Warnung von SAS-Protokolldatei unterdrücken

NOTE: PROC NLIN grid search time was 0: 0: 0. 
WARNING: PROC NLIN failed to converge. 
NOTE: Negative model SS. Check model and initial parameters. 
NOTE: The (approximate) Hessian is singular. 
NOTE: The above message was for the following BY group: obs=420 

Die Parameter von PROC NLIN gegeben wurden mir und ich bin nicht in der Lage, einen von ihnen zu ändern. Daher können die Vorschläge hier (https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_nlin_sect023.htm) in diesem Fall nicht befolgt werden.

Ich habe das getan folgenden kurz vor dem Aufruf von PROC NLIN:

options nonotes ; 
proc printto print='/dev/null' new; 
run; 

jedoch die Zeile "WARNUNG: PROC NLIN gescheitert konvergieren" wird immer noch in das Protokoll gedruckt. Gibt es eine Möglichkeit, diese Warnung (oder alle ähnlichen Warnungen) aus der SAS-Protokolldatei zu unterdrücken?

Dies ist auf SAS 9.3 TS1M2 unter Linux OS.

Zusätzlicher Hinweis: Wir ignorieren die NLIN-Fehler nicht - die Bedingungen, die sie erzeugen, werden erfasst, und wir werden den Eingabedatensatz eventuell entsprechend filtern. Im Moment versuchen wir, alle Daten durchzuspielen, ohne dass sich die SAS-Protokolldatei füllt.

Antwort

0

Ich poste dies als eine Antwort. Es hätte offensichtlich sein müssen, aber für den Fall, dass andere darauf stoßen. innerhalb eines SAS-Programm können Sie vorübergehend die Ausgabe von Warnungen und Fehler in eine andere Protokolldatei erneut direkt mit der folgenden Syntax (unter Linux/Unix):

proc printto print='/dev/null' log='/dev/null' new; 
run; 

ich den Druck = Teil war mit nicht aber die log = Teil. Um zur normalen Protokollierung zurückzukehren, führen Sie einfach Folgendes aus:

proc printto 
run;