插值法补齐缺失数据_填补宏观数据缺失值的两种方法及Python实现

本文探讨了处理宏观经济数据缺失值的两种方法:插值法(线性、二阶和三阶样条)和回归法。通过Python实现,以固定资产投资价格指数为例,展示如何应用这些方法。插值法能较好地填补数据,但对样本外数据效果不佳;回归法利用高频变量(如PPI)进行插补,虽能捕捉趋势但可能与原始数据存在偏离。对于样本外插值,建议结合两种方法。
摘要由CSDN通过智能技术生成

bcc832f51b703e912e0d3e7ce34b154a.png

在处理宏观经济数据时,经常会遇到缺失值问题。在本文中,我们以固定资产投资价格指数为例,讨论填补缺失值的两种方法,及其Python实现。

通过简单分析原始数据,可以看到,固定资产投资价格指数,在1998年6月至2002年12月,是每半年发布一次。自2003年初至2019年12月,是每季度发布一次。我们希望获得月度的固定资产投资价格指数,从而对月度的固定资产投资数据进行价格折现。

b67cf9d1a5b88691c90ee99d2e1b6978.png一、插值法—scipy包的interpolate模块

scipy包的interpolate模块,可以使用线性或者二阶和三阶的样条曲线,对缺失值进行插补。插补分成两个步骤:

  • 基于有取值的样本,拟合插补函数
  • 将插补函数,应用于所有样本点

Python代码如下:

from scipy.interpolate import interp1d # 提取有取值的样本 _FAIPriceIndex = FAIPriceIndex.reset_index() x = np.array(_FAIPriceIndex[_FAIPriceIndex['M0012976'].notnull()].index) y = np.array(_FAIPriceIndex[_FAIPriceIndex['M0012976'].notnull()]['M0012976']) xnew = np.array(_FAIPriceIndex.index) # 拟合插值函数 f1 = interp1d(x,y) f2 = interp1d(x, y, kind='quadratic') f3 = interp1d(x, y, kind='cubic') # 对全序列插补 _FAIPriceIndex = pd.DataFrame([f1(x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值