R: Schneller Weg zum Erstellen einer dünn besetzten Modellmatrix

8

Ich versuche, eine Modellmatrix mit einer Formel zu erstellen, die viele Interaktionsterme hat (einige kontinuierliche, einige 0-1, einige Faktoren mit vielen Ebenen). Die Erstellung dieser Modellmatrix ist der Flaschenhals meines Skripts. Am Ende ist die Modellmatrix 8M Zeilen mit 1000 Spalten. Da die Faktoren mit vielen Ebenen 0-1-kodiert sind, ist die resultierende Matrix, die Interaktionen darstellt, sehr spärlich, daher verwende ich bereits sparse.model.matrix .

Gibt es einen schnelleren Weg, diese Matrix zu generieren? Vielleicht in Rcpp?

    
JCWong 12.07.2015, 23:52
quelle

1 Antwort

2

Haben Sie überlegt, caret 's dummyVars zu verwenden? Es funktioniert für mich und scheint ziemlich schnell zu sein.

?dummyVars vergleicht das Standardverhalten von model.matrix und dummyVars , sagt aber nicht viel darüber.

Für einen kleinen Leistungs-Benchmark auf einem reproduzierbaren Beispiel :

%Vor%

Beachten Sie fullRank = TRUE , damit "die Faktoren so codiert sind, dass sie konsistent mit model.matrix sind, und dass dort keine linearen Abhängigkeiten zwischen den Spalten entstehen" pro ?dummyVars . Möglicherweise möchten Sie fullRank = TRUE entfernen, um das Verhalten von sparse=TRUE in contr.ltrf wie in sparse.model.matrix zu induzieren. Ich konnte keine klare Dokumentation finden.

    
C8H10N4O2 08.10.2015 14:31
quelle

Tags und Links