## 4 Results and Discussion  
With the developed framework introduced in Section 2 and real-building case study and experiment settings in Section 3, we will implement the developed framework to the case study and discuss the results in Section 4. The framework generates a set of validation data from each sensor listed in Table 1 according to the real missing data characteristics and pattern recognition techniques introduced in Section 3.3. Then, for each sensor, multiple data imputation methods listed in Table 4 (Section 3.4) are tested under the generated validation dataset. The performance of the data imputation method is quantified by the coefficient of variation of root mean squared error (CVRMSE) of the imputed value calculated by each imputation method and the truth value from the validation dataset. The smaller the error, the better the performance of imputation. The results of imputation performance are summarized in Table 5. \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**No.** & **Category** & **Abbreviation** & **Definition and Description** & **Library or Reference** \\ \hline
1 & Simple & bfill & use next valid observation to fill gap & pandas.DataFrameFrame.fillna \\
2 & Simple & fill & use last valid observation to fill gap & pandas.DataFrameFrame.fillna \\
3 & Simple & nearest & Use the nearest available value & scipy.interpolate.interp1d \\
4 & Linear & linear & Linear interpolation & pandas.DataFrameFrame.interpolate \\
5 & Nonlinear & quadratic & Interpolation of second order & scipy.interpolate.interp1d \\
6 & Nonlinear & cubic & Interpolation of third order & scipy.interpolate.interp1d \\
7 & Spline & piecewise\_polynomial & Piecewise polynomial curve specified & scipy.interpolate.PiecewisePolynomial \\  & & & by points and derivatives & \\
8 & Spline & from\_derivatives & Piecewise polynomial in the & scipy.interpolate.BPoly.from\_derivatives \\  & & & Bernstein basis & scipy.interpolate.PchipInterpolator \\
9 & Spline & pchip & Piecewise Cubic Hermite & scipy.interpolate.PchipInterpolator \\
10 & Spline & akima & Akima spline interpolation & scipy.interpolate.Akima1 DInterpolator \\  & & & Use Multi-layer Perceptron to predict & \\
11 & Machine & ANN & the missing value based on weather & sklearn.neural\_network.MLPRegressor \\  & & & and time & \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Pool of data imputation methods for the case study. \begin{table}
\begin{tabular}{c c c c c c c c c c c c c c c} \hline \hline
**Sensors\(\backslash\)Impulation Methods** & **bfill** & **fill** & **ANN** & **Linear** & **Nearest** & **Quadratic** & **Cubic** & **pp \({}^{\star}\)** & **Fd \({}^{\star}\)** & **pchip** & **akima** & **Avg \({}^{\star}\)** & **Ensemble** \\ \hline peco\_meter/elec\_usage\_chiller & 0.03 & 0.04 & 0.02 & 0.02 & 0.02 & 0.03 & 0.04 & 0.04 & 0.02 & 0.02 & 0.02 & 0.02 & 0.03 & 0.02 \\ chws\_control/v\  
Several conclusions can be drawn by comparing the imputation accuracy among various sensor types and imputation methods from Table 5:  
* The listed imputation methods have vastly different performance (imputation accuracy). In terms of sensor average, the best imputation method, the developed ensemble method can outperform the worst (bfill) method by 70.0%. The developed ensemble method can increase the accuracy of imputation by 57.1% on average compared with single imputation method. It can also increase the accuracy of imputation by the best single imputation method (ANN in this case) by 18.2%. The results show the effectiveness of improving imputation accuracy and indicate the necessity of the pool-based ensemble imputation methods developed in the framework. * The performance of single imputation methods differs from sensor to sensor. Here, single imputation methods refer to all imputation methods that are not the ensemble imputation method. Some single imputation methods can have high accuracy for one sensor but will loses accuracy when used for another.