Vol. 46

No. 5

May 2005

情報処理学会論文誌

協調フィルタリングを用いたソフトウェア開発工数予測方法
角

田

雅 照†
松 本

大 杉
健 一†

直 樹†
佐 藤

門 田 暁
慎 一††

人†

ソフトウェア開発における工数予測を目的として，過去のソフトウェア開発プロジェクトにおいて記録された多種類のソフトウェアメトリクス値を入力データとし，協調フィルタリングにより予測工数を求める方法を提案する．協調フィルタリングは，未計測の値（欠損値）が大量に含まれている
データを入力とした場合でも予測が行えるという特長があるが，ソフトウェア工数予測に適用する方法はこれまで提案されていない．提案方法では，まず，入力となるメトリクス値を正規化し，値域を揃える．次に，正規化したメトリクス値を用いて，予測対象（開発中）のプロジェクトと，過去に行われたプロジェクトとの類似度を計算する．最後に，類似度の高い（予測対象プロジェクトと類似した）プロジェクトの工数を類似度で加重平均した値を，予測対象プロジェクトの工数とする．ケース
スタディとして，株式会社 NTT データにおいて 1,081 件のソフトウェアプロジェクトから計測された 14 種類のメトリクス（約 60%の欠損値を含む）を用いて試験工数を予測した．その結果，提案方
法は従来方法（欠損値処理法を用いたステップワイズ重回帰分析）よりも高い精度を示し，予測試験
工数の相対誤差の平均値（1 プロジェクトあたり）が 22.11 から 0.79 に改善された．

Software Development Eﬀort Prediction
Based on Collaborative Filtering
Masateru Tsunoda,† Naoki Ohsugi,† Akito Monden,†Ken-ichi Matsumoto† and Shin-ichi Sato††
To predict software development eﬀort, this paper proposes an eﬀort prediction method
based on the Collaborative Filtering (CF ) which uses as input various software metrics
recorded in past software development projects. The CF has an advantage that it can conduct
a prediction using “defective” input data containing a large amount of missing values. There
are, however, no researches which propose a method for applying the CF to Software eﬀort
prediction. Our proposal consists of three steps. In the ﬁrst step, we normalize values of
metrics to equalize their value range. In the next step, we compute the similarity between
target (current) project and past (completed) project using normalized values. In the laststep, we estimate the eﬀort of target project by computing the weighted sum of eﬀorts ofhigh-similarity projects (that are similar to the target project) using the similarity of eachproject as a weight. In a case study to evaluate our method, we predicted the test process effort using 1,081 software projects including 14 metrics whose missing value rate is 60%, whichhave been recorded at NTT DATA Corporation. As a result, the accuracy of our method
showed better performance than conventional methods (stepwise multiple regression models);and, the average accuracy per project was improved from 22.11 to 0.79.

た1),3),7),17),18) ．工数予測モデルとは，プロジェクト

1. は じ め にの特性値（開発規模，欠陥数など）を説明変数とし，

ソフトウェアプロジェクト管理において，納期の遅目的変数である工数との関係を数学的に表すものであれ，コストの超過といったプロジェクトの失敗を未然にる．プロジェクトの特性値はソフトウェアメトリクス

防ぐためには，工数予測を行うことが重要である13) ．

によって計測，数値化され，過去のプロジェクトで計

そのために，工数予測モデルが数多く提案されてき測されたメトリクス値に基づいてモデルの構築（パラメータ推定）が行われる．一般に広く用いられている重回帰分析やニューラルネットなどの多変数モデルで† 奈良先端科学技術大学院大学情報科学研究科
Graduate School of Information Science, Nara Instituteof Science and Technology†† 株式会社 NTT データ
NTT DATA Corporation

は，どの特性値を説明変数として用いるかはあらかじ
め定められていない5),8),25) ．推定精度の高いモデルを構築する 1 つの方法は，できるだけ多数の特性値を説
1155

1156

May 2005

情報処理学会論文誌

明変数の候補とすることであり，そのために，多数の測された（すなわち，欠損していない）メトリクス値

メトリクスによる特性値計測が行われる．

のみを用いて行われる．最後に，類似度の高い（予測ただし，ソフトウェア開発プロジェクトを対象とし

対象プロジェクトと類似した）プロジェクトの工数をた多数のメトリクスによる計測には，欠損値の問題が類似度で加重平均した値を，予測対象プロジェクトのある．欠損値の問題とは，過去のプロジェクトにおい工数とする．

て計測されるべきメトリクス値に未計測のもの（欠損

従来の予測モデルでは，欠損値を含んだデータセッ

値）が数多く存在するために，工数予測モデルを構築

トを直接用いてモデルを構築することはできず，欠損しにくくなることである23) ．一般に，多数のプロジェ

値処理法を併用する必要があった11) ．欠損値処理法

クトから多種類のメトリクスを計測して得られるデーとは，与えられたデータセットから欠損値を含むプロ

タセットには欠損値が含まれる5) ．我々は，株式会社

ジェクトを除外したり，欠損値を何らかの値で補完しNTT データと奈良先端科学技術大学院大学の産学連
携研究を通じて，1,081 件のプロジェクトから 14 種

たりすることによって，欠損値を含まないデータセッ

類のメトリクス値を計測したが，その約 60%の値が欠損値であった（3.3 節参照）．欠損値の生じる理由は様々である．企業内の部署ごとに計測対象のメトリク

布にかかわらず特定の欠損値処理方法を採用することトを作成する方法である．ただし，欠損値の多寡や分は望ましくない12),19) ．一方，協調フィルタリングに基づく提案方法は，欠損値を含まないデータセットだ

スが異なる場合には，部署間のデータを結合した際にけでなく，多数の欠損値（たとえば 50%以上）が含ま

欠損値が生じる．また，同一の部署でも，時期によっれたデータセットを用いた場合でも，欠損値の除外やて計測対象のメトリクスが異なる場合があり，欠損値補完を行うことなしに工数予測を行える点が異なる．

の原因となる．さらに，メトリクス計測時の時間的制

本論文では，提案方法を用いたケーススタディにつ約により，未計測の値が生じることも多い6),19) ．一方，

いても報告する．ケーススタディで用いたデータは，不必要に多くのメトリクス値を計測することは，プロ株式会社 NTT データにおいて約 10 年間にわたって

ジェクトのコストの増大を招くため，多くの開発現場

1,081 件のソフトウェアプロジェクトから計測されたにおいて許容されない．以上のような理由から，長年

メトリクス値の集合であり，約 60%の欠損値が含まれにわたって多数のプロジェクトから多種類のメトリクていた．提案方法の性能を評価するために，試験工数

ス値を過不足なく計測することは容易でないといえる．

の予測を行った．また，欠損値処理法を用いたステッ

本論文では，欠損値の有無や多寡にかかわらず工数

プワイズ重回帰分析と提案方法との性能比較を行った．

予測を行うための方法として，協調フィルタリングに

本論文は，産業界における欠損値の問題に対し，企より工数予測を行う方法を提案する．協調フィルタリ

業の実データを用いて研究を進め，アカデミックな 1

ングは，欠損値を大量に含んだデータを入力とした場

つの解決策を与えたという点において，産学連携研究

合でも予測が行えるという特長があり，これまで情報の成功事例の 1 つであると考える．

検索の分野においてさかんに研究されてきた．たとえ以降，2 章では協調フィルタリングを用いた予測方

ば，amazon.com では，読書後の書籍に対する各ユー法を提案する．3 章ではケーススタディの方法と手順

ザの 5 段階評価（好き 5, . . . , 嫌い 1）に基づいて，協について説明する．4 章ではケーススタディの結果と，調フィルタリングによりユーザが好む書籍の予測を行

結果に対する考察および本論文の限界について議論すうが，各ユーザが評価した書籍が amazon.com に登録

る．5 章では関連研究を説明する．最後に 6 章でまとされている全書籍の 1%に満たない（すなわち，残りめと今後の課題について述べる．

の 99%以上が欠損値となる）場合でも予測を行える．
協調フィルタリングをソフトウェア工数予測に適用することで，未計測のメトリクス値が多数含まれる場合でも予測が可能になると期待されるが，工数予測に適

2. 協調フィルタリングを用いた予測方法
2.1 従来の協調フィルタリングとその工数予測への応用用する具体的な方法はこれまで提案されていない．

協調フィルタリングは，多量に存在するアイテムの提案方法では，まず，入力となるメトリクス値を正中からユーザの好みに合うと予測されるアイテム情報

規化し，値域を揃える．次に，正規化したメトリクスを選出して推薦するシステム（以降，推薦システム）

値を用いて，予測対象（開発中）のプロジェクトと，の基盤技術として用いられている．ここでのアイテム

過去に行われた各プロジェクトとの間の類似度を計算とは，記事，ウェブページ，書籍，楽曲，映画作品なする．類似度計算は，2 つのプロジェクトの両方で計

ど，ユーザによって好みの度合いが異なるものである．

Vol. 46

No. 5

1157

協調フィルタリングを用いたソフトウェア開発工数予測方法

これまで，数多くの推薦システム，および，協調フィルタリングのアルゴリズムが提案されている4),9),16) ．
協調フィルタリングに基づく推薦システムは，典型的に，(1) ユーザ間の類似度の計算，(2) 類似度に基づく予測値計算，という 2 つの手順を含む．この 2 つの手順に従って推薦を行うシステムとして，Resnick ら14)の GroupLens があげられる．GroupLens は，Usenetにある多数のニュース記事から，ユーザの好みに合うと予測される記事を選び出して推薦するシステムである．GroupLens を利用するすべてのユーザは，読後図 1 予測に用いる m × n 行列
Fig. 1 m × n table used for prediction.

の記事に対して，5 段階（好き 5, . . . , 嫌い 1）の評価を行う．システムは，その評価を基にユーザ間の類似あるユーザが GroupLens にある Usenet のニュース度を求める．ユーザが高い評価を行った記事は，類似

すべて（またはその大部分）を評価することは事実上度の高い他のユーザにも推薦される．すなわち，「あ不可能である）．そのため，協調フィルタリングでは，る記事に対して同様の評価をするユーザ同士は，他の欠損値を考慮した類似度計算が行われる．具体的には，記事に関しても同様の評価をするであろう」と仮定し2 人のユーザの両方が評価したアイテムの評価値のみて，自分と類似した評価をしているユーザが高い評価を用いてユーザ間の類似度を計算する．同様に，本論をした記事の推薦を行うのである．

文では，2 つのプロジェクト間で共通に計測されてい本論文では，協調フィルタリングに基づく推薦シス

るメトリクスのみを用いて類似度を計算することで，テムの考え方をソフトウェアプロジェクトの工数予測

欠損値を非常に多く含むデータセットに対しての予測に適用し，「類似するプロジェクトどうしは，工数もを可能とする．

類似しているであろう」と仮定し，プロジェクト間の2.2 提案する工数予測方法

類似度を計算し工数予測を行う．

提案する予測方法では，図 1 に示す m × n 行列

提案方法では，ユーザの評価値の代わりに，プロジェで表されるデータセットを入力として用いる．図中，クトのメトリクス値を用いる．ただし，ユーザの評価

pi ∈ {p1 , p2 , . . . , pm } は i 番目のプロジェクトを表

値は [1, 5] などの一定の値域を持つのに対し，ソフト

し，mj ∈ {m1 , m2 , . . . , mn } は j 番目のメトリクス

ウェアメトリクスはその種類ごとに値域が異なる．そを表す．すなわち，図 1 の行がプロジェクト，列がメのため，類似度計算を行う際に何らかの補正が必要とトリクスを表している．vi,j ∈ {v1,1 , v1,2 , . . . , vm,n }なる．また，ユーザの評価値は，ユーザごとの平均値

はプロジェクト pi で計測されたメトリクス mj の値のばらつきが小さい（どのユーザも評価値の平均は 3を表す．メトリクス vi,j が未計測（欠損値）の場合，に近い値となる）のに対し，ソフトウェアプロジェク

vi,j = ϕ と記す．
提案する予測方法は，工数に限らず任意のメトリク

トの規模は多様である（分散が著しく大きい）ため，
プロジェクトごとのメトリクスの平均値のばらつきがス値の予測が可能である．ここでは，a 番目のプロ

きわめて大きくなる．我々の予備調査では，この特徴

ジェクト pa を予測対象のプロジェクトとし，このプがソフトウェア工数の予測値に影響を及ぼし，従来のロジェクトにおける b 番目のメトリクス値 va,b を予協調フィルタリングの予測値計算方法では十分な精度測することを目的とし，va,b の予測値を v̂a,b と記す．

が得られなかった．本論文では，これらの点を考慮し

以下，v̂a,b を予測するための 3 つのステップについてた工数予測方法を提案する．

述べる．

協調フィルタリングをソフトウェアの工数予測に適ステップ 1（メトリクスの正規化）：プロジェクトに用できれば，欠損値を含んだデータセットを用いた含まれる各メトリクスは値域が異なるため，最場合にも予測値の計算が可能となる．協調フィルタリ

初にメトリクス値の正規化を行い，値域を [0, 1]

ングでは，欠損値を非常に多く含むデータを用いて，にする．
（プロジェクト pi の）メトリクス値 vi,j

ユーザの嗜好を予測することが前提となっている．一の正規化された値 normalized(vi,j ) を次式によっ

般的な推薦システムでは，ほぼすべてのユーザは全アて求める：

イテムの 1%未満しか評価していない．これは存在す
るアイテムの量が莫大であることによる（たとえば，

normalized(vi,j ) =vi,j − min(Pj )(1)max(Pj ) − min(Pj )1158

May 2005

情報処理学会論文誌

ここで，Pj はメトリクス mj が計測されているプテップで求めた類似度 sim(pa , pi ) を用いて，予ロジェクトの集合を表し，max(Pj ) と min(Pj )測対象プロジェクト pa のメトリクス mb の予測

はそれぞれ {vx,j |px ∈ Pj } の最大値，最小値を値 v̂a,b を計算する．予測値計算アルゴリズムは，表す．

従来の協調フィルタリングの研究において数多くステップ 2（プロジェクト間の類似度計算）：こ の ス

提案されている4),9),14),16) ．

テップにおいて，予測対象プロジェクト pa と他の

我々の予備実験において，従来の予測値計算ア

プロジェクト pi との類似度 sim(pa , pi ) を求める．

ルゴリズムを工数予測に適用した結果，十分な予従来の協調フィルタリングの研究において，相関測精度が得られなかった．その原因は，ステップ係数を用いた類似度計算アルゴリズム14) や，ベク

2 の類似度計算ではプロジェクトの規模が考慮さトルを用いた類似度計算アルゴリズム4) など，数れず（ベクトルのなす角や相関係数などを用い，多くのアルゴリズムが提案されている9),16) ．我々

ベクトルの大きさを用いないため），規模の異なの予備実験において，類似度計算アルゴリズムをるプロジェクトどうしの類似度が高くなる場合が様々に交換して工数予測を行った結果，ベクトルあったためである．この問題は，ユーザの評価値を用いたアルゴリズムの精度が最も高かった．そを用いた従来の協調フィルタリングでは顕在化しこで，本論文では，このアルゴリズムを採用する．

なかったが，工数予測においては，プロジェクト

ベクトルを用いた類似度計算アルゴリズムは，
2 つの文書間の類似度を計算するために用いられの規模を何らかの方法で評価し，予測値計算に反ている15) ．文書間の類似度計算では，2 つの文書

そこで，本論文では，予測値計算において，類に現れる単語の頻度を要素として 2 つのベクトル

似度 sim(pa , pi ) を重みとして，プロジェクトを作成し，ベクトルのなす角のコサインを用いてpa と類似したプロジェクトのメトリクス値 vi,b

類似度を計算する．Breese ら4) は文書をユーザ，に，プロジェクトの規模を補正する amplif ier

映させる必要がある．

単語をアイテム，単語の頻度をアイテムの評価値

amp(pa , pi ) を乗じた値で加重平均を行う．予測と見なし，このアルゴリズムに基づく推薦システ

値 v̂a,b を次式により計算する：
v̂a,bムを提案した．本論文では，ユーザをプロジェク

ト，アイテムをメトリクス，アイテムの評価値をメトリクス値と見なし，プロジェクト間の類似度=(vi,b ×amp(pa , pi )×sim(pa , pi ))i∈k-nearestP rojects



計算に適用する．

pi との類似度 sim(pa , pi ) を次式のように定義
する：

sim(pa , pi )= sim(pa , pi )i∈k-nearestP rojects

予測対象プロジェクト pa と他のプロジェクト(3)
ここで k-nearestP rojects は，プロジェクト paとの類似度が高い k 個のプロジェクトの集合を表す（以下，類似プロジェクトと呼ぶ）．類似プ(nrm(va,j ) × nrm(vi,j ))j∈Ma ∩Mi(nrm(va,jj∈Ma ∩Mi
)2

ロジェクトは，メトリクス mb が測定されているもののみとする．一般に，この類似プロジェクト(nrm(vi,j)2 )数 k は予測精度に影響を与える．

h = |Ma ∩ Mi | (Ma ∩ Mi の積集合の 要素数)，j∈Ma ∩Mi

(2)

nrm(v

)

rj = nrm(va,jとおき，amp(pa , pi ) を次式のよ
i,j )ここで Ma と Mi はそれぞれプロジェクト pa とうに定義する：pi で計測された（未欠損の）メトリクスの集合

amp(pa , pi )


rn





を表す．類似度 sim(pa , pi ) の値域は [0, 1] である．この計算式では，未欠損の値のみを用いて類似度を計算するため，欠損値を補完する必要がな
い．なお，この類似度計算式は，他のアルゴリズ
ム（相関係数を用いるものなど14) ）にも交換可能である．
ステップ 3（予測値計算）：このステップでは前のス

=

r +r

h = 奇数 (2n − 1)
(r1 ≤ r2 ≤ · · · rn ≤ · · · ≤ r2n−1 )

n
n+1



2


h = 偶数 (2n)(r1 ≤ · · · ≤ rn ≤ rn+1 ≤ · · · ≤ r2n )(4)

ampliﬁer は，プロジェクト pa の規模が pi のVol. 46

No. 5

協調フィルタリングを用いたソフトウェア開発工数予測方法

1159

規模のおよそ何倍になっているかを，正規化されプワイズ変数選択法がある．ステップワイズ変数選択たメトリクスの比 rj の中央値により求めている．

法は以下の手順で行う21) ．(1) 初期モデルを作成する，

この式は，工数をはじめとする多くのソフトウェいことを利用している．この ampliﬁer により，多(2) 作成されたモデルに対して，各説明変数の係数が 0でないかの検定を行い，有意水準 5%で棄却されなかった場合に変数を採択し，有意水準 10%で棄却される様な規模のプロジェクトを含むデータセットを用場合には変数を除去する．ただし，多重共線性を回避いた場合にも工数予測が可能となる．なお，よりするために，採択する変数の VIF（variance inﬂation

単純な方式として，プロジェクトの規模を表すメ

factor，分散拡大要因）が 10 以上の場合，またはその変数を採択することによって，他の変数の VIF が10 以上となる場合，その変数は採択しない，(3) 手順

アメトリクスが，プロジェクトの規模と相関が高トリクス（プロジェクト終了時のソースコードの行数など）を直接 ampliﬁer の計算に用いることも考えられるが，工数予測を行う時点において予(2) ができなくなるまで繰り返す．ステップワイズ変測対象のプロジェクトの規模が確定している（計数選択法を用いた重回帰分析をステップワイズ重回帰

測されている）とは限らない．そのため，本論文分析と呼ぶ．

では，間接的に規模の比を求める一手段として，データに欠損値を含んだままでは，ステップワイズ

やや乱暴ではあるが，rj の中央値を用いること

重回帰分析を行うことはできない．欠損値を含むデーとした．

タを用いる場合，欠損値処理法を用いてステップワイ

従来の協調フィルタリングでは ampliﬁer を用
いずに，類似度を重みとした加重平均で予測値をズ重回帰分析を行う．欠損値処理法として以下の 3 つが広く用いられている11) ．

計算している16) ．他の方法として，予測対象ユー

リストワイズ除去法 欠損値を 1 つでも含んでいる

ザの評価値の平均値からの偏差を用いて予測値計

プロジェクトをデータから除去し，欠損値をまった算を行う方法4),14) も提案されているが，これらく含まないプロジェクトのみでモデル作成を行う．

を用いて予備実験を行った際の工数の予測精度はペアワイズ除去法 モデル作成に必要な相関係数をampliﬁer を用いた場合よりも低かったため，本論文では採用しなかった（予測値計算のステップで回帰モデルを利用する方法16) も提案されている求める際，ペアにした変数に欠損値が含まれていが，その工数予測への応用は今後の課題である）．

平均値挿入法 変数から欠損値を除いて平均値を計

ないプロジェクトは計算に用い，欠損値が含まれているプロジェクトは用いない．

3. ケーススタディ

算し，計算した平均値を欠損値部分に挿入する．

3.1 目

作成を行う．欠損値部分に値を挿入する方法とし的変数に欠損値が含まれていない状態にしてモデル

ケーススタディの目的は，予測に用いるデータに欠ては，もっと単純かつ一般的な方法である12) ．

損値が多数含まれている場合における，提案方法の予測精度を評価することである．予測精度の評価基準は3.3 利用したデータ
ケーススタディでは，試験工数の予測を行った．表 1

絶対誤差と相対誤差とした．評価基準の比較対象としにケーススタディで使用したデータに含まれるメトリて，欠損値処理法を用いたステップワイズ重回帰分析

クスと，各メトリクスの欠損値含有率を示す．データ

による予測を用いた．

は株式会社 NTT データにおいて約 10 年間にわたっ

3.2 欠損値処理法を用いたステップワイズ重回帰
分析であった．収集すべきメトリクスの種類が年度や部署

重回帰分析はソフトウェア開発における工数予測にによって異なっていたため，データには欠損値が多数

広く用いられている5),25) ．重回帰分析では，予測対て記録されたものであり，プロジェクト数は 1,081 件

含まれている．

象の変数（目的変数）と，目的変数に対して影響する

データ全体に含まれる欠損値の割合は 60%であると考えられる複数の変数（説明変数）の関係を一次式が，メトリクスごとに欠損値を含む割合が大きく異で表したモデルを作成し，予測を行う．ソフトウェア

なっている．メトリクス m2 〜m4 には欠損値がほと開発における工数予測の場合，試験工数などが目的変んど含まれていないが，m1 ，m5 〜m13 には少なくと数であり，それ以外のメトリクスが説明変数の候補とも 70%の欠損値が含まれている．説明変数の候補としなる．

て，試験工程までに得られる m1 〜m13 を用いる．目

候補の中から説明変数を選択する方法として，ステッ

的変数は m14 である．

1160

May 2005

情報処理学会論文誌
表 1 ケーススタディに用いたデータに含まれるメトリクス
Table 1 Metrics in case study data.
メトリクス

m1
m2
m3
m4
m5
m6
m7
m8
m9
m10
m11
m12
m13
m14

欠損値含有率

汎用システム（汎用システムならば 1，それ以外ならば 0 とする）
新規開発（新規開発ならば 1，それ以外ならば 0 とする）
設計工数
製造工数
設計工数（正社員分）
設計工数（派遣社員分）
設計工数（外注分）
製造工数（正社員分）
製造工数（派遣社員分）
製造工数（外注分）
基本設計レビューで発見された欠陥（件/頁．発見数を仕様書の頁数で除算）
詳細設計レビューで発見された欠陥（件/頁）
プログラム設計レビューで発見された欠陥（件/頁）
試験工数

76%
7%
0%
0%
87%
87%
87%
87%
87%
87%
84%
71%
80%
0%

3.4 評 価 基 準

データ，もう一方をテストデータとした．フィット

本論文では，予測方法の評価基準として，一般的データは予測モデルの構築に利用し，テストデーに用いられている以下の 5 つを用いる7),10),17),19),24) ．

タは予測モデルの評価に用いる．フィットデータ

以降，実測値（記録されている値）を Y と表し，予とテストデータのペアを 10 組作成した．

2 
1 で作成した 10 組のペアを用いて，2.2 節で述
べた提案方法の予測精度を評価した．適切な類似測値を Ŷ と表す．また，メトリクスに含まれているY の個数を t とおく．
絶対誤差の平均（MAE）：



M AE =

プロジェクト数（式 (3) の k の値）を発見するた|Ŷ − Y |め，フィットデータを用いて類似プロジェクト数(5)t
絶対誤差の分散（VAE）：



V AE =を変更（k = 1 から k = 50）し，最も MRE が小さくなった k を採用した．そして，採用した類(|Ŷ − Y | − M AE)

似プロジェクト数でテストデータを用いた予測を

2t
相対誤差の平均（MRE）：

  Ŷ − Y  1


M RE =
 Y × t(6)

行い，MAE，VAE，MRE，VRE，Pred25 を計

(7)

算した．

3 
1 で作成した 10 組のペアを用いて，3.2 節で述
べた欠損値処理法を用いたステップワイズ重回帰
分析でモデルを作成した．そして，テストデータ

相対誤差の分散（VRE）：

  Ŷ − Y V RE =
 Y  − M RE

2の欠損値に各変数の平均値を代入した後，フィッ

1
×
t

(8)

トデータより作成したモデルを用いて予測を行い，MAE，VAE，MRE，VRE，Pred25 を計算した．

Pred25： 相対誤差 25%以下の Ŷ が，t に含まれなお，作成したどのモデルにおいても，条件指標ている割合．一般的に Pred25 が大きいほど，予測精（condition index）の最大値は 15 以下となった．

度が高いと考えられる．

isAccurate

Pred25 =
isAccurateŶ − YY(9) Ŷ − Y 1  Y  ≤ 0.25



= 
Ŷ − Y > 0.250 Y t Ŷ − YY

一般的に条件指標が 30 以上の場合，多重共線性があると判断される20) ．

4 
2 ，
3 で得られた評価基準を比較し，どの方法が3.5 ケーススタディの手順
ケーススタディでは，以下の手順で m14 を予測した．

1 データを無作為に半数ずつに分け，一方をフィット

最も予測精度が高いのかを結論付けた．また，得られた結果に対して，その意味と限界について考察を行った．

4. ケーススタディの結果と考察
4.1 予測精度の比較提案手法を用いて予測した際，類似プロジェクト数

k を 21 とした．類似プロジェクト数（k = 1〜50）と

Vol. 46

No. 5

1161

協調フィルタリングを用いたソフトウェア開発工数予測方法
表 2 評価基準（10 個のテストデータから得られた評価基準の平均値）
Table 2 Averaged evaluation criteria resulted with the 10 test dataset.

リストワイズ除去法(P 値)
ペアワイズ除去法(P 値)
平均値挿入法
(P 値)
協調フィルタリング

MAE
0.91(0.0059 )1.76(0.0020 )0.32(0.0020 )
0.19

VAE
5.50
(0.11)
181.20(0.0059 )3.87(0.049)1.31

MRE
192.61(0.0020 )223.95(0.0020 )22.11(0.0020 )0.79

VRE3.987E +06(0.0020 )3.566E +06(0.0020 )2.571E +04(0.0020 )2.82

Pred258%(0.0020 )7%(0.0020 )12 %(0.0020 )37%

検定は提案方法と 3 つの欠損値処理法をそれぞれ対にして行うため，1 つの評価基準について 3 回検定を行うことになる．多重比較を行うため，Bonferroni の方
法22) により有意水準の調整を行い，0.05/3=0.0166
を有意水準に設定した．

4.2 考
図 2 類似プロジェクト数と MRE の関係（10 個のフィットデータから得られた MRE の平均値．k = 1〜50）
Fig. 2 The relation between neighborhood size and MRE(Averaged MRE resulted with the 10 fit dataset,from k = 1 up to k = 50).

察

ケーススタディでは，欠損値処理法を用いたステッ
プワイズ重回帰分析よりも，提案方法のほうが高い予測精度を示した．ステップワイズ重回帰分析の予測精度が低くなっているのは，欠損値の存在が予測モデルの性能を低下させているためであると考えられる．性MRE との関係を図 2 に示す．グラフにおいて，横軸は類似プロジェクト数を，縦軸は k に対応する MRE

ジェクトを予測しなければならないため，予測精度がを示している．縦軸の MRE は，10 個のフィットデー

低くなっていると考えられる．協調フィルタリングのタから得られた MRE を平均したものである．MRE

場合，プロジェクトごとに予測式を作成するので，欠が最小になっている k をテストデータの予測に採用

損値が少ないケースでは高い予測精度が得られ，欠損した．

値が多いケースでもそれなりの精度が得られているもケーススタディに用いた予測方法を比較した結果，能の低下した 1 個の予測式を使って，あらゆるプロのと考えられる．

提案方法が最も高い予測精度となった．表 2 にケー

本ケーススタディの限界は，1 つのデータセットを

ススタディの結果から得られた評価基準を示す．表は用いた評価しか行っていないことである．そのため，10 個のテストデータから得られた評価基準を平均し任意のデータセットに対して提案方法が有効である

たものである．MAE，VAE，MRE，VRE は値が小かどうかは，現時点では定かでない．現実には，ソフ

さいほど予測精度が高く，逆に Pred25 は値が大きい

トウェア開発企業で記録されるデータセットの状態はほど予測精度が高いことを示す．表を見ると，提案方様々である（欠損値の量と分布が異なっている）．本法の MAE，VAE，MRE，VRE の値が最も小さく，論文の結論を強化し，信頼性を向上させるために，他

Pred25 が最も大きいことが分かる．なお，欠損値処
理法どうしで評価基準を比較すると，平均値挿入法の予測精度が最も高く，逆にペアワイズ除去法の予測精のデータセットを用いたり，欠損値の量と分布を実験

度は最も低かった．
さらに，ステップワイズ重回帰分析と提案方法の評的に変化させたりしたケーススタディを行うことが課題となる．

5. 関 連 研 究

価基準に差があるかどうかを検定すると，VAE を除

ケーススタディで用いた欠損値処理法，特にリスト

く評価基準で有意な差があった．検定の結果，有意差

ワイズ除去法は多くの統計ソフトで欠損値処理法としがあったものを表 2 に斜体で示す．ケーススタディでて初期設定されており12) ，ソフトウェア工学の研究には，同じフィットデータに対して提案方法とステップ

おいても広く用いられている5),12),19) ．しかし，リス

ワイズ重回帰分析を適用しているが，各評価基準は正

トワイズ除去法は，欠損値が含まれる割合が高くなる

規分布していなかったため，ノンパラメトリックな検と，利用可能なデータを著しく減らしてしまう．また，

定である Wilcoxon の符号付順位和検定を行った

22)．

欠損値を補完する方法（平均値挿入法など）は，デー

1162

情報処理学会論文誌

May 2005

タの特性（分散など）が変わり，望ましいモデルが得クトで記録された工数を超える値をとることができず，られない場合がある．どの欠損値処理法を用いても問規模の大きなプロジェクトの工数を過少予測する傾向

題がないのは，欠損値の量が少なく，かつ欠損値の分がある．

布がランダムである場合のみである19) ．

欠損値の含むデータセットに適用できそうな類似度

本論文では，提案方法との比較を，リストワイズ除計算を採用した analogy-based 法も存在する．Walk-

去法，ペアワイズ除去法，平均値挿入法の 3 つの欠損値処理法と行ったが，これら以外にも，あまりメジャー

erden ら24) は，2 プロジェクト間の各メトリクス値の差からメトリクスごとの類似度を求め，その平均値をな方法ではないものの，欠損値処理法は存在する．たプロジェクトの類似度としている．類似度の値域がメとえば，Strike ら19) はリストワイズ除去法，平均値

トリクスの個数に依存しないため，欠損値を含むデー

挿入法，ホットデック挿入法の性能を比較した結果，タセットに適用できるように類似度計算式を拡張する

ホットデック挿入法の性能が最も高いことを示していことは可能と考えられる．一方，予測値計算では，類似る．Myrtveit ら12) は，リストワイズ除去法，平均値

プロジェクトの工数 ÷ 類似プロジェクトの FP（ファ挿入法，類似レスポンスパターン挿入法（SRPI），完
全情報最尤法（FIML）の性能を比較した結果，欠損値の分布がランダムでない場合は，FIML を用いるのンクションポイント）× 予測対象プロジェクトの FP，により工数を求めている．この方法は，プロジェクトの規模（の指標の 1 つである FP）により予測値の補で適切であり，それ以外の欠損値処理法では適切なモ正を行うという点において，提案方法の ampliﬁer とデルが構築できないと結論付けている．

似ている．ただし，提案方法と異なり，すべてのプロ

ただし，これらの従来研究では，本論文で用いたような欠損値が 60%以上含まれるデータを用いた評価

ジェクトにおいて FP が計測されている（欠損値が存在しない）ことが求められる．

は行っていない．今後，提案方法とホットデック挿入

これらの analogy-based 法に用いられている類似

法，SRPI，FIML などとの比較実験を行うことが課

度計算，および，予測値計算の一部は，欠損値を含む

題としてあげられる．

データセットに適用できるように拡張できる可能性が

協調フィタリングによく似た方法として，anal2),17),24)ogy（類似度）-based 法が提案されている．
Analogy-based 法は，提案方法と同様，予測対象のプロジェクトと類似したプロジェクトを選び出し，類似するプロジェクトの工数を元に，予測対象のプロジェ
クトの工数を予測する．

ある．拡張した計算式を提案方法のステップ 2，および，3 に適用し，その性能を評価することは，今後の課題の 1 つである．

6. お わ り に
本論文では，過去のソフトウェア開発プロジェクト

しかし，analogy-based 法は，重回帰分析と同様，

において記録された多種類のソフトウェアメトリクス

欠損値を含むデータセットに直接適用できず，欠損値

値を入力データとし，協調フィルタリングにより予測処理法を用いて欠損値のないデータセットをあらかじ

工数を求める方法を提案した．提案方法は，欠損値をめ作成することが求められている12) ．その理由の 1 つ

数多く含む入力データに用いた場合においても，欠損は，類似度の計算方法にあると考えられる．代表的な

analogy-based 法である Shepperd ら17) の方法では，値の除外や補完を行うことなしに工数予測が行える．
60%の欠損値を含むデータを用いて予測を行った結果，

ベクトルのユークリッド距離を用いて類似度を計算し，提案方法は従来のステップワイズ重回帰分析よりも高類似プロジェクト（k = 1〜3）の工数の（類似度によい予測精度を示した．なお重回帰分析には，欠損値のる）加重平均により予測工数を計算する．ここで，仮割合が増加するに従い，精度が低下する傾向がある19) ．

に欠損値を含んだまま 2 つのベクトル間のユークリッ

提案手法にも同様の傾向が存在する可能性があり，欠ド距離を計算したとすれば，欠損値の多寡（すなわち損値の割合と予測精度の関係を明らかにすることは今

ベクトルの次元）に類似度の値が大きく影響されるこ後の課題である．

ととなり，十分な精度が得られない可能性がある．一

これまでソフトウェア工学の研究において，データ方，本論文では，類似度の計算にベクトルのなす角を収集の際に起こる欠損値の問題は見落とされがちで用いているため，ベクトルの次元にかかわらず類似度あった6) ．欠損のないデータセットを用いることを前が [0, 1] の値域に収まる点が異なる．なお，Sheppaerd

提とした予測モデルは非常に数多く提案されているのらの方法では，予測値計算において，ampliﬁer のように対し，欠損値処理法に関する提案，評価を行った論

な補正を行わないため，予測工数は，過去のプロジェ

文は数少ない．我々は産学連携研究を通じて，データ

Vol. 46

No. 5

協調フィルタリングを用いたソフトウェア開発工数予測方法にしばしば含まれる欠損値に着目した．そして，欠損値が存在することを前提とした工数予測方法を提案し，企業の実データを用いてその評価を行った．本論文の成果は，産業界の現状に即した問題に対して，産学が連携して解決策を得たという点において，産学連携研
究の成功事例の 1 つであると考える．
提案方法は，改良の余地があると考えている．1 つは，類似度計算，および，予測値計算の方法を改良することである．類似度計算においては，各メトリクス
に対して何らかの重み付けを行うことが考えられる．
現状では，すべてのメトリクスを [0, 1] に正規化する
ため，同一の重み付けとなっている．予測値計算においては，式 (3) の amp を変更することで，予測精度が改善する可能性がある．今後，回帰モデルを利用する方法16) の適用について検討する予定である．もう1 つは，類似度を計算する際に，変数選択を行うことである．今回のケーススタディでは，重回帰分析では
ステップワイズ法による変数選択を行っているが，提案方法では，変数選択を行わずすべてのメトリクスを用いている．予測精度が最も高くなるようにメトリクスを選択できれば，精度が改善される可能性がある．
謝辞 本研究の一部は，文部科学省「e-Society 基盤
ソフトウェアの総合開発」の委託に基づいて行われた．

参

考 文

献

1) Albrecht, A. and Gaﬀney, J.: Software Function, Source Lines of Code and Development
Eﬀort Prediction, IEEE Trans. Softw. Eng.,
Vol.9, No.6, pp.83–92 (1979).
2) Auer, M. and Biﬄ, S.: Increasing the Accuracy and Reliability of Analogy-Based Cost Estimation with Extensive Project Feature Dimension Weighting, Proc. International Symposium on Empirical Software Engineering (ISESE’04 ), California, pp.147–155 (2004).
3) Boehm, B.W.: Software Engineering Economics, p.767, Prentice-Hall, Englewood Cliﬀ,
New Jersey (1981).
4) Breese, J.S., Heckerman, D. and Kadie, C.:
Empirical Analysis of Predictive Algorithms
for Collaborative Filtering, Proc. 14th Conf. on
Uncertainty in Artificial Intelligence, Wisconsin, pp.43–52 (1998).
5) Briand, L., Langley, T. and Wieczorrek, I.: A
replicated assessment and comparison of common software cost modeling techniques, Proc.
22nd IEEE International Conf. on SoftwareEng., Limerick, pp.377–386 (2000).
6) Cartwright, M.H., Shepperd, M.J. and Song,1163

Q.: Dealing with Missing Software Project
Data, Proc. 9th International Software Symposium, Sydney, pp.154–165 (2003).
7) Conte, S.D., Dunsmore, H.E. and Shen,
V.Y.: Software Engineering Metrics and Models, p.396, The Benjamin/Cummings Publishing Company, Inc., Menlo Park, California(1986).
8) Finnie, G.R., Wittig, G.E. and Desharnais,
J.M.: A comparison of software eﬀort estimation techniques: Using function points withneural networks, casebased reasoning and regression models, Journal of Systems and Software, Vol.39, No.3, pp.281–289 (2000).
9) Goldberg, D., Nichols, D., Oki, B.M. andTerry, D.: Using Collaborative Filtering to
Weave an Information Tapestry, Comm. ACM,
Vol.35, No.12, pp.61–70 (1992).
10) Khoshgoftaar,
T.M.,
Munson,J.C.,
Bhattacharya, B.B., and Richardson, G.D.:
Predictive Modeling Techniques of Software
Quality from Software Measures, IEEE Trans.
Softw. Eng., Vol.18, No.1, pp.979–987 (1992).
11) Little, R. and Rubin, D.: Statistical Analysis
with Missing Data, 2nd ed., p.408, John Wiley& Sons, New York (2002).
12) Myrtveit, I., Stensrud, E. and Olsson, U.H.:
Analyzing data sets with missing data: An empirical evaluation of imputation methods andlikelihood-based methods, IEEE Trans. Softw.
Eng., Vol.27, No.11, pp.999–1013 (2001).
13) Ohsugi, N., Tsunoda, M., Monden, A. andMatsumoto, K.: Eﬀort Estimation Based on
Collaborative Filtering, Proc. 5th International Conference on Product Focused Software
Process Improvement (Profes2004 ), Kyoto,
pp.274–286 (2004).
14) Resnick, P., Iacovou, N., Suchak, M.,
Bergstrom, P. and Riedl, J.: GroupLens: An
Open Architecture for Collaborative Filteringof Netnews, Proc. ACM Conf. on Computer
Supported Cooperative Work (CSCW’94 ),North Carolina, pp.175–186 (1994).
15) Salton, G. and McGill, M.: Introduction toModern Information Retrieval, p.448, McGrawHill, New York (1983).
16) Sarwar, B.M., Karypis, G., Konstan, J.A.
and Riedl, J.: Item-Based Collaborative Filtering Recommendation Algorithms, Proc. 10th
International World Wide Web Conference(WWW10 ), Hong Kong, pp.285–295 (2001).
17) Shepperd, M. and Schoﬁeld, C.: Estimating
Software Project Eﬀort Using Analogies, IEEE
Trans. Softw. Eng., Vol.23, No.12, pp.736–743

1164

May 2005

情報処理学会論文誌(1997).
18) Srinivasan, K. and Fisher, D.: Machine Learning Approaches to Estimating Software Development Eﬀort, IEEE Trans.Softw.Eng., Vol.21,
No.2, pp.126–137 (1995).
19) Strike, K., El Eman, K. and Madhavji, N.:
Software Cost Estimation with Incomplete
Data, IEEE Trans. Softw. Eng., Vol.27, No.10,
pp.890–908 (2001).
20) Tabachnick, B.G. and Fidell, L.S.: Using Multivariate Statistics, 3rd Edition, p.880, Harper
Collins College Publishers, New York (1996).
21) 田中 豊，垂水共之（編）：Windows 版 統計解析ハンドブック 多変量解析，p.240，共立出版，
東京 (1995)．
22) 田中 豊，垂水共之（編）：Windows 版 統計解析ハンドブック ノンパラメトリック法，p.164，
共立出版，東京 (1999)．
23) 角田雅照，大杉直樹，門田暁人，松本健一：協調フィルタリングに基づくソフトウェア信頼性予測方法，電子情報通信学会技術報告，ソフトウェ
アサイエンス研究会，No.SS2003-27, pp.19–24(2003).
24) Walkerden, F. and Jeﬀery, R.: An Empirical
Study of Analogy-based Software Eﬀort Estimation, Empirical Software Engineering, Vol.4,
Issue 4, pp.135–158 (1999).
25) Walston, C. and Felix, C.: A Method of Programming Measurement and Estimation, IBM
Systems Journal, Vol.1, pp.54–73 (1977).

大杉 直樹（学生会員）
平成 13 年奈良工業高等専門学校
専攻科電子情報工学専攻修了．平成16 年奈良先端科学技術大学院大学
情報科学研究科博士後期課程修了．
同年同大学産学官連携研究員．博士（工学）．エンピリカルソフトウェア工学，特に，ソフトウェア開発コスト/信頼性/リスク予測，ソフトウェ
アプロセス改善，協調フィルタリングの研究に従事．
電子情報通信学会，IEEE 各会員．
門田 暁人（正会員）
平成 6 年名古屋大学工学部電気学科卒業．平成 10 年奈良先端科学技
術大学院大学情報科学研究科博士後期課程修了．同年同大学同研究科助手．平成 16 年同大学助教授．平成15〜16 年 Auckland 大学客員研究員．博士（工学）．
ソフトウェアメトリクス，ソフトウェアセキュリティ，ヒューマンインタフェースの研究に従事．電子情報通信学会，日本ソフトウェア科学会，教育システム情報学会，IEEE，ACM 各会員．
松本 健一（正会員）
昭和 60 年大阪大学基礎工学部情報工学科卒業．平成元年同大学大学(平成 16 年 9 月 1 日受付)

院博士課程中退．同年同大学基礎工(平成 17 年 2 月 1 日採録)

学部情報工学科助手．平成 5 年奈良先端科学技術大学院大学助教授．平角田 雅照

成 13 年同大学教授．工学博士．エンピリカルソフト

平成 9 年和歌山大学経済学部卒業．

ウェア工学，特に，プロジェクトデータ収集/利用支

平成 16 年奈良先端科学技術大学院

援の研究に従事．電子情報通信学会，ACM 各会員，

大学情報科学研究科博士前期課程修IEEE Senior Member．

了．現在，同大学院情報科学研究科
博士後期課程在籍．ソフトウェアメ
トリクス，ソフトウェアプロセスに興味を持つ．電子情報通信学会，IEEE 各会員．

佐藤 慎一（正会員）
平成 6 年大阪大学基礎工学部情報工学科卒業．平成 8 年同大学大学
院博士前期課程修了．同年株式会社

NTT データ入社．ソフトウェアプロ
セス改善，エンピリカルソフトウェ
ア工学，ソフトウェアメトリクスに興味を持つ．