用分布填充缺失值

Posted

技术标签:

【中文标题】用分布填充缺失值【英文标题】:Filling missing values with distribution 【发布时间】:2017-07-05 15:35:36 【问题描述】:

所以我有 2 个数据集。

在第一个上,我有一天中每个小时的值。示例:

Date                 Value
05/07/2017 01:00     5
05/07/2017 02:00     10
05/07/2017 03:00     5

在第二个数据集中,我只有每天的总数

Date                 Value
05/07/2017           40

所以我想通过第一个数据集的相同分布来分配第二个数据集的总数。像这样的:

Date                 Value
05/07/2017 01:00     10
05/07/2017 02:00     20
05/07/2017 03:00     10

我该怎么做?我正在使用 R 并为第一个数据集创建了一个时间序列。

【问题讨论】:

如果解决了您的问题,请将答案标记为已接受。 【参考方案1】:

您可能需要检查专门用于缺失数据插补的 R 的 mice 包。在您的情况下,可能有一个 knn 方法可以通过考虑相似的(时间)属性样本来估算缺失值。

再看一遍,也许可以采用更复杂的过程来引导不同时间的值,然后填充缺失值,您必须找到一个随机(时间)组合(假设您使用随机每个时间特定时间池或分布的样本)其中的总和为您所拥有的总和。

【讨论】:

你能给我一些见解吗? 抱歉,您所说的见解是什么意思?哪种方法对您更有吸引力? 如果我理解正确,我认为是第一个,因为第一个数据具有每天重复的模式。 酷,所以你可以做的是用包含“值”的样本训练一个 knn(n=1) 分类器,作为测试集,你可以设置缺少数据的样本并将“值”作为目标变量。这样,您的分类器将以最合适的时间标记缺失的数据。 请说明该答案是否适合您,如果适合请采纳。

以上是关于用分布填充缺失值的主要内容,如果未能解决你的问题,请参考以下文章

R语言-均值填充缺失值

机器学习sklearn----用随机森林来填充缺失值

Netezza SQL:用最近的数据填充缺失值

用之前的非缺失值填充缺失的 pandas 数据,按 key 分组

Pyspark 用递减填充缺失值

无法用所有列中的列值填充缺失值