差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
dm:2012 [2012/07/26 08:38] – [モデルを当てはめる] wataludm:2012 [2012/07/26 08:47] – [強度関数を変えてみる] watalu
行 569: 行 569:
  
 === モデルを当てはめる === === モデルを当てはめる ===
 +
 +今回は、用いるモデルがRには用意されていないので、
 +
 +  * モデルの強度関数と、強度関数を含む対数尤度関数を、Rの関数として記述する。
 +  * 対数尤度関数を、optim()を用いて最大化する
 +
 +という手順で、パラメータの推定値を得る。
  
   * このデータの場合、データ観測系列は1本なので、ロバストな推定方法は使わない。   * このデータの場合、データ観測系列は1本なので、ロバストな推定方法は使わない。
行 628: 行 635:
  
 === 強度関数を変えてみる === === 強度関数を変えてみる ===
 +
 +ここでは、強度関数の変え方の一例を示す。
 +
 +  * 強度関数を変えるにはlambda.t()だけでなく、neg.log.lik()も変える必要が出てくることもある。今回は、パラメータを追加したので、neg.log.lik()の中で x[4] の扱いを追加し、4変数関数としなければならない。
 +  * さらに閾値を変えてみるとして、betaとbeta.2の切り替え点を300から500に変えるなど、してみている。
  
 過去の修正の影響がもっと軽い可能性はないかと、betaを2種類にしてみる。 過去の修正の影響がもっと軽い可能性はないかと、betaを2種類にしてみる。
 +まずは300日以内の影響をbetaとし、300日以降の影響をbeta.2とするように、強度関数を変更する。
  
 <code> <code>
行 643: 行 656:
 lambda.t(0.001704,19.1745,0.003045,0.003045,10,software.debugging.diff) lambda.t(0.001704,19.1745,0.003045,0.003045,10,software.debugging.diff)
 </code> </code>
 +
 +強度関数のパラメータがひとつ増えたので、対数尤度関数の引数xの次元もひとつ増える。
 +そのため、一行追加する。
  
 <code> <code>
行 663: 行 679:
 直近の改修よりも、以前の改修の方が、不具合の発生に大きく影響を与える、という母数の推定値が得られる。 直近の改修よりも、以前の改修の方が、不具合の発生に大きく影響を与える、という母数の推定値が得られる。
 これは、初期に多くの改修を行ったことと、無関係ではないかもしれない。 これは、初期に多くの改修を行ったことと、無関係ではないかもしれない。
 +
 +以下はbetaとbeta.2の切り替え時点を300から500に変更してみる場合の強度関数である。
  
 <code> <code>
行 675: 行 693:
 } }
 </code> </code>
 +
 +このような変更手段だけでも、かなりのバリエーションにはなるので、いろいろ試してみて欲しい。
  
 === モデルを選ぶ === === モデルを選ぶ ===