注:以上数据来自imputeTS库的tsAirgap;插补数据被标红。
- library(imputeTS)
-
- na.random(mydata) # Random Imputation
- na.locf(mydata, option = "locf") # Last Obs. Carried Forward
- na.locf(mydata, option = "nocb") # Next Obs. Carried Backward
- na.interpolation(mydata) # Linear Interpolation
- na.seadec(mydata, algorithm = "interpolation") # Seasonal Adjustment then Linear Interpolation
四、均值,中位数与众数
计算整体均值、中位数或众数是一种非常基本的插补方法,它是唯一没有利用时间序列特征或变量关系的测试函数。该方法计算起来非常快速,但它也有明显的缺点。其中一个缺点就是,均值插补会减少数据的变化差异(方差)。
- library(imputeTS)
-
- na.mean(mydata, option = "mean") # Mean Imputation
- na.mean(mydata, option = "median") # Median Imputation
- na.mean(mydata, option = "mode") # Mode Imputation
-
- In Python
- from sklearn.preprocessing import Imputer
- values = mydata.values
- imputer = Imputer(missing_values=’NaN’, strategy=’mean’)
- transformed_values = imputer.fit_transform(values)
-
- # strategy can be changed to "median" and “most_frequent”
五、线性回归
首先,使用相关系数矩阵能够选出一些缺失数据变量的预测变量。从中选择最靠谱的预测变量,并将其用于回归方程中的自变量。缺失数据的变量则被用于因变量。自变量数据完整的那些观测行被用于生成回归方程;其后,该方程则被用于预测缺失的数据点。在迭代过程中,我们插入缺失数据变量的值,再使用所有数据行来预测因变量。重复这些步骤,直到上一步与这一步的预测值几乎没有什么差别,也即收敛。
该方法“理论上”提供了缺失数据的良好估计。然而,它有几个缺点可能比优点还值得关注。首先,因为替换值是根据其他变量预测的,他们倾向于“过好”地组合在一起,因此标准差会被缩小。我们还必须假设回归用到的变量之间存在线性关系——而实际上他们之间可能并不存在这样的关系。 (编辑:惠州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|