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?
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.
Tags und Links r