此处同 I 2 I^2 I2统计量的预处理方法,见链接。下文部分未申明的变量均可在预处理部分找到含义。
注:此部分原理比较复杂,以下总结可能会存在错误。
(1)
随机选择d维空间(与FastICA中选择维度数一致)的h个单位列向量(对随机向量进行单位化可得到随机的单位向量),h一般250左右即可(再大可能无明显增益),组成矩阵H:
H = ( v 1 , v 2 , . . . v h ) T {\rm{H = (}}{v_1},{v_2},...{v_h}{{\rm{)}}^{\rm{T}}} H=(v1,v2,...vh)T
(2)
对某从小到大排列的向量 x ⃗ n {{\rm{\vec x}}_{\rm{n}}} xn的中位数计算方案,定义为med,即:
m e d ( x ⃗ n ) = { ( x n / 2 + x ( x / 2 ) + 1 ) / 2      i f    n    i s    e v e n x ( n + 1 ) / 2                                          i f    n    i s    o d d {\rm{med(}}{{\rm{\vec x}}_{\rm{n}}}{\rm{) = }}\left\{ \begin{array}{l} ({x_{n/2}} + {x_{(x/2) + 1}})/2{\rm{\;\;if\;}}n{\rm{\;is\;even}}\\ {x_{(n + 1)/2}}{\rm{\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;if\;}}n{\rm{\;is\;odd}} \end{array} \right. med(xn)={(xn/2+x(x/2)+1)/2ifnisevenx(n+1)/2ifnisodd
含义就是,若长度为偶数,用中间两个数的均值作为中位数,若长度为奇数,用中间那个数作为中位数。
(3)
对某从小到大排列的向量 x ⃗ n {{\rm{\vec x}}_{\rm{n}}} xn(向量中元素个数为n),其四分位数计算方案如下:
Q 1 Q_1 Q1是第一 四分位数, Q 3 Q_3 Q3是第三 四分位数,IQR是四分位距:
Q 1 ( x ⃗ n ) = x ⃗ i n t ( n ∗ 0.25 ) {{\rm{Q}}_1}({\vec x_n}) = {{\rm{\vec x}}_{{\mathop{\rm int}} (n*0.25)}} Q1(xn)=xint(n∗0.25)
Q 3 ( x ⃗ n ) = x ⃗ i n t ( n ∗ 0.75 ) {{\rm{Q}}_3}({\vec x_n}) = {{\rm{\vec x}}_{{\mathop{\rm int}} (n*0.75)}} Q3(xn)=xint(n∗0.75)
I Q R ( x ⃗ n ) = Q 3 ( x ⃗ n ) − Q 1 ( x ⃗ n ) IQR({\vec x_n}) = {Q_3}({\vec x_n}) - {Q_1}({\vec x_n}) IQR(xn)=Q3(xn)−Q1(xn)
注:上面定义的med中位数,可以看成是这里的第二 四分位数。
(4)
medcouple计算方法,记为MC:
M C ( x ⃗ ) = m e d x i ≤ m e d ( x ⃗ ) ≤ x j h ( x i , x j ) {\rm{MC}}({\rm{\vec x}}) = \mathop {{\rm{med}}}\limits_{{x_i} \le {\rm{med}}({\rm{\vec x}}) \le {x_j}} h({x_i},{x_j}) MC(x)=xi≤med(x)≤xjmedh(xi,xj)
其中,核函数 h ( x i , x j ) h({x_i},{x_j}) h(xi,xj)计算方法:
当 x i ≠ x j {x_i} \ne {x_j} xi̸=xj时:
h ( x i , x j ) = ∣ ( x j − m e d ( x ⃗ ) ) − ( x i − m e d ( x ⃗ ) ) ∣ x j − x i h({x_i},{x_j}){\rm{ = }}\frac{{\left| {({x_j} - med({\rm{\vec x}})) - ({x_i} - med(\vec x))} \right|}}{{{x_j} - {x_i}}} h(xi,xj)=xj−xi∣(xj−med(x))−(xi−med(x))∣
当 x i = m e d ( x ⃗ ) = x j {x_i}{\rm{ = med}}({\rm{\vec x}}){\rm{ = }}{x_j} xi=med(x)=xj,设从小到大的向量 x ⃗ n {{\rm{\vec x}}_{\rm{n}}} xn中,存在
x b + 1 = x b + 2 = . . . = x b + i = . . . = x b + j = x b + k = m e d ( x ⃗ ) {x_{b + 1}} = {x_{b + 2}} = ... = {x_{b + i}} = ... = {x_{b + j}} = {x_{b + k}} = med({\rm{\vec x}}) xb+1=xb+2=...=xb+i=...=xb+j=xb+k=med(x)
共k个元素与 m e d ( x ⃗ ) {\rm{med}}({\rm{\vec x}}) med(x)相等,则:
h ( x b + i , x b + j ) = { − 1 , i f      i + j − 1 < k        0 , i f      i + j − 1 = k + 1 , i f      i + j − 1 > k h({x_{b + i}},{x_{b + j}}){\rm{ = }}\left\{ \begin{array}{l} {\rm{ - 1, if\;\;}}i + j - {\rm{1 < }}k\\ {\rm{ \;\;\;0 , if\;\;}}i + j - {\rm{1 = }}k\\ {\rm{ + 1, if\;\;}}i + j - {\rm{1 > }}k \end{array} \right. h(xb+i,xb+j)=⎩⎨⎧−1,ifi+j−1<k0,ifi+j−1=k+1,ifi+j−1>k
可以证明 h ( x i , x j ) ∈ [ − 1 , 1 ] h({x_i},{x_j}) \in [ - 1,1] h(xi,xj)∈[−1,1]。
注:statsmodels库提供了medcouple计算函数,并且最新版修复了一个小误差。
(5)
向量 x ⃗ n {{\rm{\vec x}}_{\rm{n}}} xn的边界 c 1 c_1 c1和 c 2 c_2 c2(与箱型图有关的一个量)的计算方法:
[ c 1 ( x ⃗ n ) , c 2 ( x ⃗ n ) ] = [ Q 1 − 1.5 e − 3.5 M C I Q R    ,    Q 3 + 1.5 e 4 M C I Q R ] i f    M C ( x ⃗ n ) ≥ 0 [{c_1}({{\rm{\vec x}}_{\rm{n}}}),{c_2}({{\rm{\vec x}}_{\rm{n}}})] = \left[ {{{\rm{Q}}_1} - 1.5{e^{ - 3.5MC}}IQR{\rm{\;,\;}}{Q_3} + 1.5{e^{4MC}}IQR} \right]{\rm{ if\;MC}}({{\rm{\vec x}}_{\rm{n}}}) \ge {\rm{0}} [c1(xn),c2(xn)]=[Q1−1.5e−3.5MCIQR,Q3+1.5e4MCIQR]ifMC(xn)≥0
[ c 1 ( x ⃗ n ) , c 2 ( x ⃗ n ) ] = [ Q 1 − 1.5 e − 4 M C I Q R    ,    Q 3 + 1.5 e 3.5 M C I Q R ] i f    M C ( x ⃗ n ) ≤ 0 [{c_1}({{\rm{\vec x}}_{\rm{n}}}),{c_2}({{\rm{\vec x}}_{\rm{n}}})] = \left[ {{{\rm{Q}}_1} - 1.5{e^{ - 4MC}}IQR{\rm{\;,\;}}{Q_3} + 1.5{e^{3.5MC}}IQR} \right]{\rm{ if\;MC}}({{\rm{\vec x}}_{\rm{n}}}) \le {\rm{0}} [c1(xn),c2(xn)]=[Q1−1.5e−4MCIQR,Q3+1.5e3.5MCIQR]ifMC(xn)≤0
注:上述 Q 1 Q_1 Q1肯定是向量 x ⃗ n {{\rm{\vec x}}_{\rm{n}}} xn的 Q 1 Q_1 Q1值啦,其他类推。
(6)
向量 x ⃗ n {{\rm{\vec x}}_{\rm{n}}} xn的拒绝策略:
c u t o f f ( x ⃗ ) = { Q 3 ( x ⃗ ) + 1.5 e 4 M C ( x ⃗ ) I Q R ( x ⃗ )      i f      M C ( x ⃗ ) ≥ 0 Q 3 ( x ⃗ ) + 1.5 e 3 . 5 M C ( x ⃗ ) I Q R ( x ⃗ )      i f      M C ( x ⃗ ) ≤ 0 {\rm{cutoff(}}\vec x{\rm{)}} = \left\{ \begin{array}{l} {Q_3}(\vec x) + 1.5{{\rm{e}}^{{\rm{4MC(\vec x)}}}}IQR(\vec x){\rm{\;\;if\;\;MC(}}\vec x{\rm{)}} \ge {\rm{0}}\\ {Q_3}(\vec x) + 1.5{{\rm{e}}^{{\rm{3}}{\rm{.5MC(\vec x)}}}}IQR(\vec x){\rm{\;\;if \;\;MC(}}\vec x{\rm{)}} \le {\rm{0}} \end{array} \right. cutoff(x)={Q3(x)+1.5e4MC(x)IQR(x)ifMC(x)≥0Q3(x)+1.5e3.5MC(x)IQR(x)ifMC(x)≤0
(7)
最为关键的AO统计量的计算公式啦啦啦:
矩阵 X = ( x ⃗ 1 , . . . , x ⃗ i , . . . , x ⃗ n ) T {\rm{X = (}}{\vec x_1},...,{\vec x_i},...,{\vec x_n}{{\rm{)}}^T} X=(x1,...,xi,...,xn)T的中任一个样本向量 x ⃗ i {\vec x_i} xi的AO值计算方法:
A O ( x ⃗ i , X ) = max v ∈ H ∣ x ⃗ i T v − m e d ( X v ) ∣ ( c 2 ( X v ) − m e d ( X v ) ) I [ x ⃗ i T v > m e d ( X v ) ] + ( m e d ( X v ) − c 1 ( X v ) ) I [ x ⃗ i T v < m e d ( X v ) ] {\rm{AO(}}{\vec x_i},{\rm{X) = }}\mathop {\max }\limits_{v \in H} \frac{{\left| {\vec x_i^Tv - med({\rm{X}}v)} \right|}}{{({c_2}({\rm{X}}v) - med({\rm{X}}v))I[\vec x_i^Tv > med({\rm{X}}v)] + (med({\rm{X}}v) - {c_1}({\rm{X}}v))I[\vec x_i^Tv < med({\rm{X}}v)]}} AO(xi,X)=v∈Hmax(c2(Xv)−med(Xv))I[xiTv>med(Xv)]+(med(Xv)−c1(Xv))I[xiTv<med(Xv)]∣∣xiTv−med(Xv)∣∣
其中, I [ ⋅ ] {I[·]} I[⋅]表示当内部条件成立时,该函数结果为1,否则为0。(暂不清楚为何上式内部条件中没有考虑等于号,实现该函数时,个人觉得可以把等于的情况归于大于号,即变成大于等于号。)
同 I 2 I^2 I2统计量的控制限一样,采用KDE法求取,参见链接。
首先,经过FastICA变换,得到n个样本的所有源信号s(d维)组成的源矩阵:
S ( n ∗ d ) = X n ∗ m W d ∗ m T = ( s 1 ( d ∗ 1 ) , . . . , s n ( d ∗ 1 ) ) T {{\rm{S}}_{{\rm{(n*d)}}}}{\rm{ = }}{{\rm{X}}_{{\rm{n*m}}}}{\rm{W}}_{{\rm{d*m}}}^T = {({s_{1(d*1)}},...,{s_{n(d*1)}})^{\rm{T}}} S(n∗d)=Xn∗mWd∗mT=(s1(d∗1),...,sn(d∗1))T
求取S所有样本向量的AO值:
A O ( S ) = [ A O ( s 1 , S ) , . . . , A O ( s i , S ) , . . . , A O ( s n , S ) ] T {\rm{AO(S) = [AO(}}{s_{\rm{1}}}{\rm{,S)}},...,{\rm{AO(}}{s_i}{\rm{,S),}}...{\rm{,AO(}}{s_{\rm{n}}}{\rm{,S)}}{{\rm{]}}^T} AO(S)=[AO(s1,S),...,AO(si,S),...,AO(sn,S)]T
求取AO向量的cutoff值:
c u t o f f = c u t o f f ( A O ( S ) ) {\rm{cutoff = cutoff(AO(S))}} cutoff=cutoff(AO(S))
若 A O ( s i ) > c u t o f f {\rm{AO(}}{{\rm{s}}_i}{\rm{) > cutoff}} AO(si)>cutoff,则将训练集样本 X n ∗ m X_{n*m} Xn∗m中的 x ⃗ i {\vec x_i} xi标记为极端值。
从X中剔除掉所有极端值,得到 X r o b u s t X_{robust} Xrobust,重新进行FastICA,得到 S r o b u s t {S_{robust}} Srobust。
计算 S r o b u s t S_{robust} Srobust的AO值向量:
A O ( S r o b u s t ) {\rm{AO(}}{{\rm{S}}_{{\rm{robust}}}}{\rm{)}} AO(Srobust)
采用KDE估计此AO向量的概率密度函数,并求取置信区间,记控制限求取结果为 A O α {AO}_{\alpha} AOα
对于新的样本矩阵 X n e w X_{new} Xnew,采用上述第二次FastICA的参数(包括均值化和变换矩阵等参数)对其进行FastICA变换,得到 S n e w = ( s ⃗ 1 , . . . , s ⃗ i , . . . , s ⃗ n ) T {{\rm{S}}_{{\rm{new}}}}{\rm{ = (}}{\vec s_{\rm{1}}}{\rm{,}}...{\rm{,}}{\vec s_i}{\rm{,}}...{\rm{,}}{\vec s_n}{{\rm{)}}^T} Snew=(s1,...,si,...,sn)T,然后求取AO值(注意新样本,与训练样本此公式的异同):
A O ( s ⃗ i , S r o b u s t ) = max v ∈ H ∣ s ⃗ i T v − m e d ( S r o b u s t v ) ∣ ( c 2 ( S r o b u s t v ) − m e d ( S r o b u s t v ) ) I [ s ⃗ i T v > m e d ( S r o b u s t v ) ] + ( m e d ( S r o b u s t v ) − c 1 ( S r o b u s t v ) ) I [ s ⃗ i T v < m e d ( S r o b u s t v ) ] {\rm{AO(}}{\vec s_i}{\rm{,}}{{\rm{S}}_{{\rm{robust}}}}{\rm{) = }}\mathop {\max }\limits_{v \in H} \frac{{\left| {\vec s_i^Tv - med({{\rm{S}}_{{\rm{robust}}}}v)} \right|}}{{({c_2}({{\rm{S}}_{{\rm{robust}}}}v) - med({{\rm{S}}_{{\rm{robust}}}}v))I[\vec s_i^Tv > med({{\rm{S}}_{{\rm{robust}}}}v)] + (med({{\rm{S}}_{{\rm{robust}}}}v) - {c_1}({{\rm{S}}_{{\rm{robust}}}}v))I[\vec s_i^Tv < med({{\rm{S}}_{{\rm{robust}}}}v)]}} AO(si,Srobust)=v∈Hmax(c2(Srobustv)−med(Srobustv))I[siTv>med(Srobustv)]+(med(Srobustv)−c1(Srobustv))I[siTv<med(Srobustv)]∣∣siTv−med(Srobustv)∣∣
如果系统正常运行,新样本 x i x_i xi的AO值,应满足 A O ( s ⃗ i ) < A O α {\rm{AO}}({\vec s_i}) < {\rm{A}}{{\rm{O}}_\alpha } AO(si)<AOα,反之,认为出现故障。
Brys, G, M Hubert和A Struyf. 《A Robust Measure of Skewness》. Journal of Computational and Graphical Statistics 13, 期 4 (2004年12月): 996–1017. https://doi.org/10.1198/106186004X12632.
Brys, G., M. Hubert和P. J. Rousseeuw. 《A Robustification of Independent Component Analysis》. Journal of Chemometrics 19, 期 5–7 (2005年5月): 364–75. https://doi.org/10.1002/cem.940.
Hsu, Chun-Chin, Mu-Chen Chen和Long-Sheng Chen. 《A Novel Process Monitoring Approach with Dynamic Independent Component Analysis》. Control Engineering Practice 18, 期 3 (2010年3月): 242–53. https://doi.org/10.1016/j.conengprac.2009.11.002.
Lee, Jong-Min, ChangKyoo Yoo和In-Beum Lee. 《Statistical process monitoring with independent component analysis》. Journal of Process Control 14, 期 5 (2004年8月1日): 467–85. https://doi.org/10.1016/j.jprocont.2003.09.004.
X(l)生成过程同DPCA,参见链接。
剩余步骤同此。