主要内容

处理丢失的数据和异常值

处理缺失数据

数据采集失败有时会导致输入和输出信号丢失测量值。当您使用MATLAB导入包含缺失值的数据时®导入向导,这些值会自动设置为作为不存在或未定义数据的标志。当在包含缺失值的时间图上绘制数据时,在存在缺失数据的图上会出现空白。

您可以使用错误数据估计缺失值。这个命令线性地插入缺失的值来估计第一个模型。然后,利用该模型对缺失数据进行参数估计,使重构数据的输出预测误差最小。属性中可以指定要使用的模型结构错误数据参数或估计默认顺序模型n4sid方法。有关更多信息,请参见错误数据参考页面。

请注意

你只能使用错误数据在时域数据中存储iddata对象。有关创建的更多信息iddata对象,看到使用iddata对象表示时域和频域数据

例如,假设yu输出和输入信号是否包含该数据取样于0.2下面的语法创建一个新的iddata对象的输入和输出信号。

dat = iddata(y,u,0.2) % y和u包含nan %表示丢失的数据

应用错误数据命令更改为新的数据对象。例如:

dat1 =错误数据(dat);plot(dat,dat1) %检查丢失的数据%是如何在时间图上估计的

处理离群值

故障会在测量值中产生错误,称为离群值.这些异常值可能是由信号尖峰或测量故障引起的。如果不从数据中去除离群值,则会对估计的模型产生不利影响。

为了识别异常值的存在,执行以下任务之一:

  • 在估计模型之前,将数据绘制在时间图上,并确定超出范围的值。

  • 在估计模型后,绘制残差并识别异常大的值。有关绘制残差的详细信息,请参阅残留分析页面。评估造成较大残差的原始数据。例如,对于模型模型和验证数据数据,可以使用以下命令绘制残差:

%计算残差E =残差(数据,模型)%绘制残差图(E)

接下来,尝试以下技巧来消除或最小化离群值的影响:

  • 将信息数据部分提取成段,并合并到一个多实验数据集(见提取和建模特定的数据段).有关选择和提取数据段的详细信息,请参见选择数据子集

    提示

    每个数据段的输入必须持续地激励系统。对于稳态数据,将数据分割成有意义的段可以减少信息损失。避免使数据段过小。

  • 手动替换异常值为S,然后用错误数据命令重建标记的数据。这种方法将异常值视为丢失的数据,并在处理缺失数据.当您的数据包含多个输入和输出,并且难以在所有变量中找到可靠的数据段时,请使用此方法。

  • 通过对高频内容的数据进行预过滤来去除异常值,因为异常值通常是由突变引起的。有关筛选的更多信息,请参见过滤数据

请注意

估计算法可以通过给离群数据分配较小的权重来处理离群数据。鲁棒误差准则应用一个误差惩罚,对于小的和中等的预测误差是二次的,对于大的预测误差是线性的。由于离群值会产生较大的预测误差,因此该方法在模型估计过程中给予相应数据点较小的权重。设置ErrorThreshold估计选项(见先进。ErrorThreshold例如,在polyestOptions)为非零值,以激活对估计算法中的异常值的校正。

另请参阅

要了解更多关于处理缺失数据和离群值的理论,请参阅系统识别:用户的理论,第二版,Lennart Ljung, Prentice Hall PTR, 1999。