SRATS2017

インストールなどについて

Q. 発行元が不明なアプリとなります

A. いまのところ証明書の対応ができていません.今後対応します.


Q. コードを改変しても良いのでしょうか?

Q. 推定部分のC#を他のプログラムから利用しても良いでしょうか?

A. コードはMITライセンスにもとづいています.つまり下記の通りです.

  • このソフトウェアを誰でも無償で無制限に扱って良い.ただし著作権表示および本許諾表示をソフトウェアのすべての複製または重要な部分に記載しなければならない.
  • 作者または著作権者はソフトウェアに関してなんら責任を負わない.

評価について

Q. モデルの詳細はありませんか?

A. こちらを参照してください.


Q. AIC, BIC の意味がわからないのですが

A. AIC, BIC はモデルのデータへの適合性を表す指標で小さい値を取るものほど,データをうまく表現できるモデル(データに適合している)となります.AIC, BIC は異なる観点からモデルの適合性を計算するもので,どちらの指標を使ってモデルを選んでも良いと思います.


Q. グラフを使っていくつかのモデルを比較したいのですが

A. 出力はグラフシートとパラメータシートの二つで,グラフシートにはグラフを書くためのデータも出力されています.複数のモデルを比較したい場合は,予め比較するモデルすべての出力をしておき,それぞれのモデルのグラフシートのデータを元にして,手作業で改めて複数モデルを含んだグラフの作成を行ってください.


Q. MTTFとはなんですか?いくつか種類がありますがその違いはなんですか?

A. MTTFは信頼性工学で言う平均故障時間で,この場合は次のバグが見つかるまでの平均時間です.ただし,ソフトウェア信頼性評価の場合,すでにバグが存在しない確率があるので通常の意味での MTTF が算出できません(バグ0の場合,無限時間稼働してもバグがでてこないため).その代わりになる尺度として,いくつかの MTTF が定義されています.

  • Conditional MTTF: 仮に一つ以上のフォールトが残っているとした場合の次のバグが見つかるまでの平均時間
  • Cumulative MTTF: これまでの(過去の)バグ発見時間間隔の平均
  • Instantaneous MTTF: 現在のバグ発見率が続く場合の平均時間

Q. AICとBIC,どちらを選んでもよいとのことですが,どちらのほうがいいという,優劣や傾向のようなものはありますか?

A. AIC, BIC も同じような尺度で基礎となる考え方が違うのでどちらが良いと言う優劣をつけるのは難しいです.BIC はフォールト検出が十分に収束してないとき理論的に少し厳しめになるので,開発者の個人的な感覚では AIC で選ぶのが良いかと思います.ただし,実務からの経験で BIC で選んだ方が評価がうまくいっている場合は BIC を使っても問題はありません.


Q. Total(のバグ数)が少ないと,エラーが起きたり,うまく信頼性が評価できないようです.何件くらい最低データは欲しいなどの指標はありますでしょうか?

A. Totalが少ない場合は得られる評価の信用度が悪いのは確かです.理論的に何件くらいという目安はないので,経験的に使っていくなかで何件程度であれば評価が信用できると言う目安を探っていくのが良いかと思います.


Q. 位相型分布モデルとは何ですか?

A. 位相型分布と言うのはどのような分布でも高い精度で近似する能力を持った確率分布で,バグ発見時間分布に位相型分布を適用したモデルを位相型分布モデルと呼んでいます.

信頼性モデルにおけるモデル選択は「バグ発見時間分布を何分布で表すか」を決定することと同じです.位相型分布は上記の特性があることから,位相型分布モデルで適切に推定を行うことができれば,一般的なモデル選択を行う必要がないと言うことになります.

位相型分布には「位相数」と言うパラメータがあり,これを適切に推定する手法はないため,一般的には位相数の候補を提示して,その中で一番データを説明している良いモデルを選ぶと言うことになります.

本ツールでは,位相数以外のパラメータを推定するアルゴリズムを提供しています.自分で位相数の候補を提示(例えば「位相数2から20まで」のように提示)して,データからその他のパラメータを推定して最も良いモデルをAICやBICで選択すると言う方法で信頼度評価ができます.


Q. CanonicalPHとHyperErlangの違いは?どちらが良いの?

A. 位相型分布は位相数と位相構造で特徴付けられます.位相構造とは位相推移の順番などを決定するものです.CanonicalPHとHyperErlangは位相構造が違います.理論的にはCanonicalPHで全てのHyperErlangを表現することができるので,CanonicalPHだけで十分なのですが,分散が大きい分布を表現する際にはHyperErlangの方が優れているのでCanonicalPHとHyperErlangをどちらも利用するようにしています.