主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

信号の急激な増加と大幅な変化の検出

この例では,累積和と変化点検出による信号の変化または急激な発生の特定方法を説明します。

累積和による急激な増加の検出

データを監視し,基本的な過程に変化があったときにできる限り迅速に警告を受けたい,というような実際的応用事例は数多くあります。これを行う非常に一般的な手法として,累積和(CUSUM)管理図の使用があります。

CUSUMの機能を説明するため,はじめに,2014年に西アフリカで発生したエボラ大流行の全報告例を検証します。

ソース:疾病控制和预防中心

负载WestAfricanEbolaOutbreak2014plot(WHOreportdate, [TotalCasesGuinea TotalCasesLiberia TotalCasesSierraLeone],“。”)传说(“几内亚”利比里亚的“狮子山”); 头衔(“埃博拉病毒病的疑似、可能和确诊病例总数”);

ギニアにおける大流行の先端部を見てみると、2014年 3.月 25日頃に最初の 100例が報告され、その日以後、大幅に件数が増加したことがわかります。興味深いのは、3.月にはリベリアにも少数の疑い例があるものの、発生件数は約 30日後まで比較的抑制されていたという点です。

新しい患者の発生率を感覚的に把握するために、2014年 3.月 25日を開始時点として、合計症例数の日々の相対的変動をプロットします。

daysSinceOutbreak = datetime(2014, 3,24 +(0:400));病例= interp1(WHOreportdate, TotalCasesLiberia, daysSinceOutbreak);dayOverDayCases = diff(例);情节(dayOverDayCases)标题(“2014年3月25日以来利比里亚新增病例(每日)率”);ylabel (“每日报告个案数目的变化”);包含(“疫情开始后的天数”);

最初の100日間のデータを拡大すると,初期には症例数が急増しているものの,それらの多くは30日目の後に排除されており,変化率は一時的に0未満に低下しています。また95日目と100日目の間には著しい上昇トレンドが示されています。ここでは1日あたりの新規発症件数の割合が7件に達しています。

xlim(101年[1])

入力データに対してCUSUMテストを実行すると,急激な増加発生のタイミングを簡単に特定できる場合があります。CUSUMは,局所的な平均が上向きに変化するタイミングを検出する上位の和と,平均が下向きに変化するタイミングを検出する下位の和の2種類の累積和を追跡します。CUSUMには,積分手法によって入力レートにおける大きな(過渡的な)スパイクを無視する機能がありますが,より安定した小さいレートの変化に対する感度は維持されます。

既定の引数で 库苏姆を呼び出すと、最初の 25サンプルのデータを検査し、初期データ内から 5.標準偏差を超える平均の変化を検知すると警告を発します。

cusum (dayOverDayCases(1:10 1)传说(“上金额”“较低金额”

库苏姆は、30日目 (33日目) の誤った報告件数を捕捉し、80日目 (90日目) に始まる急激な増加の最初の発生を検出していることに注意してください。これらの結果を前のプロットと注意深く比較すると、库苏姆は、29日目の誤った上昇を無視する一方で、95日目に始まる大きな上昇トレンドの 5.日前に警告を発することが可能であったことがわかります。

ターゲット平均値 0件/日とターゲット ± 3 件/日を与えて 库苏姆を調整すると、30日目の誤検出警報を無視し、かつ 92日目の急激な増加を検出することができます。

climit = 5;mshift = 1;tmean = 0;tdev = 3;cusum (dayOverDayCases(1:10 0)、climit mshift, tmean, tdev)

分散の著しい変化の検出

統計量の急激な変化を検出するもう1つの方法は,変化点の検出を使用するものです。この方法では,各セグメント内において統計量(平均,分散,勾配など)が一定な隣接したセグメントに信号を分割します。

次の例では,カイロに近いローダ島の水位計で測定された西暦622年から1281年のナイル川の年間最低水位を解析します。

负载水位计年= 622:1284;情节(年,nileriverminima)标题(“尼罗河年最低水位”)xlabel(“年”)伊拉贝尔(‘第(m)级’

715年西暦頃に,より新しく正確な測定機器の製作が始まりました。これ以前についてあまり多くのことは知られていませんが,さらに詳しく調べてみると,722年頃以降の変動性が大幅に低下していることがわかります。新しい機器が使用されるようになった期間を特定するため,要素単位の微分を行って変化の緩やかなトレンドを除去した後で,平方根平均二乗水位における最良の変化を探索します。

我= findchangepts (diff (nileriverminima),“统计”“rms”);甘氨胆酸ax =;Xp = [year (i) ax。XLim(2[2])年(我)];yp = ax。[1 1 2 2];补丁(datenum (xp), yp,(。5。5。5),“facealpha”, 0.1);

サンプル単位の微分はトレンドを除去する簡単な方法ですが,この他,より大きなスケールで分散を調査する高度な方法もあります。このデータセットを使用した,ウェーブレットによる変化点検出の実行方法の例については,小波Changepoint检测(小波工具箱)を参照してください。

入力信号における複数の変化の検出

次の例は1間女士隔でサンプリングされたCR-CR 4速トランスミッションブロックの45秒間のシミュレーションを扱っています。自動車のエンジン速度とトルクのシミュレーションデータは次のとおりです。

负载simcarsig次要情节(2,1,2);情节(carTorqueNM);包含(“样本”);ylabel (“转矩(N m)”); 头衔(“扭矩”);次要情节(2,1,1);情节(carEngineRPM);包含(“样本”);ylabel (‘转速(RPM)’); 头衔(发动机转速的);

ここでは,車は,加速してギアを3度変え,ニュートラルに切り替えてからブレーキを使用しています。

エンジン速度は一連の線形セグメントとして自然にモデル化できるため,findchangeptsを使用して車がギアを変えた時点のサンプルを探すことができます。

图findchangepts (carEngineRPM,“统计”“线性”“MaxNumChanges”,4)xlabel(“样本”);ylabel (“发动机转速(RPM)”);

ここでは4度の変化(5つの線形セグメントの間)が確認でき,それらが10000,20000,30000,40000のサンプルマーク付近で発生したことがわかります。波形のアイドル部分を拡大します。

xlim(22000年[18000])

直線近似は入力波形を厳密に辿りますが,改善も可能であることに注意してください。

信号間で共有される多段イベントの変化の観察

改善を確認するには、変化点の数を 20に増やし、サンプル番号 19000のギア チェンジの近傍内における変化を観察します。

findchangepts (carEngineRPM“统计”“线性”“MaxNumChanges”, 20) xlim(22000年[18000])

エンジン速度がサンプル19035で低下し始め,510サンプルを経過した後,サンプル19550で安定したことを確認します。サンプリング間隔は1 msのため,これは0.51秒程度の遅延であり,ギアチェンジ後の標準的な時間量です。

次に,同じ領域内のエンジントルクの変化点を調べます。

findchangepts (carTorqueNM“统计”“线性”“MaxNumChanges”, 20) xlim(20000年[19000])

エンジントルクは,エンジン速度が安定してから55ミリ秒後のサンプル19605で完全に車軸に伝達されたことを確認します。この時間は,エンジンの吸気行程とトルクの生成の間の遅延に関連しています。

クラッチを接続したタイミングを特定するために,さらに信号を拡大できます。

xlim(19050年[19000])

クラッチは,サンプル19011で踏み込まれ,約30サンプル(ミリ秒)かけて完全に開放されました。

参考

||