# Adaptive Imputation of Irregular Truncated Signals with Machine Learning
## 3 Materials and Methods
### Simulated Dataset  
The simulated dataset that we constructed for use in our research was designed to realistically reflect data that may be collected by an advanced manufacturing facility. Our generated data simulates the operation of various pieces of machinery in a manufacturing environment, monitored by smart sensors as part of an Internet of Things (IOT) system. The dataset contains a mixture of continuous variables and categorical variables that are commonly used for ML-based CBM tasks. In our dataset, we simulate data for ten machines over a period of one month, containing 30 days. Sensor readings were collected hourly, resulting in a total of 720 data points per machine, which, given ten machines, means our dataset has a total of 7200 data points. For each machine, three continuous variables were collected: temperature in Celsius (\({}^{\circ}\)C), pressure in pascals (Pa), and vibration levels in millimeters per second (mm/s). Two categorical variables were collected: machine status and error code. The machine status variable could contain the following values: \"Normal\", \"Maintenance Required\", or \"Faulty\", while there were 13 possible error codes: \"No Error\" and \"Error A-L\". For each generated error code, specific errors may be associated with certain conditions of the continuous variable. The first row of data for each machine in our simulated dataset is shown in Table 1. The pseudocode for the data generation is given in Algorithm 1. \begin{table}
\begin{tabular}{c c c c c c c} \hline
**Timestamp** & **Machine** & **Temperature** & **Pressure** & **Vibration** & **Status** & **Error\_Code** \\ \hline
2024-01-01 00:00:00 & Machine\_1 & 54.9671 & 104.196 & 0.532708 & Normal & No Error \\
2024-01-01 00:00:00 & Machine\_2 & 48.6174 & 109.012 & 0.515465 & Maintenance Required & Error B \\
2024-01-01 00:00:00 & Machine\_3 & 56.4769 & 94.8923 & 0.549452 & Maintenance Required & Error A \\
2024-01-01 00:00:00 & Machine\_4 & 65.2303 & 104.923 & 0.386948 & Faulty & Error H \\
2024-01-01 00:00:00 & Machine\_5 & 47.6585 & 100.416 & 0.519737 & Normal & No Error \\
2024-01-01 00:00:00 & Machine\_6 & 47.6586 & 95.371.1 & 0.511376 & Normal & No Error \\
2024-01-01 00:00:00 & Machine\_7 & 65.7921 & 105.532 & 0.523167 & Faulty & Error I \\
2024-01-01 00:00:00 & Machine\_8 & 57.6743 & 101,044 & 0.507235 & Maintenance Required & Error D \\
2024-01-01 00:00:00 & Machine\_9 & 45.3053 & 103,219 & 0.372679 & Normal & No Error \\
2024-01-01 00:00:00 & Machine\_10 & 55.4256 & 96,458 & 0.36822 & Maintenance Required & Error D \\ \hline \end{tabular}
\end{table} 
Table 1: The first row of data for each machine in our simulated dataset. Figure 1: A block diagram of our methodology. As evidenced by the preceding tables, there were 13 possible error codes that could be generated during the synthetic data generation process. The error code that was generated was directly linked to the operational status of the machine that was generated. An error code of \"No Error\" would trigger an operational status of \"Normal\", an error code of \"Error A-F\" would trigger an operational status of \"Maintenance Required\", and an error code \"Error G-L\" would trigger an operational status of \"Faulty\". The logic behind this is that errors A-F are indicative of only a single issue affecting the machine's condition, while errors G-L occur when multiple issues occur that affect the machine's condition. The specific operational conditions that lead to each error are shown in Table 2.  
While the inclusion of the \"No Error\" and \"Error A-F\" error codes is fairly self-explanatory given that these codes represent normal operation condition of the machines and then the six possible scenarios of a single issue occurring given our three continuous variables, the inclusion of error codes \"Error G-L\" warrants further explanation. These error codes represent a combination of different possible issues that may occur.