Missing data is one of the common problems that software practitioners face often when they analyze software project data. In the empirical software engineering community, k-NN and Maximum likelihood estimation were known to be effective to software project data. However, they have the following limitations in applying alone to software project data: (1) the imputation accuracy of k-NN is affected by the homogeneity of data, and (2) Maximum likelihood estimation is ineffective in the data set containing less than 100 project instances. To cope with these limitations of existing techniques in applying them alone to software project data, hybrid imputation techniques combining several methods have been developed. However, it can be applied to only software project data with less than 100 project instances.
In this paper, we propose a hybrid imputation method using cluster-based k-NN and Maximum likelihood estimation in software project data. Maximum likelihood estimation is applied first and then Hierarchical clustering partitions software project data into clusters. Initial imputation using Maximum likelihood estimation makes k-NN use the non-missing data of project instances having missing data, in its searching; partitioning software project data into clusters increases the homogeneity of data set. After finding most $\it{k}$ similar project instances in the cluster, an average between the result of k-NN and that of Maximum likelihood estimation is taken.
In the empirical study, we evaluated our approach and other five methods by experiments on 2,160 data sets, which are generated by injecting missing data into the two industrial data sets such as software project data measured in a bank in Korea and ISBSG data set. The results of the Wilcoxon rank sum test confirm that our approach outperforms the other five methods with respect to the data set size, the number of missing attributes, the missing data percentage, and the missingness mechanism.
결측값 (missing data) 은 각종 분석 또는 예측 모델 생성시 흔히 직면하게 되는 문제이다. 소프트웨어 프로젝트 데이터에 포함된 결측값에 대한 각종 결측값 기법 (missing data technique) 들을 비교한 기존 연구결과를 통해 k 최근접 이웃 대치법 (k-Nearest Neighbor, 이하 k-NN) 과 최대우도추정법 (maximum likelihood estimation, 이하 MLE) 이 소프트웨어 프로젝트 데이터에 포함된 결측값에 효과적임을 알 수 있다. 하지만 두 가지 기법들은 소프트웨어 프로젝트 데이터에 적용시 다음과 같은 단점을 가진다: (1) k-NN은 데이터의 동질성 (homogeneity) 에 영향을 받고 결측값을 포함하는 프로젝트 인스턴스의 관측값을 활용하지 못하며, (2) MLE는 프로젝트 인스턴스가 100 개 이하인 데이터 셋인 경우 대치 정확성이 떨어진다. 이러한 두 가지 기법들의 단점을 보완하기 위해, 우리는 소프트웨어 프로젝트 데이터에 포함된 수치 결측값에 대해 군집화 (clustering) 에 기반한 k-NN과 MLE를 결합한 하이브리드 대치법을 제안한다. 새로운 대치기법은 우선 모든 결측값에 대해 MLE 추정값으로 대치한 후 계층 군집화 (hierarchical clustering) 를 적용하여 유사한 프로젝트 인스턴스를 포함하는 다수의 군집 (cluster) 들로 나눈다. 최초 모든 결측값을 MLE 추정값으로 대치하여 k-NN 적용시 결측값을 포함하는 프로젝트 인스턴스의 관측값을 활용할 수 있도록 하였고 군집화를 적용하여 데이터의 동질성을 높여 k-NN의 대치 정확성을 제고하고자 하였다. 각각의 결측값을 포함하는 프로젝트 인스턴스에 대해 해당 군집내에서 k-NN을 적용하고, k-NN 결과와 MLE 추정값의 평균을 최종 대치값으로 결정한다. 우리 기법의 대치 정확성을 검증하기 위한 사례연구로, 국내 은행 데이터 셋과 ISBSG 소프트웨어 프로젝트 데이터 셋으로부터 생성한 2,160 개의 결측값을 포함하는 데이터 셋에 대해 우리 기법과 다섯 개의 대치 기법을 적용하였다. 실험결과에 대한 윌콕슨 검정을 통해 우리 기법이 다른 대치 기법들보다 정확성을 높음을 확인할 수 있었다.