信号の急激な増加と大幅な変化の検出
この例では,累積和と変化点検出による信号の変化または急激な発生の特定方法を説明します。
累積和による急激な増加の検出
データを監視し,基本的な過程に変化があったときにできる限り迅速に警告を受けたい,というような実際的応用事例は数多くあります。これを行う非常に一般的な手法として,累積和(cusum)管理図の使用があります。
Cusumの機能を説明するため,はじめに,疾病控制和预防中心によって記録された,2014年に西アフリカで発生したエボラ大流行の全報告例を検証します。
负载WestAfricanEbolaOutbreak2014plot(WHOreportdate,[几内亚病例总数利比里亚病例总数塞拉利昂],“。”)传说(几内亚的,利比里亚的,“狮子山”)标题(“埃博拉病毒病疑似、疑似和确诊病例总数”)
ギニアにおける大流行の先端部を見てみると,2014年3月25日頃に最初の100例が報告され,その日以後,大幅に件数が増加したことがわかります。興味深いのは3月にはリベリアにも少数の疑い例があるものの,発生件数は約30日後まで比較的抑制されていたという点です。
新しい患者の発生率を感覚的に把握するために,2014年3月25日を開始時点として,合計症例数の日々の相対的変動をプロットします。
daysSinceOutbreak = datetime(2014, 3,24 +(0:400));cases = interp1(WHOreportdate, TotalCasesLiberia, days since inceoutbreak);dayOverDayCases = diff(cases);情节(dayOverDayCases)标题(2014年3月25日以来利比里亚新增病例(每天));ylabel (“每日报告病例数的变化”);包含(“从爆发开始算起的天数”);
最初の100日間のデータを拡大すると,初期には症例数が急増しているものの,それらの多くは30日目の後に排除されており,変化率は一時的に0未満に低下しています。また,95日目と100日目の間には著しい上昇トレンドが示されています。ここでは,1日あたりの新規発症件数の割合が7件に達しています。
xlim(101年[1])
入力データに対してCUSUMテストを実行すると,急激な増加発生のタイミングを簡単に特定できる場合があります。CUSUMは,局所的な平均が上向きに変化するタイミングを検出する上位の和と,平均が下向きに変化するタイミングを検出する下位の和の2種類の累積和を追跡します。CUSUMには,積分手法によって入力レートにおける大きな(過渡的な)スパイクを無視する機能がありますが,より安定した小さいレートの変化に対する感度は維持されます。
既定の引数でCUSUMを呼び出すと,最初の25サンプルのデータを検査し,初期データ内から5標準偏差を超える平均の変化を検知すると警告を発します。
cusum (dayOverDayCases(1:10 1)传说(“上金额”,和较低的)
CUSUMは,30日目(33日目)の誤った報告件数を捕捉し,80日目(90日目)に始まる急激な増加の最初の発生を検出していることに注意してください。これらの結果を前のプロットと注意深く比較すると,CUSUMは,29日目の誤った上昇を無視する一方で,95日目に始まる大きな上昇トレンドの5日前に警告を発することが可能であったことがわかります。
ターゲット平均値0件/日とターゲット±3件/日を与えてCUSUMを調整すると,30日目の誤検出警報を無視し,かつ92日目の急激な増加を検出することができます。
气候= 5;Mshift = 1;Tmean = 0;Tdev = 3;cusum (dayOverDayCases(1:10 0)、climit mshift, tmean, tdev)
分散の著しい変化の検出
統計量の急激な変化を検出するもう1の方法は,変化点の検出を使用するものです。この方法では,各セグメント内において統計量(平均,分散,勾配など)が一定な隣接したセグメントに信号を分割します。
次の例では,カイロに近いローダ島の水位計で測定された西暦622年から1281年のナイル川の年間最低水位を解析します。
负载水位计年份= 622:1284;情节(年,nileriverminima)标题(“尼罗河年最低水位”)包含(“年”) ylabel (“水平(m)”)
西暦715年頃に,より新しく正確な測定機器の製作が始まりました。これ以前についてあまり多くのことは知られていませんが,さらに詳しく調べてみると,722年頃以降の変動性が大幅に低下していることがわかります。新しい機器が使用されるようになった期間を特定するため,要素単位の微分を行って変化の緩やかなトレンドを除去した後で,平方根平均二乗水位における最良の変化を探索します。
I = findchangepts(diff(nileriverminima),“统计”,“rms”);Ax = gca;Xp =[年(i) ax。XLim([2 2])年(i)];Yp = ax。YLim([1 1 2 2]);补丁(xp, yp,[。5 .5 .5],“FaceAlpha”, 0.1)
サンプル単位の微分はトレンドを除去する簡単な方法ですが,この他,より大きなスケールで分散を調査する高度な方法もあります。このデ,タセットを使用した,ウェ,ブレットによる変化点検出の実行方法の例に,小波变换点检测(小波工具箱)を参照してください。
入力信号における複数の変化の検出
次の例は1間女士隔でサンプリングされたCR-CR 4速トランスミッションブロックの45秒間のシミュレーションを扱っています。自動車のエンジン速度とトルクのシミュレ,ションデ,タは次のとおりです。
负载simcarsigsubplot(2,1,2) plot(carTorqueNM) xlabel(“样本”) ylabel (力矩(N m))标题(“扭矩”次要情节(2,1,1);情节(carEngineRPM)包含(“样本”) ylabel (“速度(RPM)”)标题(发动机转速的)
ここでは,車は,加速してギアを3度変え,ニュ,トラルに切り替えてからブレ,キを使用しています。
エンジン速度は一連の線形セグメントとして自然にモデル化できるため,findchangepts
を使用して車がギアを変えた時点のサンプルを探すことができます。
图findchangepts (carEngineRPM,“统计”,“线性”,“MaxNumChanges”(4)包含“样本”) ylabel (发动机转速(RPM))
ここでは4度の変化(5つの線形セグメントの間)が確認でき,それらが10000,20000,30000,40000のサンプルマーク付近で発生したことがわかります。波形のア@ @ドル部分を拡大します。
xlim(22000年[18000])
直線近似は入力波形を厳密に辿ります。ただし,この近似はさらなる改善が可能です。
信号間で共有される多段@ @ベントの変化の観察
改善を確認するには,変化点の数を20に増やし,サンプル番19000号のギアチェンジの近傍内における変化を観察します。
findchangepts (carEngineRPM“统计”,“线性”,“MaxNumChanges”,20) xlim([18000 22000])
エンジン速度がサンプル19035で低下し始め,510サンプルを経過した後,サンプル19550で安定したことを確認します。サンプリング間隔は1 msのため,これは0.51秒程度の遅延であり,ギアチェンジ後の標準的な時間量です。
次に,同じ領域内のエンジントルクの変化点を調べます。
findchangepts (carTorqueNM“统计”,“线性”,“MaxNumChanges”,20) xlim([19000 20000])
エンジントルクは,エンジン速度が安定してから55ミリ秒後のサンプル19605で完全に車軸に伝達されたことを確認します。この時間は,エンジンの吸気行程とトルクの生成の間の遅延に関連しています。
クラッチを接続したタesc escミングを特定するために,さらに信号を拡大できます。
xlim(19050年[19000])
クラッチは,サンプル19011で踏み込まれ,約30サンプル(ミリ秒)かけて完全に開放されました。