ICA+AO统计量
数据预处理
此处同I 2 I^2 I 2 统计量的预处理方法,见链接 。下文部分未申明的变量均可在预处理部分找到含义。
AO统计量的计算
注:此部分原理比较复杂,以下总结可能会存在错误 。
必备公式
(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 = ( v 1 , v 2 , . . . v h ) T
(2)
对某从小到大排列的向量x ⃗ n {{\rm{\vec x}}_{\rm{n}}} x n 的中位数计算方案,定义为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.
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
含义就是,若长度为偶数,用中间两个数的均值作为中位数,若长度为奇数,用中间那个数作为中位数。
(3)
对某从小到大排列的向量x ⃗ n {{\rm{\vec x}}_{\rm{n}}} x n (向量中元素个数为n),其四分位数计算方案如下:
Q 1 Q_1 Q 1 是第一 四分位数,Q 3 Q_3 Q 3 是第三 四分位数,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)}}
Q 1 ( x n ) = x i n t ( n ∗ 0 . 2 5 )
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)}}
Q 3 ( x n ) = x i n t ( n ∗ 0 . 7 5 )
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})
I Q R ( x n ) = Q 3 ( x n ) − Q 1 ( x n )
注:上面定义的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})
M C ( x ) = x i ≤ m e d ( x ) ≤ x j m e d h ( x i , x j )
其中,核函数h ( x i , x j ) h({x_i},{x_j}) h ( x i , x j ) 计算方法:
当x i ≠ x j {x_i} \ne {x_j} x i ̸ = x j 时:
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 ( x i , x j ) = x j − x i ∣ ( x j − m e d ( x ) ) − ( x i − m e d ( x ) ) ∣
当x i = m e d ( x ⃗ ) = x j {x_i}{\rm{ = med}}({\rm{\vec x}}){\rm{ = }}{x_j} x i = m e d ( x ) = x j ,设从小到大的向量x ⃗ n {{\rm{\vec x}}_{\rm{n}}} x n 中,存在
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}})
x b + 1 = x b + 2 = . . . = x b + i = . . . = x b + j = x b + k = m e d ( x )
共k个元素与m e d ( x ⃗ ) {\rm{med}}({\rm{\vec x}}) m e d ( 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 ( 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 i , x j ) ∈ [ − 1 , 1 ] h({x_i},{x_j}) \in [ - 1,1] h ( x i , x j ) ∈ [ − 1 , 1 ] 。
注:statsmodels库提供了medcouple计算函数,并且最新版修复了一个小误差。
(5)
向量x ⃗ n {{\rm{\vec x}}_{\rm{n}}} x n 的边界c 1 c_1 c 1 和c 2 c_2 c 2 (与箱型图有关的一个量)的计算方法:
[ 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}}
[ 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 ( 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}}
[ 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
注:上述Q 1 Q_1 Q 1 肯定是向量x ⃗ n {{\rm{\vec x}}_{\rm{n}}} x n 的Q 1 Q_1 Q 1 值啦,其他类推。
(6)
向量x ⃗ n {{\rm{\vec x}}_{\rm{n}}} x n 的拒绝策略:
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.
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
(7)
最为关键的AO统计量的计算公式啦啦啦:
矩阵X = ( x ⃗ 1 , . . . , x ⃗ i , . . . , x ⃗ n ) T {\rm{X = (}}{\vec x_1},...,{\vec x_i},...,{\vec x_n}{{\rm{)}}^T} X = ( x 1 , . . . , x i , . . . , x n ) T 的中任一个样本向量x ⃗ i {\vec x_i} x i 的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)]}}
A O ( x i , X ) = v ∈ H max ( 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 ) ] ∣ ∣ x i T v − m e d ( X v ) ∣ ∣
其中,I [ ⋅ ] {I[·]} I [ ⋅ ] 表示当内部条件成立时,该函数结果为1,否则为0。(暂不清楚为何上式内部条件中没有考虑等于号,实现该函数时,个人觉得可以把等于的情况归于大于号,即变成大于等于号。)
AO统计量的控制限
同I 2 I^2 I 2 统计量的控制限一样,采用KDE法求取,参见链接 。
将AO统计量应用于故障诊断的步骤
首先,经过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 ) = X n ∗ m W d ∗ m T = ( s 1 ( d ∗ 1 ) , . . . , s n ( 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}
A O ( S ) = [ A O ( s 1 , S ) , . . . , A O ( s i , S ) , . . . , A O ( s n , S ) ] T
求取AO向量的cutoff值:
c u t o f f = c u t o f f ( A O ( S ) )
{\rm{cutoff = cutoff(AO(S))}}
c u t o f f = c u t o f f ( A O ( S ) )
若A O ( s i ) > c u t o f f {\rm{AO(}}{{\rm{s}}_i}{\rm{) > cutoff}} A O ( s i ) > c u t o f f ,则将训练集样本X n ∗ m X_{n*m} X n ∗ m 中的x ⃗ i {\vec x_i} x i 标记为极端值。
从X中剔除掉所有极端值,得到X r o b u s t X_{robust} X r o b u s t ,重新进行FastICA,得到S r o b u s t {S_{robust}} S r o b u s t 。
计算S r o b u s t S_{robust} S r o b u s t 的AO值向量:
A O ( S r o b u s t )
{\rm{AO(}}{{\rm{S}}_{{\rm{robust}}}}{\rm{)}}
A O ( S r o b u s t )
采用KDE估计此AO向量的概率密度函数,并求取置信区间,记控制限求取结果为A O α {AO}_{\alpha} A O α
对于新的样本矩阵X n e w X_{new} X n e w ,采用上述第二次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} S n e w = ( s 1 , . . . , s i , . . . , s n ) 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)]}}
A O ( s i , S r o b u s t ) = v ∈ H max ( 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 ) ] ∣ ∣ s i T v − m e d ( S r o b u s t v ) ∣ ∣
故障判定
如果系统正常运行,新样本x i x_i x i 的AO值,应满足A O ( s ⃗ i ) < A O α {\rm{AO}}({\vec s_i}) < {\rm{A}}{{\rm{O}}_\alpha } A O ( s i ) < A O α ,反之,认为出现故障。
参考文献
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 .
DICA+AO统计量
X(l )生成过程同DPCA,参见链接 。
剩余步骤同此。