Early prediction of hypothermia in pediatric intensive care units using machine learning

Hypothermia is a life-threatening condition where the temperature of the body drops below 35°C and is a key source of concern in Intensive Care Units (ICUs). Early identification can help to nudge clinical management to initiate early interventions. Despite its importance, very few studies have focused on the early prediction of hypothermia. In this study, we aim to monitor and predict Hypothermia (30 min-4 h) ahead of its onset using machine learning (ML) models developed on physiological vitals and to prospectively validate the best performing model in the pediatric ICU. We developed and evaluated ML algorithms for the early prediction of hypothermia in a pediatric ICU. Sepsis advanced forecasting engine ICU Database (SafeICU) data resource is an in-house ICU source of data built in the Pediatric ICU at the All-India Institute of Medical Science (AIIMS), New Delhi. Each time-stamp at 1-min resolution was labeled for the presence of hypothermia to construct a retrospective cohort of pediatric patients in the SafeICU data resource. The training set consisted of windows of the length of 4.2 h with a lead time of 30 min-4 h from the onset of hypothermia. A set of 3,835 hand-engineered time-series features were calculated to capture physiological features from the time series. Features selection using the Boruta algorithm was performed to select the most important predictors of hypothermia. A battery of models such as gradient boosting machine, random forest, AdaBoost, and support vector machine (SVM) was evaluated utilizing five-fold test sets. The best-performing model was prospectively validated. A total of 148 patients with 193 ICU stays were eligible for the model development cohort. Of 3,939 features, 726 were statistically significant in the Boruta analysis for the prediction of Hypothermia. The gradient boosting model performed best with an Area Under the Receiver Operating Characteristic curve (AUROC) of 85% (SD = 1.6) and a precision of 59.2% (SD = 8.8) for a 30-min lead time before the onset of Hypothermia onset. As expected, the model showed a decline in model performance at higher lead times, such as AUROC of 77.2% (SD = 2.3) and precision of 41.34% (SD = 4.8) for 4 h ahead of Hypothermia onset. Our GBM(gradient boosting machine) model produced equal and superior results for the prospective validation, where an AUROC of 79.8% and a precision of 53% for a 30-min lead time before the onset of Hypothermia whereas an AUROC of 69.6% and a precision of 38.52% for a (30 min-4 h) lead time prospective validation of Hypothermia. Therefore, this work establishes a pipeline termed ThermoGnose for predicting hypothermia, a major complication in pediatric ICUs.

This function calculates three parameters such as widths, coeff, and w. This feature collects all of the distinct widths into a single array and then calculates the single cwt for each array chosen. And finally, the values for different coefficients and widths are returned. This is defined , where a is considered as the width of the wavelet function. The Fourier coefficients for the one-dimensional discrete Fourier transform are calculated using the Fourier transform algorithm. FT shows all the frequency components and their strength contained in any signal. That is, Fourier analysis is nothing but the extraction of a series of cosines and sines, which, when superimposed, will produce a function. It takes two parameters, x, and the param. Where x(NumPy. ndarray) is the time series used to generate the feature, and param(list) is a list of dictionaries, such as "coeff": x and "attr": s. Here x is an integer type and should be greater than or equal to zero, and the s is a string type and in ["real", "imag", "abs", "angle"].
Mean is considered as a mathematical average of all numbers, and sometimes it is even termed as the arithmetic mean. To calculate the mean, the sum of all the numbers will be divided by the total count of numbers in a set. This feature will return the mean of x. Where x (NumPy.ndarray) is the time series parameter to calculate the feature. It has the floating-point return type.
• quantile(x, q) The q quantile of x is calculated with this feature. When the quantile divides the sample into equal-sized adjacent subgroups, the sample is divided into equal-sized adjacent subgroups. In this case, the value of x exceeds q percent of the ordered values from x. It requires the input of two parameters, x, and q. Where x (numpy.ndarray) is the feature's time series parameter, and q (float) is the quantile to be calculated. Its return type is floating-point.

• c3(x, lag)
It demonstrates how closely the time series resembles itself. As the values are compared, a perfect correlation will be found for the all-time series at lag=0. The correlation value will drop as the time series shifts. If the time series solely contains random values, the correlation will only exist at lag=0, with no correlation elsewhere.
It requires two inputs: x and lag. Where x (numpy.ndarray) is the time series parameter used to calculate the feature, and lag (int) is the lag utilized in the feature calculation. It returns a value of the floating type.
This function will calculate the value Which will be,

• sum_of_reoccurring_data_points(x)
This feature returns the total of all time-series data points that appear several times. It has only one parameter, x(numpy.ndarray), which is used to compute the feature. It returns the feature's floating-point value.

• sum_values(x)
The sum of the time series values will be calculated with this function. It has the time series argument x(numpy.ndarray), which is used to calculate the feature. And the value's return type is bool.

• min_values(x)
The smallest value in a set of values is called the minimum number. That is, it is either less than or equal to all of the other data values in the collection. The minimum value is a unique value by definition, but in practice, the minimum value might be repeated in the set. The last location of a minimum value of x will be returned by this feature. The length of x will be used to compute this position. To calculate the feature, it uses a single time series parameter x(numpy.ndarray). This feature's floating-point value will be returned.