2011-02-25 40 views
4

我处理有缺失数据的数据集和填充算法需要能够填补前进,后退,和差距。因此,例如,如果我有从2000年1月1日到2010年12月31日的数据,并且缺少某些日期,那么当用户请求开始之前,结束之后或包含缺失数据点的时间段时,我需要“填写“这些缺失的值。方法或在丢失数据

是否有一个适当的词来指在数据填充这个概念?归责是一个术语,不知道它是否是它的“术语”。

我假定有多个算法2个已知数之间&方法用于填补缺失数据(使用最后测定,使用中值/平均/移动平均,等,等

任何人都知道这个问题的适当的术语,关于这个主题的在线资源,或理想的链接打开的一些算法代码实现(C#最好的,但任何语言将是有益的)

+1

您是否正在寻找术语“插值”? – 2011-02-25 15:26:45

+1

和“外推”? – Howard 2011-02-25 15:27:21

回答

2

你要找的期限为interpolation。(强制性维基链接)

您正在寻求C#解决方案与数据集,但你也应该考虑在the database level like this这样做。

C#中的一个简单的蛮力方法可能是将您的开始和结束值作为最小/最大值构建连续日期数组。然后使用该数组通过在数据集中没有日期数组的匹配日期插入行来将“插入的”日期值合并到数据集中。

这是一个接近您所需的SO post:使用C#插入缺失的日期。没有可接受的解决方案,但是阅读这个问题并尝试解答可能会让你了解下一步需要做什么。例如。根据Ticks(长值类型)使用DateTime数据,然后对该数据使用插值方案。将插值的long值转换为DateTime值。

2

您使用的算法将取决于数据本身,与可用数据相比差距的大小以及基于现有数据的可预测性。它还可以包含您可能知道的有关丢失的其他信息,这在统计数据中很常见,当您的实际数据可能不会反映与某些类别的Universe相同的分布时。

线性和三次插值是典型的algortihms,不难实现,尝试使用google搜索。

这里有一个很好的入门的一些代码:

http://paulbourke.net/miscellaneous/interpolation/

在该链接的讨论的背景是图形,但其概念是普遍适用的。