Community deutschsprachiger SAS-Anwender und -Programmierer

Antworten
Dies ist eine offene Gruppe. Melden Sie sich an und klicken Sie auf die Schaltfläche „Gruppe beitreten“, um Mitglied zu werden und damit zu beginnen, Beiträge in dieser Gruppe zu veröffentlichen.
Highlighted
Occasional Contributor
Beiträge: 6
Logistische Regression mit 31.500 unabhängigen Variablen
[ Bearbeitet ]

Hallo Kollegen,

 

ich möchte ein Modell mit der logistischen Regression auf folgender Datenbasis erstellen:

1 abhängige Variable (Zielmerkmal: reag)

31.500 unabhängige Variablen (viele, viele Einzelmerkmale zu einer Beobachtung)

200.000 Beobachtungen

 

Dafür habe ich folgenden Code verwendet:

proc logistic data=lib.mod_learn descending;
	model 	reag = %do i=1 %to 7; &&list&i.. %end; 
			/selection=stepwise fast slentry=0.05 slstay=0.05;
	ODS OUTPUT ModelBuildingSummary	= LR_S5_mvar;
	ODS OUTPUT ParameterEstimates	= LR_S5_mpara;
run; 
ods output close;

Die 31.500 unabhängigen Variablen werden mittels 7 Makrovariablen übergeben.

 

 

 

Ich erhielt folgende Fehlermeldung:

ERROR: Memory required by the hessian matrix exceeds the largest long integer.
ERROR: The SAS System stopped processing this step because of insufficient memory.
NOTE: There were 200000 observations read from the data set LIB.MOD_LEARN.
NOTE: PROCEDURE LOGISTIC used (Total process time):
      real time           7:55.82
      cpu time            5:52.62

 

Nun kann ich leider gar nichts damit anfangen, daher die Bitte an Euch, mich zu unterstützen:

-- Wie kann ich meinen Code umstellen, damit das Modell durchläuft und die entsprechenden Modellparameter-Dateien ausgegeben werden?

-- Oder wie kann ich Speicher für das Modell freigegeben? Anscheinend scheint dieser ja zu fehlen.

-- Oder welchen Code bzw. welche Methode für die LR würdet Ihr verwenden bei so vielen Merkmalen?

 

Mit weniger unabhängigen Variablen hatte ich nie Probleme ;-).

 

Danke vorab und schönes Wochenende,

Hendrik

New Contributor
Beiträge: 3
Re: Logistische Regression mit 31.500 unabhängigen Variablen
Ich würde an Deiner Stelle die Anzahl der Prädiktoren zusammendampfen.

1. Kriterium: Eine von Dir festzulegenden bivariate Korrelation mit dem
Target.
Alle Prädiktoren, die darunter liegen, fliegen raus.

2. Kriterium: Sind die Prädiktoren überhaupt befüllt?
Nur die verwenden, die einen Mindest-Befüllungsgrad haben.

Dieses Vorgehen kann helfen, das Feld der infragekommenden "Kandidaten"
auszudünnen.


##- Please type your reply above this line. Simple formatting, no
attachments. -##
Esteemed Advisor
Beiträge: 5.979
Betreff: Logistische Regression mit 31.500 unabhängigen Variablen

Wenn ich mir https://support.sas.com/documentation/cdl/en/statug/63347/HTML/default/viewer.htm#statug_logistic_se... ansehe, dann glaube ich nicht, dass 31.500 Variable mit handelsüblicher Hardware zu schaffen sind. Eher denke ich bei 31.500 Einflussvariablen an Overkill um zumindest 2 Größenordnungen.

 

 

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers