各种统计技术(回归,PCA等)如何根据样本大小和维度进行缩放?


10

是否有已知的统计技术通用表来解释它们如何随样本大小和维度进行缩放?例如,有一天我的一个朋友告诉我,简单地快速排序大小为n的一维数据的计算时间为n * log(n)。

因此,例如,如果我们对X进行y回归(其中X是d维变量),它是否会变成O(n ^ 2 * d)?如果我想通过精确的Gauss-Markov解与牛顿法的数值最小二乘法来找到解,它将如何缩放?还是只是获得解决方案与使用重要性测试?

我想我比这里的一个好答案更想要一个好的答案来源(例如总结各种统计技术的标度的论文)。举例来说,清单包含多重回归,logistic回归,PCA,cox比例风险回归,K均值聚类等的缩放比例。


这是一个很好的问题。许多统计书籍都谈论高维数据的理论方面,而不是计算方面。
shadowtalker 2014年

在许多情况下,原始文献将讨论复杂性。但是通常理论上的复杂性是没有用的。QuickSort的最坏情况为O(n ^ 2),但通常是最快的-快于HeapSort,后者的最坏情况为O(n log n)。如果您进行一些研究,就会发现许多算法的复杂性结果(如果知道)。例如PCA是O(ND ^ 3),k均值为O(nkid)等
已经退出- Anony-慕斯

Answers:


6

大多数有效的(非平凡的)统计算法本质上都是迭代的,因此,最坏情况的分析O()是无关紧要的,因为最坏情况是“无法收敛”。

但是,当您有大量数据时,即使线性算法(O(n))也可能很慢,因此您需要关注符号后面的常量“隐藏”。例如,天真地对单个变量的方差进行计算,将数据扫描两次(一次用于计算均值的估计,然后一次以估计方差)。但它也可以做一个合格

对于迭代算法,更重要的是收敛速度和参数数量作为数据维数的函数,而数据维数是影响收敛的一个因素。许多模型/算法会生成与变量数量(例如样条曲线)成指数关系的参数,而其他一些模型/算法则会线性增长(例如,支持向量机,随机森林等)。


我不确定我是否同意:在设计统计问题的算法时,每个迭代步骤的复杂性都会引起很多关注(通常记录在手稿中)。但是正如您指出的那样,总结起来通常不那么容易,因为每次迭代具有相同复杂度的两种算法在执行必要的迭代时可能会有很大不同。话虽这么说,但很少需要的迭代次数增长快于O(log(n) )
悬崖AB

5

您在标题中提到了回归和PCA,并且每一个都有明确的答案。

如果N> P,则线性回归的渐近复杂度降低为O(P ^ 2 * N),其中P是特征数量,N是观测数量。最小二乘回归运算的计算复杂度的更多细节。

香草PCA为O(P ^ 2 * N + P ^ 3),与用于高维数据的最快PCA算法一样。但是,对于非常大的矩阵,存在快速算法,请参见该答案和针对大量特征的最佳PCA算法?

但是,我认为没有人撰写有关该主题的单篇评论或参考书。我的空闲时间可能不是一个坏项目...


谢谢,这非常有帮助!如果您对各种预测建模技术进行了文献综述,那么我相信它将得到很多参考。对于想要区分在大n个案例或大p个案例中使用哪种算法,或者对于更精确的计算而言,对于那些中间值的人来说,这将非常有用。您是否偶然知道一些更晦涩的技术如何扩展?(类似于Cox比例风险回归或验证性因素分析)
Bridgeburners 2014年

不幸的是,没有,但是如果我这样做,我会尽量全面。至少在我的领域中,我几乎不会将Cox回归称为“模糊”。
shadowtalker 2014年

5

我给了我这个在Stata的发展为验证性因子分析包一个非常有限的部分答案塔塔日刊文基于定时实际模拟。验证性因素分析是一种最大似然估计技术,我可以很容易地看到计算时间如何随每个维度(样本大小n,变量p数,因素数k)增长。由于它在很大程度上取决于Stata对数据的看法(优化以跨列/观察而非行进行计算),我发现性能是O(n^{0.68} (k+p)^{2.4})其中2.4是最快的矩阵求逆渐近线(在验证性因素分析中,迭代最大化有很多麻烦)。我没有为后者提供参考,但是我想我是从Wikipedia获得的

X'X108


2
数学格式在DataScience上不起作用?真?也许我们应该要求得到它。
StasK 2014年

关于数值精度的要点。
shadowtalker 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.