横向最小二乘拟合与纵向卡尔曼滤波方法

发布 2019-08-14 15:18:55 阅读 9979

产品质量是企业的生命线,售后服务是产品质量的观测点,如何用好售后服务的数据是现代企业管理的重要问题之一。

现以某轿车生产厂家为例考虑这个问题。假设该厂的保修期是三年,即在售出后三年中对于非人为原因损坏的轿车免费维修。在全国各地的维修站通过网络将保修记录送到统一的数据库里面,原始数据主要包含哪个批次生产的轿车(即生产月份)、售出时间、维修时间、维修部位、损坏原因及程度、维修费用等等。

通过这样的数据可以全面了解所有部件的质量情况,若从不同的需求角度出发科学整理数据库中的数据,可得到不同用途的信息,从而实现不同的管理目的。

整车或某个部件的“千车故障数”是一个很重要的指标,常用于描述轿车的质量。首先将轿车按生产批次划分成若干个不同的集合(下面**的同一行数据就来自同一集合),再对每个集合中迄今已售出的全部轿车进行统计,由于每个集合中的轿车是陆续售出的,因此它们的统计时间的起点即售出时间是不同的。但在下面**中,每一列数据的统计时间的长度却是相同的(例如2023年3月底出厂的轿车,到2023年8月底;或2023年10月初出厂的轿车,到2023年3月初都是最多使用了五个月,显然它们的统计时间的终点也是不同的),在相同使用时间长度(例如下表中第5列都是使用10个月的)内的整车或某个部件的保修总次数乘以1000再除以迄今已售出的轿车数量,即为下面**中的千车故障数。

数据利用的时效性是很强的,厂方希望知道近期生产中的质量情况,但刚出厂的轿车还没有全售出去,已售出的轿车也没使用几个月,因此数据显得滞后很多。当一个批次生产的轿车的三年保修期都到时,我们对这批轿车的质量情况有了最准确的信息,可惜时间是轿车出厂的。

四、五年后,这些信息已无法指导过去的生产,对现在的生产也没有什么作用。所以如何更科学地利用少量数据**未来情况是售后服务数据利用的重要问题。

现有2023年4月1日从数据库中整理出来的某个部件的千车故障数,见下页的表。其中的使用月数一栏是指售出轿车使用了的月份数,使用月数0的列中是已售出的全部轿车在用户没使用前统计的千车故障数,1的列中是某一批次已售出的每一辆轿车,在它被使用到第一个月结束时统计的,对于该批次售出的全部轿车累计的千车故障数(即没使用时和第一个月中千车故障数的和),12的列中是每辆车使用到恰好一年结束时的累计千车故障数。生产月份是生产批次,如0201表示2023年1月份生产的。

随着时间的推移,轿车不断地销售出去,已售出轿车使用一段时间后的千车故障数也能不断自动更新,再打印出的表中数据也将都有变化。

1. 该表是工厂的真实数据,没有修改,反映的情况很多,请你分析表中是否存在不合理数据,并对制表方法提出建议;

2.利用这个表的数据**时请注意区分水平和垂直方向。请你设计相应的模型与方法,并**:

0205批次使用月数18时的千车故障数,0306批次使用月数9时的千车故障数,0310批次使用月数12时的千车故障数。

轿车某部件千车故障数的数据表。

提示:1.**时用的数据表最好是增量表,就是把原表相邻列作差的到的表,含义是第几个月期间的千车故障数。**后再恢复到原表的形式。

2. 轿车出厂后的运输是个复杂的事,体积大又贵重,要花费很多时间,从表中数据分析可以得到:出厂后三个月才开始有销售量,于是每个批次的前三个数据(斜三列)可认为是无效数据。

采用横向最小二乘拟合与纵向卡尔曼滤波方法的联合**方法对原始数据处理进行处理:

数据处理步骤如下:

步骤1:基于分析结果2,出厂后三个月才有销售量。去除原始表中的斜三列中得数据。结果如下:

表二去除斜三列后数据表(节选)

步骤2:表的修正

1) 原始的千车故障数1

修正后的千车故障数2

以0205批次使用月数为10个月解释式2分母的“满足使用月数条件的售出量”,0205批次的汽车要到2023年09月份才有销售量,而在2023年6月份以后的售出量(不包括该月)到2023年03月份为止的使用月数还不到10个月,因此满足月数条件的售出量是2023年09月到2023年06月份的销售量。

2) 比较上面1和2式,发现两式的的共同之处在于有一样的“故障部件数”,又基于每月销售量相同的假设下,不难得出由原始的千车故障数向修正的千车故障数的转化与总销售量无关,仅仅与月数有关,关系如下。

修正后的千车故障数=原始的千车故障数。

3) 修正算法。

总销售月数为24-; 前三个月没有销售量)

满足条件的月数25--。

修正算法如下:

for =1:24

for =1:13

if +<25

注意:使用月数-1不是//

else 0 //**中的空数据赋为0//

由该算法得到的修正数据见附表1。

步骤3:对表中的列作残差,也即把原来相邻的列作差得到新的增量表,表示第几个月期间的千车故障数。

步骤4:基于分析结果1,去掉=13的行。(见附表2)至此在以后的**计算中,0301批次以后的数据都向上挪一行,例如,**0306批次时, =17,**0310批次时=21。

步骤5:表内数据的横向最小二乘拟合与纵向卡尔曼(kalman)滤波方法的联合**。

对于修正后的差分表,同一个批次在相邻月份内发生的千车故障率必然有相关系数,而且故障率可以认为是线性关系,因此横向采取线性最小二乘拟合未知的故障数,再在此基础上运用纵向kalman滤波对拟合后的数据进行除噪处理,从而降低了数据的误差。例如,对于(0212,13)未知“故障数”用(0212,0)(0212,1)….0212,12)数据线性最小二乘法拟合得到,然后通过对(0201,13),(0202,13)…(0211,13),(0212,13)进行kalaman滤波分析修正最小二乘法拟合得到的(0212,13)值。

表三横向最小二乘拟合与纵向卡尔曼滤波方法的联合**顺序表。

具体处理过程如下:

1) 从空表项的最上的一条对角线开始。用最小二乘法拟合0302批次使用月数为10的数据(=13, =11)

2) 用纵向滤波对(=13, =11)的数据进行除噪处理,得到修正值。