永发信息网

如何利用已有数据插值补充缺失数据

答案:2  悬赏:70  手机版
解决时间 2021-02-23 00:46
如何利用已有数据插值补充缺失数据
最佳答案
可以先确定你回归模型,然后再求对应插值点数据;当然模型够复杂,数据没有啥明显规律,可以考虑用神经网络训练数据
全部回答
在我做的大气污染报表系统中,由于原始数据缺失,经常出现一些负数或者0的大气浓度,导致最后生成的曲线很丑,会画到水平轴以下。将这些错误的数据当错缺失数据处理,需要采取一定的手段填充。缺失的数据采取插值法填充,这一点早就确定下来,但在如何实现上却困扰很久。 将原始问题简化一下。比如有这样一组数据。 id so co1 1 0.1 0.1 2 0 0.2 3 0.2 0 4 0 0 5 0 0.4 6 0.1 0.5 插值法计算方法如下:(也可以不使用这两个步骤,只要最后的结果一致就行) 步骤一:计算缺失值上下的已知值间的斜率: k = (b2 - b1)/(n + 1) n 为缺失数据的个数 步骤二:计算对应的缺失值 a(i) = b1 + k * i 经过处理后,得到的数据是这样的: 1 0.10 0.10 2 0.15 0.20 3 0.20 0.27 4 0.17 0.33 5 0.13 0.40 6 0.10 0.50 我最初的想法是:在sql语句中用for循环来做。逐条地检查每个数值,如果是0,那么获取它的前一个记录的值b1,然后再继续向后遍历,获取后面一个非0的值b2,计算这两个非0数据之间的距离n,之后再用插值法将缺失的数据计算出来,并update到b1和b2之间的每一个值。按照这个思路,很麻烦,比如遍历过程中如何获取前一个数值?出现0的时候,如何记录出现多少个0?for循环经过后,再如何update之前的数值? 被这些问题困扰很久! 在论坛上发帖解决,解决的办法很受启发。 1. 创建一个函数 alter function fun_co(@id int) returns decimal(18, 3) as begin declare @num1 numeric(19,2),@id1 int,@num2 numeric(19,2),@id2 int select top 1 @id1=id , @num1=co from aprecord where id<=@id and co<>0 order by id desc select top 1 @id2=id , @num2=co from aprecord where id>=@id and co<>0 order by id asc if @id2<>@id1 return @num1+(((@num2-@num1)/(@id2-@id1))*(@id-@id1)) return @num1 end 2. 更新数据库 update aprecord set co=dbo.fun_co(id) where daytime >= @bdt and daytime < @edt 在这个解决方案中,首先查找到缺失的数据,也就是值为0的数据,然后向前查找非0数据@num1,以及它的编号@id1,向后查找非0的数据@num2. 以及编号@id2。也就是步骤一。然后用公式计算出填充的数据。将上述过程保存在一个函数中,在存储过程中调用。甚至不用for循环之类。 --------------------------------------------------------------------------------------- 启示: 1. 明确问题,记录下来,逐步地寻求解决方案。而不是全凭脑袋空想。脑袋很容易遗漏一些因素,而且大多数时候没什么条理,跳跃性太强。解决问题需要方法学。 2. 在sql下思考。用for循环什么的,还处于静态语言的思维模式之下。sql是一门艺术!思维转换,才能发挥出语言的最大功能。当然这需要长时间的锻炼。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有什么好的情人节祝福短信。。。有发给单身。
除了外国货币、外币支票、汇票、本票、存单等
前双龙泉地址有知道的么?有点事想过去
今天过年,我的一个同班她是个女生,给我发了
密汁山约的做法
智付支付是干嘛用的?
女人为什么越宠脾气越大啊
逆战观察者怎么发全体
中国医药集团金堂单采血浆站地址在哪,我要去
听说腾讯新推出了腾讯金融科技品牌,能否科普
我一个月打彩票输了所有积蓄,现在连吃饭钱没
方力大酒店地址有知道的么?有点事想过去
弈剑听雨阁弟子世代守护的塔是什么
做梦梦到喜欢的女生的男朋友以一种恐怖的方式
陈绮贞歌词的含义
推荐资讯
现代瑞纳调试镜子在哪里?
福海小渔村怎么去啊,有知道地址的么
聚友川味馆这个地址在什么地方,我要处理点事
有四句话,其中有一句大概是"莫在浅滩什么什么
去寺庙求的红绳不带了怎么处理
盒式封口机全自动的每小时可以封口多少?
池州贵航钢材质量怎么样
怎么删除前两页的页眉
一个简单的PLC程序我想问问
烤火炉燃气不完全
古城往事茶楼休闲会所地址有知道的么?有点事
秋冬适合喝什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?