第 5 研究コース
分科会（Team5（Team
Saguru） Saguru）

特異スペクトル解析を用いた欠陥周期性分析手法の提案～

メンテナンスフェーズにおける欠陥検知の周期性を導出する方法 ～Proposal of defect analysis method using Singular Spectrum Analysis- A method of deriving the periodicity of defect detection in the maintenance phase 研究員 ：安樂
澁谷
福田
主査
：細川
副主査 ：永田

啓之
将行
秀樹
宣啓
敦

（インフォテック株式会社）（株式会社トーセーシステムズ）（ＴＩＳ株式会社）（日本アイ・ビー・エム株式会社）（株式会社日新システムズ）

研究概要
ソフト ウェ アの 派生開 発やメ ンテ ナン スフェ ーズを 対象 とし た欠陥 対策は , 新 規開 発と並んで重要である. 現状のメンテナンスフェーズに対する品質に関連する研究では, 残存欠陥の「数」に着目した研究が多く行われている . 一方で, 残存欠陥の検知数がどのような周期で変動するか, その変動要因は何かの研究は行われていない. そこで我々は, 欠
陥検知の周期的な傾向変化の検出を行い, その要因を特定することを目指した.
本研究では, 周期的な傾向変化を把握する方法として, 時系列データの変化を捉えるのに適した特異スペクトル解析を利用する. 特異スペクトル解析の結果から特徴的な傾向変化の変動要因を調査することで, 周期的な欠陥検知を引き起こす要因を特定する手法を提案する.
Abstract
Defect countermeasures for software-derived development and maintenance phases are importantin line with new developments. In research related to quality in the current maintenance phase,many studies focusing on the "number" of remaining defects are conducted. On the other hand,research on what kind of cycle the detected number of remaining defects fluctuates, and its variation
factor has not been done. Therefore, we aimed to detect the periodic trend change of defectdetection and identify the factor.
In this research, as a method of grasping periodic trend changes, we use a singular spectrum
analysis suitable for capturing changes in time series data. We propose a method of identifying
factors causing periodic defect detection by investigating the characteristic fluctuation factors of
the trend change from the result of the singular spectrum analysis.
1.
背景と問題
1.1 背景ソフト ウェ アプ ロダク トは初 期開 発し リリー スされ るま での 期間よ り , 派 生開 発や メ
ンテナンスフェーズの期間の方が一般的に長期間である. Shari Lawrence Pfleeger は,一般的なソフトウェア開発においては, 開発に 1～2 年, 保守には 5～6 年ほどかかるとしている [1] . また IBM のレポートでは, ソフトウェアの全ライフサイクルコストの 40％～80％は保守が占めており, その 60％は機能拡張／仕様追加・変更などの派生開発が占めているとしている [2] . これらのことからも長期間安定してプロダクトを運用し派生開発やメンテナンスを施していくためには, 新規開発時と同様に, メンテナンスフェーズについて
も障害の発生を抑止する ことが求められる. また, 派生開発やメンテナンスフェーズ で
1
－138－
－1－

第 5 分科会（Team Saguru）
は, システムが実稼働していることから, 即時対処が求められることが多い実情がある.
1.2 周期性検知に対する課題
派生開発やメンテナンスフェーズにおいては , 期間を区切って顧客と契約し , モジュール改修やデータ修正作業などを繰り返すことが多い. 毎回必ず同一作業を実施する訳ではないにせよ, 似たような活動が繰り返される. 一般的に派生回数が増える, あるいはメンテナンス期間が長くなると欠陥の検知数が繰り返し増減することは, 開発者であれば誰でも経験していることである. この欠陥の検知数の増減を, 時系列分析の観点で観察した論はあまりない. 本稿では, 「周期性」を時間軸で推移する中で繰り返し発現する性質 と置き, 課題をメンテナンスフェーズや派生開発における 欠陥検知の周期性に定める.
1.3 問題解決のアプローチ
1.2 で述べたメンテナンスフェーズの欠陥検知の周期性を解き明かすために , 欠陥検知の件数（以降, 欠陥検知数とする）の推移から特徴的な「変動」, つまり急激な変化が発生するサイクル（=周期）を見つけ, 要因分析を行うことを提案する. この提案手法を使って, 発見した周期性に基づいて, 欠陥検知数の予測を織り込むなど要員配置の最適化をより精緻に行うことを期待して, 以下の研究課題(RQ：Research Question)を設定した.
RQ1：派生開発やメンテナンス フェーズにおける欠陥検知の周期性を検出することは可能か？
RQ2：周期的な欠陥はなぜ発生するのか？
以降, 2 章にて提案する手法の内容について述べ , 3 章にて提案手法を 3 事例のべ約3,500 件のデータに適用した結果を説明する. 4 章で実験を通じて得られた知見, 考察を整理し, 5 章で本研究の意義と妥当性への脅威, 将来への展望を述べる.
2.
提案内容
2.1 先行研究派生開 発や メン テナン スフェ ーズ にお ける欠 陥に関 する 研究 の多く は , 残 存欠 陥数 の予測を対象としている [3] [4] . これらの研究ではレイリーモデルといった数式モデルによって, 検出された欠陥数をもとに, 残存欠陥数を予測するものが多い. ここで予測された残存欠陥数はソフトウェアの品質評価に用いられる . その結果をリリース判定, あるいは品質改善の必要なバージョンの特定などに利用する .
また, 欠陥エンジニアリングの先行研究 では, ソフトウェア欠陥発生のメカニズムに着目したモデルを提案し, 再発防止に役立てるもの [5] や, ソフトウェア欠陥の共起性に着目し, 潜在的な欠陥の検出に役立てる研究 [6] などがあったものの, 周期性に着目した研究は筆者らが調査した限り見当たらなかった.
2.2 先行研究との違い
本研究は, 先行研究が対象としていなかった欠陥検知数の変化, 特に周期的な変化に着目し, その要因を解き明かす. もし, 周期性の存在と, 欠陥検知数の変動要因を知ることができれば, ソフトウェア欠陥の発生傾向の分析や予測につなげることが出来る . これによってソフトウェアの品質向上のための新しいアプローチをとることが可能になると考えた.
2.3 提案内容
単位期間あたりの欠陥検知数の推移から特徴的な「変動」を見つけ, その周期性を発見
し, それに基づく要因分析を行うことによって, ソフトウェア欠陥の発生傾向の分析や予測を行う手法, CDAM（Cyclic Defect Analysis Method）を提案する.
2
－139－
－2－

第 5 分科会（Team Saguru）
CDAM では上記周期性を発見するために, 単位期間あたりの欠陥検知数を, バグ管理シ
ステム（BTS：Bug Tracking System）に存在する障害チケットから取得する. さらにその周期性を発見するために時系列データの異常検知手法である「 特異スペクトル解析（SSA：
Singular Spectrum Analysis）」を用いる. これにより本提案が簡便,かつ広く適用可能であることを示す.
以降, 2.3.1 にて SSA の概要, 2.3.2 で SSA の採用理由, 2.3.3 で欠陥検知の周期性検出方法を説明する.
2.3.1 SSA の概要
SSA は時系列データの非定常な変化点検知に用いられる手法である . 変化点検知とは,時系列データ上の傾向や性質が変化した点を検出することを指す . SSA は, 各時点における過去の特徴と現在の特徴を比較し, その違いを変化度として 0～1 の範囲で算出する.
変化度は 0 から 1 に近づくほど, 傾向の変化が大きいことを示す値である. なお SSA のメリットとして以下がある.
・ SSA は, 一定量の時系列データを特異値に分解し, その比較から特徴的なパターンを抽出する手法である為, ノイズの影響を受けにくい.
・ 表 1 に示すように解析を行う為のパラメータが少ないため, 解析を容易に行うことができる.
・ モデル学習が不要で, データクレンジングなどの事前準備なしでも解析を行える.
上記を踏まえ, SSA のアルゴリズムを, 図 1 をもとに説明する. なお本稿では, 3 章以降の実験で用いるために必要な内容に留める. 詳細は参考文献 [7] [8] を参照されたい.
【計算手順】
表 1 計算パラメータt 時刻
w スライド窓幅（履歴行列の行数）
K 履歴行列の列数
M 特異値を求めるパターン数
L ラグ（履歴行列とテスト行列の相対位置）（1）時刻tに対してパラメータ「w, k, L」を用いて, 履歴行列𝑋𝑋𝑋𝑋1（過去側）とテスト行列𝑋𝑋𝑋𝑋2（現在側）の行列を作成する.
（2）𝑋𝑋𝑋𝑋1と𝑋𝑋𝑋𝑋2に対して, 特異値分解し, 左特
異ベクトルの行列UとQを求める.
（3）左特異ベクトルの行列の最大特異値を算出する.
（4)最大特異値から変化度を算出する.
（5）（1）～（4）を行列が作成できる全ての時刻tに対して繰り返す.

図 1 特異スペクトル解析概要

2.3.2 SSA の採用理由
通常は時系列分析を行う際は, ベイズ推定などの時系列モデル, あるいは自己回帰モデル（AR モデル）, 自己回帰和分移動平均モデル（ARIMA モデル）などを用いるのが一般的である. しかし, これらの分析を用いる場合には, モデル学習が必要となり, 導入負荷が高くなる.
3－140－－3－

第 5 分科会（Team Saguru）
一方で SSA は, 2.3.1 で示した通り, モデル学習が不要であり, クレンジングなどの事
前準備をしなくても導入可能でありながら, ノイズに強く, 時系列上の変化を捉えることが 可 能 な 分 析 方 法 で あ る . ま た , 計 算 パ ラ メ ー タ の 推 定 を 力 ま か せ 探 索 （ Brute-force
search）で行えるため, 他の時系列分析よりも導入が容易な分析方法である .
欠陥検知の周期性を検出する「効果」があり「簡便」な方法を採用する ことで, 今後の知見の蓄積や研究のハードルを下げられると考えたため, CDAM では導入が容易な SSA を採用することにした. 付録 3 にその他の代表的な異常検知の方法論との比較を示す.
2.3.3 欠陥検知の周期性検出方法
CDAM による欠陥検知の周期性を検出する手順を以下に説明する.
（1）解析対象データの準備
単位期間（日次, 週次, 月次, 年次など）あたりの欠陥検知数の推移が分かるデー
タを準備する. CDAM では, BTS に本番リリース後に登録された障害チケットの登録日をもとに単位期間ごとの登録チケット数を集計する . 以降, 集計したデータを時系列
データと呼ぶ.
（2）欠陥検知数の変動傾向を変化度として可視化（1）で準備した時系列データに対して SSA を適用し, 欠陥検知数の変動傾向を変化度として可視化する. 具体的には SSA で得た結果をグラフ化することで, 目視で類似の変動傾向を捉えることを可能にする.
また特徴的な変動傾向を明瞭に検出できるようにするために , 計算パラメータw（スライド窓幅）を調整する. これは, 変化度を明瞭に検知するために一番寄与するパラメータがwだからである. wは時刻tにおける特徴を求める際に, どれだけの期間のデータを用いるかを意味するパラメータである. 変化度の発生間隔がwよりも小さいと変化が探知できなくなるため [8] , 変化度の山とそうでないところが明瞭に判別できるよう, wを総当たりで変化させながら設定する.
（3）変化度の傾向から周期性を検出（2）で可視化した変化度の変動傾向を下記の手順で確認し, 欠陥検知に対する周期性を検出する.
① 変化が特徴的な箇所を探す変化が特徴的な箇所は, 何らかの事象がプロジェクトに発生している可能性が高い. そのため, 優先的に確認を行う. 代表的な変動傾向は付録 2 を参照.
② 類似した変化がある箇所を探す①で検出した特徴的な変化と同様の変化が , 他にもないかを確認する. 同様の変化であれば周期性が存在する可能性が高い .
③ 傾向が変動した要因を調査する①, ②で特定した個所の変動要因をチケット情報やプロジェクト記録, あるいはインタビューなどにより調査する. この調査によって, ①と②で特定した箇所で,同様の変動要因が確認できれば, 周期性の検出と, 周期性をもたらす要因の特定ができたことになる.
なお手順（2）の部分は, R 言語を用いて行った.これは, SSA のアルゴリズムを実行するのに必要なライブラリが R 言語で公開されており, 計算パラメータwの探索的な推定ロジックを容易に組み込めたからである.
3.
実験と評価
3.1 実験手順
2 章で提案した内容についての有効性を確認するため , 以下の手順で実験を行った.
4
－141－
－4－

第 5 分科会（Team Saguru）（1）解析対象データの準備
実験対象プロジェクトに対して, BTS から抽出した本番リリース後の障害チケットの登録数を集計し, 時系列データを作成する. 本研究で用いた対象プロジェクトのプ
ロファイルとチケット件数を表 2 に示す.
表 2 対象プロジェクトプロファイルとチケット数
プロジェクト ドメイン
データ期間 チケット数
集計単位
A
金融系基幹システム
約 3 年半
約 2,000 件
週次
B
組み込みシステム
約 7 年半
約 1,500 件
週次
C
金融系基幹システム
約5年
約 30 件
月次（2）欠陥検知数の変動傾向を変化度として可視化（1）に対して, wを 4～80 まで 1 刻みで変化させながら SSA を適用し, 特徴的な変動傾向が明瞭になるwを探し出す.
（3）変化度の傾向から周期性を検出
2.3.3 の（3）に従い, （2）で可視化した変化度の変動傾向を時系列で確認し, 変化度の周期性を検出する.
3.2 実験結果
3.2.1 欠陥検知数の変動傾向を変化度として可視化
各プロジェクトに対して SSA を適用した
W=4
W=8
結果, 変動傾向を捉えることができた. 紙面の都合上, プロジェクト A 全 76 枚の図のうち, 特徴的 な差が現 れた , wのパターンの図のみを図 2 に示す. なお, 図中の棒グ
W=11
W=12
ラフは欠陥検知数, 折れ線は変化度を表
す.（拡大図は付録 1 を参照されたい）
図 2 を目視で確認した結果, 以下の理由
から w=12 は変化 が明 瞭 であり , 変 動傾向
W=13
W=26
を捉えることが可能であると判断した.
① w=4 の場合は, 変化度の変動が激しく類似を検出するのが困難である.
W=52
W=78
② w=8 を超えると変動は多少落ち着く
ものの, 全体の半分以上で変化度の変動が観察される.
③ w=12（およそ四半期）の近傍を境に変化度の変動箇所が顕著に少なくな
図 2 特異スペクトル解析結果
る.
④ w=12 を超えて増やしていくと, 四半期の倍数（半期, 年間など）においては変化
度の山とそうでない値が明瞭になる.
⑤ w=26 を超えると, データ取得後 wに比例したタイミングで一度高い変化度を示す.
それ以降についてはだんだんと変化度のメリハリが失われる傾向になる.
3.2.2 変化度の傾向から周期性を検出
3.2.1 の結果に対して, 変化度の周期性の存在確認と要因調査を行った. その結果, 周期性のある変動と, 周期性がない変動を検出した. 要因を調査した結果を図 3～図 5 および表 3 に示す.
本実験から, 欠陥検知の変化度に周期性が存在することが明らかになった. また, その周期性に影響を与える要因として, 企業やプロジェクトにおける活動が大きく関係して
5
－142－
－5－

第 5 分科会（Team Saguru）
いることが確認できた. （表 3 の①④⑦が該当） 一方で, 変化度の周期性の分析に影響を与えるノイズが存在することも確認できた. （表 3 の②③⑤⑥⑧が該当）
①

①
②
②

③
③
③

①

図 3 プロジェクト A（W=12）のグラフ

④
④
④

⑥
6

④

④

⑤
⑤
⑤

④

図 4 プロジェクト B（W=12）のグラフ
⑧
⑧
⑦

⑦

No
①

周期性
有

②

無

③

無

④

有

⑤

無

⑥

無

⑦

有

図 5 プロジェクト C（W=8）のグラフ
表 3 周期性の有無と変動要因の一覧
要因
詳細
顧客との契約
顧客との契約に合わせて, 変化度の上昇と下降がセットになっていた.
リ フ ァ ク タ リ 構造改善を目的とした計画的なリファクタリングに伴うング実施
調査によって欠陥検知が急増した.
見 積 よ り 短 い 大規模な派生開発を事情により当初見積より短い期間で期間での開発実施. 開発時に除去できなかった欠陥を多く検知した.
外 部 展 示 会 対 外部展示会に出展するために広範囲のテストを実施. 普応段テストしない機能のテストにて欠陥検知が急増した.
チ ケ ッ ト の 一 外部委託作業により検知された欠陥を, 納品時に BTS へ
括登録
一括登録したことで変化度が大きくなった.
検 知 数 の 急 激 直前（2011/3/10 付近）にチケットの大量登録があったが,な減少
その後の登録数激減により, 変化度が大きくなった．
新 規 案 件 の 立 前案件の終了後一旦体制を縮小し, 新たな案件立ち上げ
ち上げ期に合わせて新規要員をアサインした.
6
－143－
－6－

第 5 分科会（Team Saguru）
No
⑧

周期性
無

要因
久しぶりの欠陥登録

詳細
しばらく欠陥が検知されていない状況で欠陥を検知したことで, 変化度が大きくなった.

Jan-17

Apr-17

Jul-17Oct-17Jan-17

Jul-17Oct-17

Jul-16Oct-16

Jul-16Oct-16

Apr-17Jan-16

Apr-16

Jan-16

Jul-15Oct-15

Jul-15Oct-15

Apr-16

Jan-15

Apr-15Jan-15

Jul-14Oct-14Jul-14Oct-14Apr-15Jan-14Apr-14Jan-14Jul-13Oct-13

Jul-13Oct-13Apr-14Jan-13Apr-13Jan-13

変化度

欠陥検知数

Apr-13

変化度

欠陥検知数

4. 考察
冒頭に提示した RQ に対し, 実験結果を踏まえて考察を示す.
（1）RQ1: 派生開発やメンテナンスフェーズにおける欠陥検知の周期性を検出することは可能か？
本研究で提案する CDAM を派生開発やメンテナンスフェーズにあるプロジェクトの時系
列データに適用することにより, 欠陥検知の周期性について数理モデルを用いて定量的に説明できた. CDAM にて採用した数理モデルは, 以下の特長をもつ簡便なモデルである.
① R 言語などの汎用的な分析ツール, および BTS などから取得した時系列データがあれば分析が可能.
② SSA のロジックは公開されており適用自体は容易.
③ データクレンジング等の事前準備が不要であるため , 最終的な目視分析を除いた一連の手順は自動化が可能.
また, CDAM の適用によって, 対象とした全てのプロジェクトで変化度の周期性を検出でき, あわせて, その要因を追究することができた. これらのことから, メンテナンスフ
ェーズにある他のプロジェクトにおいても CDAM を適用すれば, 周期性の検知, および要因の分析が可能になると考える.
（2）RQ2:周期的な欠陥はなぜ発生するのか？
検出した変化度の周期性をもたらす要因は, 3.2.2 に示す調査の結果から企業やプロジ
ェクトにおける周期的な活動, 及び外部イベントなどが考えられる. 特に表 3 で示した展
示会の周期と連動した変化度が観察されたことは, その代表的な例である.
3.2.1 の中で, CDAM による分析から検出された変化度の周期は, 四半期, 半年, 1 年であった.この周期で行っている活動を調べたところ, 企業活動の周期性と強い関連性が認められた. 例えば, 四半期や半期単位で行われる品質活動などの短期計画 , あるいは年度と連動した計画などは, 変化度の周期と同じ四半期, 半年, あるいは 1 年単位である. さらに, 3.2.2 の表 3 で示した①契約の周期, ④の展示会周期, あるいは⑦の要員サイクル
1.2
2.5との関連性からも読 み 取ることがでプロジェクト1 欠陥検知数
プロジェクト1 変化度
1
2
0.8
1.5
きる. なお, 結果的に周期的な欠陥
0.6
1
0.4
の検知は企業活動の 周 期と関連づい
0.5
0.2
0
0
ていることが分かったが, この変化の兆しは欠陥数の多寡だけでなく
時期
SSA を利 用して 変化度 を可視 化する
1.2
2.5
プロジェクト2 欠陥検知数
プロジェクト2 変化度
12
ことによって初めて 分 かりやすく検
0.8
1.5
0.6
知できるものである.
1
0.4
0.5
0.2
企業活動の 周期と変 化 度の周期 が00
関連していることを踏まえ, 企業の時期
活動計画を立案することによって,品質活動の作業量を 平 準化すること
図 6 複数プロジェクトのピーク調整イメージが出来ると考える.
プロジェクト C を例として説明する. 図 6 は, プロジェクト C に CDAM を適用し w=8 を指定して出力したグラフを上下に並べて, 4 か月ずらしたものである.同様のプロジェク
トを別に立ち上げると仮定した場合, 変化度の周期性を考慮することができれば, 図の下段に示すように, 開始時期をずらし, 欠陥検知のピークが重ならないように調整した案件
計画を立てることも可能となる. これにより, 欠陥検知のピーク（図中の枠囲みで示した
7
－144－
－7－

第 5 分科会（Team Saguru）
箇所）が重ならないため, これら両プロジェクトの品質活動を平準化することができる .
なお, SSA の結果より, 変化度の周期性を確認した副次効果として, 周期性の無い変化（表３の②③⑤⑥⑧）も捉えることができた. 変化度の周期性を持たない変化は, 本来は想定外の欠陥検知の変動である場合が多く, プロジェクトに影響を与える可能性が高い.
この想定外の要因を知ることで, 要因の除去や, 発生予測を事前に織り込むことが可能になると考える.
まとめ
5.
5.1 本研究の意義
今まで 派生 開発 やメン テナン スフ ェー ズでは 残存欠 陥数 が多 く注目 されて いた が , その残存欠陥の検知傾向を変動させる要因があることを簡便に特定する手法を示せた . これ
によりメンテナンスフェーズにおける欠陥に対する 新たな管理指針を示すことができたと言える.
本研究 にお いて 観察さ れた周 期性 の捕 捉は , 本質的 には 品質 を見積 もるこ とに 他な らない. 従来品質活動は, コストと期間, 要員数を過去のプロジェクトの類推などから 見積もっていた. これに加え, 欠陥の発生数, 及び検出タイミングを周期性から予測すること
で, 品質活動の見積りをより精緻に行うことが期待できる.
5.2 妥当性への脅威,今後の展望
本稿での研究では 3 プロジェクトのデータに基づいて解析を行っているが , 本研究で扱っていない, 異なるメンテナンスフェーズのプロジェクトについても当てはまるかについては, 検証を行う必要があると考える.
4 章の考察で示した欠陥検知の周期性と, 企業やプロジェクトにおける周期的な活動 との関連性, およびその活動がプロジェクト固有要因によるものか, 共通的な要因によるものかといったより詳細な分析には, 幅広いデータによる裏付け強化が必要である. また,
本稿で発見した周期性を発生させる要因以外にも, 要因はあると考える. そのため, 今回の手法での追実験や他案件への適用に期待したい. この研究が, より広範囲・より深い欠陥研究・洞察の礎となれば幸いである.
参考文献[1] Shari Lawrence Pfleeger 著, 堀内 泰輔訳, ソフトウェア工学 理論と実践, P.473,
ピアソン・エディケーション, 2001
[2] Rational Software IBM Japan Ltd., 品質マネジメント技術 COQ: Cost of Quality
概説, 2011[3] 安藝優子,野中誠,摘出済み欠陥数を考慮したレイリーモデルに基づくソフトウェア欠
陥予測手法,経営情報学会 全国研究発表大会要旨集 2010,2010[4] 吉村博昭,森岳志,倉下亮,野中誠,プロセスおよび出荷後バグメトリクスによる残存バ
グ予測,SQiP2010,2010[5] Project Fabre（細川宣啓ら）,“過失に着目した欠陥のモデリング”,JaSST2013,2013[6] 細川宣啓, 永田敦, 澁谷 将行, 山﨑 真一, 「ソフトウェア欠陥の共起性を利用した
欠陥推定手法の提案 ～ 共起欠陥推定アプローチによる潜在欠陥の捕捉 ～」, 日本科学技術連盟 SQiP 研究会, 2016[7] 井出剛,入門 機械学習による異常検知 -R による実践ガイド-,P.199,2015[8] 井出剛,井上恵介,非線形変換を利用した時系列データからの知識発見,日本ソフトウ
ェア科学会 データ マイ ニング研究 会 ,研究 会資 料シリーズ ISSN 1341-870X,No.29,pp.18.,2004

8
－145－
－8－

第 5 分科会（Team Saguru）
付録 1．変化度の山を明瞭に示す w 値の観察データ
プロジェクト A, B に対して, CDAM による分析を行うため, SSA のパラメータwについて, 4～80 に変化させながら各グラフを観察した. 以下に観察した結果, 特徴的であるものを示す. なお, グラフの棒グラフが検知した欠陥数の実数 , 折れ線グラフが変化度を示
す.
① w=4, 5 の場合は, 変化度が10−16 ~10−15 などほとんど 0 に近い値をとる. 振幅は小さいが常に激しく振動している状態にあり, 変化度の山を明瞭には判断することができない. そのため, 不適であると判断する.
② w=5 を超えると変化度の振幅が 0.1 を超え, １～0 のスコープで観察可能な範囲になるが, 変化の激しい傾向は変わらず, かなりの範囲（全体の半分以上）を変化度の山として捉えてしまうため, 不適と判断する.
③ w=12（およそ四半期）を境に変化度の山を示す範囲が顕著に少なくなる. プロジェ
クト A の場合, 図 3, および図 4 を見ると変化度の山を示す箇所が急減していることが分かる. プロジェクト B においては, 図 17, 図 18 が示すように w=10 を境に変化している. 両方のプロジェクトを考慮すると w=12 の近傍から傾向が変化し, 変
化度の山を示す箇所が明瞭に示されるようになる.
④ w=12 を超えて増やしていくと, 四半期の倍数（半期, 年間など）においては変化
度の山とそうでない値が明瞭になる.
⑤ w=26 を超えると, データ取得後 wに比例したタイミングで一度高い変化度を示す.
それ以降についてはだんだんと変化度のメリハリが失われる傾向になる.
⑥ 上記から, 変化度の山を明確に, かつ最初の山をできるだけ早く捉えることのできる, w=12 を分析に採用した.

上記①～⑤を読み取れるようにw=4（1 か月, 最小値）, w=8（2 か月）, w=11, 12, 13（3 か月, およびその近傍値）, w=26（6 か月）, w=52（1 年）, w=78（1 年半）を指定
し, 特異スペクトル解析を行ったグラフを図 1～図 16 に図示する. また, プロジェクト Bのw=9, w=10 のグラフを図 17, 図 18 にそれぞれ示す.

1
－146－
－1－

第 5 分科会（Team Saguru）
プロジェクト A に関するグラフ

図 1 プロジェクト A（w=4）

図 2 プロジェクト A（w=8）

図 3 プロジェクト A（w=11）

図 4 プロジェクト A（w=12）

図 5 プロジェクト A（w=13）

図 6 プロジェクト A（w=26）

図 7 プロジェクト A（w=52）

図 8 プロジェクト A（w=78）

2
－147－
－2－

第 5 分科会（Team Saguru）
プロジェクト B に関するグラフ

図 9 プロジェクト B（w=4）

図 10 プロジェクト B（w=8）

図 11 プロジェクト B（w=11）

図 12 プロジェクト B（w=12）

図 13 プロジェクト B（w=13）

図 14 プロジェクト B（w=26）

図 15 プロジェクト B（w=52）

図 16 プロジェクト B（w=78）

3
－148－
－3－

第 5 分科会（Team Saguru）

図 17 プロジェクト B（w=9）

図 18 プロジェクト B（w=10）

4
－149－
－4－

第 5 分科会（Team Saguru）
付録 2．変化度に基づく欠陥検知傾向の変化とプロジェクト状況

⑦
①

最大振幅

②
⑥

閾値

図 19 プロジェクト A, w=12 のグラフ

最大振幅

①

⑧

③
⑨

閾値

⑩

最大振幅

図 20 プロジェクト B, w=12 のグラフ

④
閾値

⑤

図 21 プロジェクト C. w=8 のグラフ
元データは日次, 週次, 月次など様々な括り方ができる. できる限り詳細な単位で見た方が変化に早く気づきやすいが, 日次データの場合は土日や祝日など, およそ欠陥が検知されにくい日が挟まるため, プロジェクト A, B では週次データを分析対象とした. プ
ロジェクト C は元々の欠陥件数が対象期間に対して少なすぎ , 週次だと殆どが 0 件となってしまうことから, 月次データを分析対象とした.
(1) 欠陥検知傾向が安定している状況
5
－150－
－5－

第 5 分科会（Team Saguru）
・ プロジェクト A, B の①の区間は, データ取得開始後 12 週間以内であるため, チケットの発行頻度の変動傾向を検知していない.
・ 同プロジェクト②の区間では, チケットの発行は低いレベルを保ち, 変化度も同じ傾向を示している.
・ プロジェクト B の③の区間では, 四半期の切れ目にチケットが減少する傾向, お
よび期間内は数回程度上下することを繰り返している.
・ プロジェクト C については, 他の 2 プロジェクトと異なり, 月次でのデータの提供であったため, w=12 相当での確認ができなかった. 一方, w=8 において明瞭な傾向が出ていたので, 本内容での確認を行うこととした.
・ プロジェクト C の④の区間では, 1 か月おきにチケットの検知を繰り返している.
・ プロジェクト C の⑤以前の箇所（開始 8 か月以前）は w=8 であるため比較対象外となるので, 変化度の検出がない.
グラフ上の上記に示した内容, およびそれに類似した変化度が低い状況を維持している箇所を観察した結果, 以下のいずれかを示すものと考えられる.
① 障害チケット検知数の変化がない.
② w値と近いサイクルで障害チケット検知数の周期的な変動がある.
③ 開始後 wに相当する期間が経過していない.
(2) 欠陥検知傾向に顕著な変化が発生した状況
それぞれのグラフの変化度が 0.2～0.3 以上を示している箇所を観察することにより, 以下が分かった.
・ プロジェクト A の⑥については, グラフ上判別しにくいが, 変化度が 0.2 を超えている箇所を境に月当りの欠陥検知数がそれまでに比べて 4 倍程度となっている
ことが分かった. また当時の担当からヒアリングしたところによると, この時期に大規模なアプリケーションの構造改善を目的としたリファクタリングを実施しており, 欠陥の検知量が増えているとの事であった .
・ プロジェクト A の⑦のタイミングでは, 欠陥検知数が上昇している. 当時のプロジェクトの記録を確認したところ, この時期には大規模な派生開発案件があったが, 年度内に開発を完了する必要があるという事情から短期開発となったため,障害が増えていたことを確認した.
・ プロジェクト B の⑧のタイミングでは, およそ 12 週間前に欠陥検知のピークがあったが, 検知時タイミングの欠陥検知数は落ち着いており , それによる変化を検知したものと考えられる.
・ プロジェクト B の⑨のタイミングでは, 欠陥検知数の急増に伴い, 変化度の上昇を確認した. これについて当時の担当へ確認したところ, 外部委託分の障害チケットの一括入力があったとのことで, 傾向の変化が表れているということが分かった.
・ プロジェクト C の⑩もしばらく欠陥の検知がなく, 9 ヶ月ぶりに検知されたことによって変化度の上昇を示していた. このプロジェクトはパッケージベースのプ
ロジェクトでリリース後 10 年ほど経過していることから, 欠陥はほとんど検知されない傾向にある.
グラフ上の上記に示した箇所から, 変化度が急増しているケースは以下が共に成立していることを示しているものと考えられる.
① 欠陥検知の急増/急減がある.
② w値と近いサイクルで障害チケット検知数の周期的な変動がある.
なお, 顕著な変化を捉えるのに, 今回の 3 プロジェクトでは変化度の最大振幅の30%程度を目安にすると良いようである, ということが分かった.
本分析で得た知見のまとめを付録 4 に示す.
6
－151－
－6－

第 5 分科会（Team Saguru）
付録 3. 各種機械学習モデルの比較（井出 剛著「入門 機械学習による異常検知」より筆者らにて整理）表 1 各種機械学習モデルの比較
機能
入力対象
確率モデル
検出対象
応用
特徴
外 れ 値
検出

多次元ベク
トル

変 化 点
検出

多次元時系
列

独立モデル
外れ値
（単純な閾値）（クラスター外れ値）
近 傍 法 に よ る 時系列上の異常部位検出
急激な変化
バースト的
異常
特 異 ス ペ ク ト 時系列上のル解析/変換
急激な変化
バースト的
異常
自 己 回 帰 モ デ 時系列上のル
急激な変化（ 赤 池 情 報 量 バースト的
基準 AIC）
異常
線 形 状 態 空 間 測定困難な
モデル
時系列デー
（ 部 分 空 間 同 タの異常・
定）
急激な変化
カルマン・フイ
ルタ（逐次推定法）

7
－152－
－7－

不正検知
侵入検知

急激な変化に弱い

ネット攻撃検出
ワーム検出
音声認識
心電図による
異常検出

リアルタイム分析

ノイズに強いリアルタイム分析

過去データを用いた売上予測

自分自身の過去
データからの予測

脳圧推定

過去と未来の共通点を探す手法
状態系列推定第 5 分科会（Team Saguru）
付録 4. SSA による可視化に際して,知り得たこと
3 つの実験データの分析において, SSA を行う上で得たノウハウを下記に記す.
① w値の設定値に関して
・ パラメータで唯一設定したのは wであるが, 最小値は mの 2 倍の値である. また,
最大値は元となるデータ期間の長さの 2/3 までである. これらは履歴行列, テス
ト行列の抽出の仕組み上, その範囲を超えられないためである.（最小値より小さい値, 最大値より大きい値を指定するとエラーとなる）
・ wで指定した周期に達するまでは, 変化度は 0 のままである.
② 変化度を見極めるための工夫
・ 変化度を見極める際に, グラフの平滑化を行うと, 細かな変化を滑らかにならすことができる（これをスプライン曲線による補間という）. グラフのノイズが除去できるため, 似たような変化をより発見しやすくなる.
③ データ量の多寡による変化度の現れ方の違い
・ データ量が少ないほど, 変化量の振幅が大きくなりやすい.
④ 周期性の読み取り方
・ 周期性には 2 つある. 1 つは, 周期的に同じような欠陥検知の傾向があるケース .
この場合, 変化度のグラフは振幅が小さくなだらかになる.もう 1 つは, 大きな変化が周期的に発生するケース. この場合は似た振幅形状のグラフが複数箇所に現れる.
・ 今回の解析で使ったソースコードを用いると, ループ処理で wの値を指定した間
隔でしらみつぶしに変化させていくため, 一度に複数の変化度のデータが得られる. これを比較しながら, 最も変化度の山が際立つものを選び出す.
・ ある w値で周期性が得られた場合, その倍数の w値でも同様の波形が得られるが,最初の変化度の山をより早く検知できるように, それらのうち最も小さい w値を選択するのがよい.
・ 初期リリースで欠陥が多発し, その後落ち着いてくるプロジェクトでは, 最初の変化量の山を過ぎてから, w値の期間が経過したところで履歴行列の欠陥数より
テスト行列の欠陥数が減ることによって, 変化量の山が発生する. 変化量としては欠陥数が増えても減っても山が立つため , 読み取る際に注意が必要.

8
－153－
－8－