更新:问题的症结在于,为了达到时间复杂性,需要以的顺序存储。O(nlog(n))O(n)
不,是在所有选择元素的时间复杂度的理论下限(请参阅(1))可能的。O(nlog(n))k t h n (n − 1 )kthn(n−1)2|xi−xj|:1≤i<j≤n
您可以得到空间,但是只能通过在时间天真的检查所有组合来获得。O(1)xi−xjO(n2)
好消息是,您可以使用比例估算器(有关包的函数,请参见(2)和(3)以获得改进的版本和一些时序比较)
。单变量估计量是比例的两步(即重新加权)估计量。它具有95%的高斯效率,50%的故障点以及时间和空间的复杂性(另外,它可以很容易地实现“在线”使用,将重复使用的计算成本减少了一半-尽管您将必须深入研究代码以实现此选项,这非常简单)。ττ ø (Ñ )Ô (1 )scaleTau2()
R
robustbase
τO(n)O(1)R
- 带有排序列的GN Frederickson和DB Johnson在X + Y和矩阵中进行选择和排序的复杂性,《计算机与系统科学杂志》第24卷,第2期,1982年4月,第197-208页。
- Yohai,V.和Zamar,R.(1988)。通过最小化有效规模来对回归进行高分解点估计。美国统计协会杂志83 406–413。
- Maronna R.和Zamar R.(2002)。高维数据集的位置和离散度的可靠估计。技术计量学44307–317
编辑使用此
- 启动
R
(它是免费的,可以从这里下载)
- 通过键入以下命令安装软件包:
install.packages("robustbase")
- 通过键入以下命令加载软件包:
library("robustbase")
- 加载数据文件并运行功能:
mydatavector <- read.table("address to my file in text format", header=T)
scaleTau2(mydatavector)