# An Overview of IoT Sensor Data Processing, Fusion, and Analysis Techniques
## 3 IoT Sensor Data Processing
### Missing Data Imputation  
Imputation is an essential pre-processing task in data analysis for dealing with incomplete data. Various fields and industries like smart cities, healthcare, GPS, smart transportations, etc., use the Internet of Things as a key technology that generates lots of data [25]. The learning algorithms which analyze the IoT data generally assume that the data are complete. While missing data are common in IoT, the data analytics performed on missing or incomplete IoT data may produce inaccurate or unreliable results. Therefore, an estimate of the missing value is necessary for IoT. Three main tasks must be performed to solve this problem. The first step is finding the reason for missing data. Poor network connectivity, faulty sensor systems, environmental factors and synchronization issues are the various reasons for the incomplete results. The missing data are divided into three types: missing completely at random (MCAR), missing at random (MAR), and not missing at random (NMAR). The further step involves studying the pattern of missing data. The two approaches are monotonous missing patterns (MMP) and random missing patterns (AMP). Finally, they form a missing value imputation model for IoT to use the model to approximate the value for the missing data. Within the literature, some missing value imputation algorithms include single imputation algorithms, multivariate imputation algorithms, etc. The traditional imputation algorithm is not suitable for IoT data. There are some algorithms which are mainly used for missing data imputation, and these are given in the next section. Gaussian Mixture modelThe Gaussian Mixture Model (GMM) is a clustering algorithm [26]. It is a probabilistic model that uses a soft clustering approach for distributing the data points to different clusters. A Gaussian Mixture is defined as follows: G = {\(GD_{1}\), \(GD_{2}\),..., \(GD_{\rm k}\)}, where k denotes the number of clusters. Each \(GD_{\rm i}\) is a Gaussian distribution function that comprises a mean \(\mu\), which represents its center, a covariance \(\Sigma\), and a probability \(\pi\), which denotes how big or small the Gaussian function will be. Assuming a data set D is generated using GMM with k components, the function f\({}_{\rm k}\) (\(GD_{\rm i}\)represents the probability density function of the \(k\)th component. The probability of \(GD_{i}\), \(P(GD_{i})\) generated by GMM, is as given in Equation (4) below. \[P(GD_{i})=\sum_{i=1}^{k}\pi_{i}\,f_{i}\,\left(GD_{i}|\mu_{i},\Sigma_{i}\right) \tag{4}\]  
To handle the missing data imputation of the IoT sensor data using the GMM model involves five steps, namely instance creation, clustering, classification, distance measuring and data filling. First, the instances in the data set D are divided into two separate data sets, as D\({}_{1}\) and D\({}_{2}\). D\({}_{1}\) contains all the instances without missing values, whereas D\({}_{2}\) contains all instances in the data set which has the missing values. Secondly, the GMM model based on the EM algorithm is used to cluster the complete data set D1. The cluster center for each cluster is determined. After that, the cluster for each instance in D1 is computed. Third, the incomplete data set D\({}_{2}\) is taken as a testing set. Each instance in D\({}_{2}\) is classified according to the clustering result. For instance, \(\alpha_{i}\in D_{2}\), \(\alpha_{i}\) belongs to a cluster if it is closer to the cluster center of that cluster by Euclidean distance. In the fourth step, for each instance \(\alpha_{i}\) in D\({}_{2}\), one must determine one or more complete instances that are closest to \(\alpha_{i}\) in the same cluster, using Euclidean distance as the distance measure. Finally, one must fill in the missing value of the instance \(\alpha_{i}\) by finding the mean value of the closest instance in the cluster. _Spatial and temporal correlation_[27]: Sensor nodes periodically detect data. Since the sensor data are time-sensitive, different results would be obtained using other sensor data for analysis.