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,參見鏈接 。
剩餘步驟同此。