对来自非常大文件的样本进行回归:样本系数的均值和 SE 是否一致估计?

机器算法验证 r 回归 大数据 引导程序
2022-04-02 15:40:51

我有一个相当大的文件,有 100M 行和 30 列左右,我想在上面运行多个回归。我有专门的代码来对整个文件运行回归,但我想做的是从文件中抽取随机样本并在 R 中运行它们。策略是:从文件中随机抽样 N 行而不替换运行回归和保存感兴趣的系数 用不同的样本为每个系数重复此过程 M 次,计算 M 次运行中系数的均值和标准误差。

我想将在 M 次运行中计算的平均值解释为对整个数据集计算的系数值的估计,并将平均值的标准误差解释为对整个数据集计算的系数的标准误差的估计。

实验表明这是一个很有前途的策略,但我不确定基本理论。我的估算器是否始终如一地高效且公正?如果它们是一致的,它们应该以多快的速度收敛?M 和 N 的最佳权衡是什么?

如果有人能用相关理论指出我的论文、书籍等,我将不胜感激。

最好的问候和非常感谢,

乔·里克特

3个回答

如果您可以假设您的数据矩阵行是可交换的,那么您的建模策略应该可以很好地工作。在Gaetan Lion之前规定的条件下,您的方法应该没问题。

您的方法有效的原因考虑到可交换性假设成立)是因为它被视为参数引导的特例,在这种情况下,您重新采样 N 行大样本,拟合模型并存储系数并重复此 M次(在传统的引导术语中,您的M相当于B)并取M系数估计值的平均值。您也可以从排列测试的角度来看待它。

但是,如果(难以验证的)可交换性假设成立,那么所有这些结果都是正确的。如果可交换性假设不成立,那么这种情况下的答案就会变得有点复杂。可能您需要注意数据中可交换的子组,并根据这些子组执行您的过程。基本上,分层建模。

您最初问题的答案是肯定的,因为经典理论适用于您的抽样方案。您不需要对原始数据矩阵进行任何假设。所有随机性(隐含在标准误差和一致性背后)都来自您从数据矩阵N

将您的整个数据集(1 亿行)视为总体。每个估计(假设您的样本大小是行的简单随机样本)是从整个数据集计算此外,它近似正态,均值等于和一些协方差。估计的协方差的通常估计也是一致的。如果你重复这次并对这估计进行平均,那么得到的估计(例如)也将近似于 Normal。您可以将这些估计视为几乎独立(不相关),只要Nβ^β^MMβ^avgMN相对于 100M 较小。这是一个重要的假设。当样本量与总体规模相比较小时,无放回抽样与带放回抽样大致相同。M

话虽如此,我认为您的问题确实是如何有效地逼近从整个数据集计算(1)基于大小为个估计进行平均和 (2) 基于大小为的样本的一个估计之间存在差异(2) 的 MSE 通常小于 (1) 的 MSE。只有当估计在数据中是线性的时,它们才会相等,但事实并非如此。我假设您使用的是最小二乘法。最小二乘估计在(响应)向量中是线性的,但不是(协变量)矩阵。您正在随机抽样β^MNMNYXYX

(1) 和 (2) 都是简单的方案,但不一定有效。(尽管这可能无关紧要,因为您只有 30 个变量。)还有更好的方法。这是一个例子:http ://arxiv.org/abs/0710.1435

样本 N 越大,与所有回归系数相关的标准误差(t stat 越高,相应的 p 值越小)越小。M 越大,您将拥有的数据点越多,M 次运行的系数平均值的标准误差就越小。这种方法应该有一个标准误差,该误差按照中心极限定理正态分布。就这些方法的收敛性而言,我不确定是否有任何统计原则规定了这一点。我怀疑如果您的随机抽样做得很好(没有结​​构偏差等),收敛应该会很快发生。这就是你可能不得不凭经验观察的东西。

否则,你的方法看起来不错,我看不出有什么问题。