¿Existe una tabla general conocida de técnicas estadísticas que explique cómo se escalan con el tamaño y la dimensión de la muestra? Por ejemplo, un amigo mío me dijo el otro día que el tiempo de cálculo de simplemente clasificar rápidamente datos unidimensionales de tamaño n es n * log (n).
Entonces, por ejemplo, si retrocedemos y contra X donde X es una variable d-dimensional, ¿va como O (n ^ 2 * d)? ¿Cómo se escala si quiero encontrar la solución a través de la solución exacta de Gauss-Markov versus mínimos cuadrados numéricos con el método de Newton? ¿O simplemente obtener la solución frente al uso de pruebas de significación?
Supongo que más quiero una buena fuente de respuestas (como un documento que resume la escala de varias técnicas estadísticas) que una buena respuesta aquí. Como, digamos, una lista que incluye la escala de regresión múltiple, regresión logística, PCA, regresión de riesgo proporcional de cox, agrupación de K-medias, etc.
fuente
Respuestas:
La mayoría de los algoritmos estadísticos eficientes (y no triviales) son de naturaleza iterativa, por lo que el análisis del peor de los casos
O()
es irrelevante ya que el peor de los casos es "no puede converger".Sin embargo, cuando tiene muchos datos, incluso los algoritmos lineales (
O(n)
) pueden ser lentos y luego debe centrarse en la constante 'oculta' detrás de la notación. Por ejemplo, calcular la varianza de una sola variante se hace ingenuamente escaneando los datos dos veces (una vez para calcular una estimación de la media y luego una vez para estimar la varianza). Pero también se puede hacer de una sola vez .Para los algoritmos iterativos, lo más importante es la tasa de convergencia y el número de parámetros en función de la dimensionalidad de los datos, un elemento que influye mucho en la convergencia. Muchos modelos / algoritmos crecen una cantidad de parámetros que es exponencial con el número de variables (por ejemplo, splines), mientras que otros crecen linealmente (por ejemplo, máquinas de vectores de soporte, bosques aleatorios, ...)
fuente
O(log(n) )
.Usted mencionó regresión y PCA en el título, y hay una respuesta definitiva para cada uno de ellos.
La complejidad asintótica de la regresión lineal se reduce a O (P ^ 2 * N) si N> P, donde P es el número de características y N es el número de observaciones. Más detalles en la complejidad computacional de la operación de regresión de mínimos cuadrados .
Vanilla PCA es O (P ^ 2 * N + P ^ 3), como en el algoritmo de PCA más rápido para datos de alta dimensión . Sin embargo, existen algoritmos rápidos para matrices muy grandes, explicadas en esa respuesta y ¿El mejor algoritmo de PCA para un gran número de características? .
Sin embargo, no creo que nadie haya compilado una sola crítica o referencia o libro sobre el tema. Puede que no sea un mal proyecto para mi tiempo libre ...
fuente
Di una respuesta parcial muy limitada para el paquete de análisis factorial confirmatorio que desarrollé para Stata en este artículo de Stata Journal basado en el tiempo de las simulaciones reales. El análisis factorial confirmatorio se implementó como una técnica de estimación de máxima verosimilitud, y pude ver muy fácilmente cómo creció el tiempo de cálculo con cada dimensión (tamaño de la muestra
n
, número de variablesp
, número de factoresk
). Como depende en gran medida de cómo piensa Stata sobre los datos (optimizado para calcular en columnas / observaciones en lugar de filas), descubrí que el rendimiento esO(n^{0.68} (k+p)^{2.4})
donde 2.4 es la asintótica de inversión matricial más rápida (y hay mucho de eso en la maximización iterativa del análisis factorial confirmatorio). No di una referencia para esto último, pero creo que lo obtuve de Wikipedia .X'X
fuente