Wie skalieren verschiedene statistische Techniken (Regression, PCA usw.) mit Stichprobengröße und -dimension?

10

Gibt es eine bekannte allgemeine Tabelle statistischer Techniken, die erklären, wie sie mit Stichprobengröße und -dimension skalieren? Zum Beispiel erzählte mir ein Freund neulich, dass die Berechnungszeit für das schnelle Sortieren eindimensionaler Daten der Größe n n * log (n) ist.

Wenn wir zum Beispiel y gegen X zurückführen, wobei X eine d-dimensionale Variable ist, geht es dann als O (n ^ 2 * d)? Wie skaliert es, wenn ich die Lösung über eine exakte Gauß-Markov-Lösung gegen numerische kleinste Quadrate mit der Newton-Methode finden möchte? Oder einfach die Lösung finden oder Signifikanztests verwenden?

Ich denke, ich möchte mehr eine gute Antwortquelle (wie ein Artikel, der die Skalierung verschiedener statistischer Techniken zusammenfasst) als eine gute Antwort hier. Wie zum Beispiel eine Liste, die die Skalierung von multipler Regression, logistischer Regression, PCA, Cox-Proportional-Hazard-Regression, K-Mittel-Clustering usw. umfasst.

Bridgeburners
quelle
Das ist eine gute Frage. Viele Statistikbücher sprechen über die theoretischen Aspekte hochdimensionaler Daten und nicht über die rechnerischen Aspekte.
Shadowtalker
In vielen Fällen wird in der Originalliteratur die Komplexität erörtert. Aber oft ist theoretische Komplexität nutzlos. QuickSort hat einen Worst-Case von O (n ^ 2), ist aber oft der schnellste - schneller als HeapSort, der den Worst-Case von O (n log n) hat. Wenn Sie ein wenig recherchieren, werden Sie Komplexitätsergebnisse für viele Algorithmen herausfinden - sofern bekannt. ZB PCA ist O (nd ^ 3), k-bedeutet O (nkid) usw.
Hat aufgehört - Anony-Mousse

Antworten:

6

Die meisten effizienten (und nicht trivialen) statistischen Algorithmen sind iterativer Natur, so dass die Worst-Case-Analyse O()irrelevant ist, da der Worst-Fall "es konvergiert nicht" ist.

Wenn Sie jedoch viele Daten haben, können sogar die linearen Algorithmen ( O(n)) langsam sein, und Sie müssen sich dann auf die Konstante 'versteckt' hinter der Notation konzentrieren. Zum Beispiel wird das Berechnen der Varianz einer einzelnen Variation naiv durchgeführt, indem die Daten zweimal gescannt werden (einmal zum Berechnen einer Schätzung des Mittelwerts und dann einmal zum Schätzen der Varianz). Es kann aber auch in einem Durchgang durchgeführt werden .

Für iterative Algorithmen ist die Konvergenzrate und die Anzahl der Parameter als Funktion der Datendimensionalität wichtiger, ein Element, das die Konvergenz stark beeinflusst. Viele Modelle / Algorithmen wachsen eine Reihe von Parametern, die exponentiell mit der Anzahl der Variablen (z. B. Splines) sind, während andere linear wachsen (z. B. Support-Vektor-Maschinen, zufällige Wälder, ...).

damienfrancois
quelle
Ich bin nicht sicher , ob ich damit einverstanden: wenn ein Algorithmus für ein statistisches Problem der Gestaltung, eine Menge geht von Sorge in die Komplexität eines jeden Iterationsschritt (und wird in der Regel in einem Manuskript dokumentiert). Wie Sie jedoch betonen, ist die Zusammenfassung häufig nicht so einfach, da zwei Algorithmen mit derselben Komplexität pro Iteration aufgrund der erforderlichen Iterationen sehr unterschiedlich funktionieren können. Allerdings ist es sehr selten, dass die Anzahl der erforderlichen Iterationen schneller wächst als O(log(n) ).
Cliff AB
5

Sie haben im Titel Regression und PCA erwähnt, und für jede dieser Fragen gibt es eine eindeutige Antwort.

Die asymptotische Komplexität der linearen Regression reduziert sich auf O (P ^ 2 * N), wenn N> P ist, wobei P die Anzahl der Merkmale und N die Anzahl der Beobachtungen ist. Weitere Einzelheiten zur rechnerischen Komplexität der Regressionsoperation der kleinsten Quadrate .

Vanille-PCA ist O (P ^ 2 * N + P ^ 3), wie im schnellsten PCA-Algorithmus für hochdimensionale Daten . Es gibt jedoch schnelle Algorithmen für sehr große Matrizen, die in dieser Antwort und dem besten PCA-Algorithmus für eine große Anzahl von Merkmalen erläutert werden . .

Ich glaube jedoch nicht, dass irgendjemand eine einzige beleuchtete Rezension oder Referenz oder ein Buch zu diesem Thema zusammengestellt hat. Könnte kein schlechtes Projekt für meine Freizeit sein ...

Shadowtalker
quelle
Danke, das ist sehr hilfreich! Wenn Sie eine Literaturübersicht über verschiedene Vorhersagemodellierungstechniken erstellen, wird sicher häufig darauf verwiesen. Dies ist sehr hilfreich für Personen, die unterscheiden möchten, welche Algorithmen in großen n- oder großen p-Fällen verwendet werden sollen, oder für mittlere Werte für genauere Berechnungen. Wissen Sie zufällig, wie sich einige der dunkeleren Techniken skalieren lassen? (Wie Cox Proportional Hazard Regression oder Bestätigungsfaktoranalyse)
Bridgeburners
Leider nein, aber wenn ich jemals diese Bewertung mache, werde ich versuchen, umfassend zu sein. Ich würde die Cox-Regression zumindest in meinem Bereich kaum als "dunkel" bezeichnen.
Shadowtalker
5

Ich gab eine sehr begrenzte Teilantwort für das Bestätigungsfaktor-Analysepaket, das ich für Stata in diesem Artikel im Stata Journal entwickelt hatte, basierend auf dem Timing der tatsächlichen Simulationen. Die Analyse der Bestätigungsfaktoren wurde als Methode zur Schätzung der maximalen Wahrscheinlichkeit implementiert, und ich konnte sehr leicht sehen, wie die Berechnungszeit mit jeder Dimension wuchs (Stichprobengröße n, Anzahl der Variablen p, Anzahl der Faktoren k). Da es stark davon abhängt, wie Stata über die Daten denkt (optimiert für die Berechnung über Spalten / Beobachtungen hinweg anstatt über Zeilen hinweg), fand ich die LeistungO(n^{0.68} (k+p)^{2.4})Dabei ist 2.4 die schnellste Matrixinversionsasymptotik (und davon gibt es verdammt viel in der iterativen Maximierung der Bestätigungsfaktoranalyse). Ich habe keine Referenz für Letzteres angegeben, aber ich glaube, ich habe diese von Wikipedia erhalten .

X'X108

StasK
quelle
2
Die mathematische Formatierung funktioniert in DataScience nicht? "Ja wirklich?" Vielleicht sollten wir darum bitten.
StasK
Guter Punkt zur numerischen Genauigkeit.
Shadowtalker