具有“发明”数据的类似引导程序的先例?

机器算法验证 相关性 主成分分析 引导程序
2022-04-09 02:03:59

假设我有一个数据集,其中包含 10 个变量(“A”到“J”)中的 1000 个观察值。我对前 8 个变量中的每一个都有 1000 个响应/测量值,通过“H”,但只有前 500 个“I”的观测值没有丢失,只有最后 500 个“J”的观测值没有丢失——有没有我对最后两个变量 I 和 J 都进行测量的观察结果。

因此,如果我计算(成对)相关性,我有一个完整的相关矩阵,只有 I 和 J 之间的相关性缺失。假设我想在这个相关矩阵上运行主成分分析或其他一些这样的缩放过程。

我想我想做的是:

  1. 随机生成(可能来自 [-1, 1] 上的某个分布,或者可能通过从相关矩阵其余部分中的现有值中采样)I 和 J 之间的“发明”相关性。
  2. 把它放在相关矩阵中。
  3. 使用这个发明值在相关矩阵上运行 PCA。
  4. 多次重复步骤 1 - 3。
  5. 基于“伪自举”迭代,评估大量 PCA 的集体结果,查看载荷、分数、特征值等的均值和方差。

问题:

  1. 有没有更好的方法来处理相关矩阵中的(a)缺失值?
  2. 有没有用随机发明值替换这种(a)缺失值的先例?如果是这样,它叫什么?
  3. 这与引导程序有关吗?

非常感谢,提前。

编辑:问题4。这是一种合理的归责方法吗?

3个回答
  1. 我不知道。
  2. 你展示的是一个合法的蒙特卡罗模拟
  3. Bootstrap 也是一种蒙特卡洛方法,但它更多的是关于估计分布。
  4. 一般来说是的,尤其是在插补结果不佳的情况下。在插补效果很好的特殊情况下,不。简而言之,只要您确信您不能说更多关于 I&J 相关性的信息,那就是它在 -1..1 中。

另一种方法是使用缺失数据替换程序来估算缺失的原始数据。然后,您可以在估算数据集产生的相关矩阵上运行 PCA(另请参见多重估算)。

以下是有关 R 中缺失数据插补的一些链接:

  1. 我认为我们需要更多地了解数据的性质,以便就如何处理缺失值提出建议。我突然想到的一个探索性任务是查看变量 A 到 H 在 I 存在时的行为,以及当 J 存在时 A 到 H 的行为。后续建模有什么有趣的事情需要考虑吗?我不会重新采样描述性统计数据,例如相关性,而是考虑重新采样数据本身。例如,您可以使用引导程序根据这些变量实际拥有的 500 个值创建 500 个新的 (I,J) 对。但是,再一次,探索性工作可能会为重采样方案提供信息,而不是“幼稚”的 IID 方法。

  2. 通常,正如其他人所指出的,填充缺失数据是通过“插补”进行的,并且根据上下文有不同的技术。例如,在一个设置中,我可能只使用中值或样条拟合,但对于时间序列中缺失的数据点,我可能会使用 ARMA 时间序列模型生成的值进行估算。

  3. 如果您从观察到的数据中重新采样,您概述的解决方案将是“引导”。我认为蒙特卡洛是任何使用数据概率采样作为计算输入的方法。当采样来自用于对数据生成方式进行建模的非参数或参数分布时,我仍将其称为 Monte Carlo。但是,当从经验分布(即观察到的数据本身,而不是数据生成过程的模型)中进行抽样时,我称之为自举。