{"id":53129,"date":"2024-07-12T08:29:17","date_gmt":"2024-07-12T06:29:17","guid":{"rendered":"https:\/\/www.inovex.de\/?p=53129"},"modified":"2024-07-12T08:29:17","modified_gmt":"2024-07-12T06:29:17","slug":"survival-analysis-for-state-of-charge-prediction-in-iot-devices","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/","title":{"rendered":"Survival Analysis for State of Charge Prediction in IoT Devices"},"content":{"rendered":"<p>The Internet of Things has proliferated large-scale deployments of devices that continuously monitor changes in their local environment. The data collected by such devices can be leveraged for certain predictive maintenance use cases. In this blog post, we demonstrate how survival analysis can be applied to a real-life predictive maintenance problem using sensor data from IoT devices. We lay out the steps necessary to prepare the data and train several survival models for state of charge (SoC) prediction.<!--more--><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\"><\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#Use-Case\" >Use Case<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#Method\" >Method<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#Defining-the-Event\" >Defining the Event<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#Labelling-Individual-Cycles\" >Labelling Individual Cycles<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#Extracting-Features\" >Extracting Features<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#Fitting-an-Overall-Survival-Curve\" >Fitting an Overall Survival Curve<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#Fitting-Individual-Survival-Curves\" >Fitting Individual Survival Curves<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#Evaluation\" >Evaluation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#Conclusion\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#References\" >References<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Use-Case\"><\/span>Use Case<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Data loggers are IoT devices that continuously monitor the local temperature of industrial refrigerators. The loggers are powered by non-rechargeable batteries, which eventually deplete their charge and require manual replacement. The remaining capacity of the loggers is represented by the state of charge (SoC).<\/p>\n<p>Replacing the batteries when the SoC is low ensures continued functionality of the data loggers. This ad-hoc method of battery replacement is suitable for deployments with a small number of loggers. When dealing with larger deployments, it is often more practical to replace the batteries of all the loggers simultaneously. However, this bulk replacement method cannot take into account the different SoC levels of all the loggers, leading to occasional battery replacements occurring at a high SoC.<\/p>\n<p>This method certainly has room for improvement. If the time when a logger device reaches a low SoC could be predicted, similar time intervals for multiple loggers can be identified. This approach to predictive maintenance results in much easier planning of optimal battery replacement times, saving on manpower and energy costs.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Method\"><\/span>Method<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Sounds like a great idea, isn\u2019t it? Easier said than done, though. As some batteries are replaced at a high SoC, these replacement instances cannot be used for training a prediction model. These data are censored, as the time when a low SoC is reached is not seen at all. Dealing with censored data is problematic. Typical machine learning methods cannot handle them. But by leaving out censored data in model building, we risk introducing bias into the resulting predictions.<\/p>\n<p>Fortunately for us, the field of survival analysis is equipped to handle censored data. These statistical methods center around the analysis of so-called time-to-event data. A typical event is death or failure. As the interpretation of survival methods hinges on the specific event that is analyzed, the first step is to define an event for our specific use case.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Defining-the-Event\"><\/span>Defining the Event<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To define the event, we first examined the time series data produced by the data loggers. The most prominent variable is the state of charge (SoC) of a data logger over a period of time. As the data was provided by an industrial partner and thus reflects behavior in real-world environments, the SoC of each data logger decreases at different rates with time. An example of the SoC over time for a data logger is shown in Figure 1.<\/p>\n<figure id=\"attachment_53131\" aria-describedby=\"caption-attachment-53131\" style=\"width: 797px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-53131 size-full\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_soc_curve.png\" alt=\"A graph describing the state of charge (SoC) of a data logger over time. \" width=\"797\" height=\"541\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_soc_curve.png 797w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_soc_curve-300x204.png 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_soc_curve-768x521.png 768w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_soc_curve-400x272.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_soc_curve-360x244.png 360w\" sizes=\"auto, (max-width: 797px) 100vw, 797px\" \/><figcaption id=\"caption-attachment-53131\" class=\"wp-caption-text\">Figure 1: The state of charge (SoC) of a data logger over time.<\/figcaption><\/figure>\n<p>We used an SoC threshold to define the event. Let us illustrate with an example. Figure 1 shows the SoC of a data logger over time. The data logger had its batteries changed in March and September. This is inferred from the sudden spike in the SoC. We define an event to have occurred when the SoC of a data logger reaches 30%. Thus, an event occurred in September, as the data logger reached 30% SoC and subsequently had its batteries replaced. In contrast, the data logger had its batteries replaced at 60% SoC in March. The 30% SoC threshold is not observed. This is censoring, where the data logger \u201cdrops out\u201c before experiencing the event.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Labelling-Individual-Cycles\"><\/span>Labelling Individual Cycles<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>After defining the threshold event, we identified the points where a data logger experiences an event or is otherwise censored. To this end, we segmented the SoC curve of each logger into distinct cycles. An event or censorship causes a cycle to end and a new cycle to begin. A cycle can also be defined as the time between battery replacements. Thus, the data logger in Figure 1 has 3 total cycles, 2 of which are censored.<\/p>\n<p>As the cycles were not labeled in the data, we used a peak detection algorithm from the Python Scipy library to identify the starting points of the individual cycles. The algorithm compares neighboring points in a curve to find local maxima. These local maxima correspond to the aforementioned starting points, which are easily visually identified as sharp spikes in the SoC. By marking these points, individual cycles can be segmented.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Extracting-Features\"><\/span>Extracting Features<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Survival analysis methods cannot directly work with time series data. We therefore converted the time series data into a tabular format by computing summary statistics.<\/p>\n<p>These included cycle-specific features, such as the duration and rate of discharge. The rate of discharge is the rate at which the SoC decreases in that cycle. Additionally, the data loggers record their local temperatures in a separate time series. By lining up the timestamps of both the SoC and temperature time series, we extracted the mean temperature in each cycle. Finally, we also included metadata such as the battery type used by the logger from a separate table.<\/p>\n<p>These features are tabulated in a new dataset, where each row represents a cycle.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Fitting-an-Overall-Survival-Curve\"><\/span>Fitting an Overall Survival Curve<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The labeling and feature extraction steps resulted in a dataset containing the duration of each cycle and a binary variable indicating if the cycle reached the 30% SoC threshold or was censored. The dataset consists of 173 cycles, with 68% of them being censored.<\/p>\n<p>With this information, we proceeded with basic survival analysis using the Kaplan-Meier estimator. The estimator fits a survival function on all the cycles. The survival function is the primary output of survival models, and it expresses the probability of a cycle not reaching 30% SoC at a specific time point.<\/p>\n<p>For each observed point in time, the estimator calculates the ratio of cycles that have not reached the threshold to cycles that are at risk. At-risk cycles have either already reached the threshold at that time, or will reach the threshold or otherwise be censored in the future. As censored cycles remain at risk until they become censored, they can contribute to the estimation of the survival function. For a more mathematical explanation of how the survival function is computed, refer to Kaplan and Meier\u2019s seminal paper [1].<\/p>\n<figure id=\"attachment_53135\" aria-describedby=\"caption-attachment-53135\" style=\"width: 748px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-53135 size-full\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_kaplan_meier.png\" alt=\"A Kaplan-Meier survival curve estimated from cycle data.\" width=\"748\" height=\"525\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_kaplan_meier.png 748w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_kaplan_meier-300x211.png 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_kaplan_meier-400x281.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_kaplan_meier-360x253.png 360w\" sizes=\"auto, (max-width: 748px) 100vw, 748px\" \/><figcaption id=\"caption-attachment-53135\" class=\"wp-caption-text\">Figure 2: The estimated survival function across all cycles.<\/figcaption><\/figure>\n<p>Figure 2 shows the survival function fitted by the Kaplan-Meier estimator. The survival function is steep in the initial 100 days, indicating that a majority of the cycles reach the 30% SoC threshold early. However, there are a few longer-lasting cycles, taking up to 300 days before reaching the 30% SoC threshold. These cycles gradually reach the threshold at discrete times, forming the characteristic step-like curve at later times. The late cycles are presumably due to using high-performance batteries for powering the data loggers.<\/p>\n<p>An important quantity is the median survival time. It is the time when 50 % of the cycles have reached the threshold, and 50 % have not, with respect to censoring. It corresponds to the survival probability of 0.5. The median survival time of the cycles is 255 days. Conversely, the median time to the threshold for exclusively non-censored cycles is 47 days. This large discrepancy in both medians is indicative of the bias that would occur in later modeling when censored data is not taken into account.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Fitting-Individual-Survival-Curves\"><\/span>Fitting Individual Survival Curves<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The Kaplan-Meier estimator (KM) fits a survival function on the whole dataset. To make predictions for individual cycles with unique feature combinations, we require models that can fit survival curves for each cycle. To this end, we chose two models &#8211; the Cox proportional hazards (CPH) model and the random survival forest (RSF). The CPH model is a regression model, while the RSF is an extension of the Random Forest model for censored data. For a detailed description of both models and how they fit individual survival curves, refer to Haider et al. [2].<\/p>\n<p>Due to the small sample size, we used only three features when training models. These include the battery type of the logger, the mean temperature of the cycle, and the discharge rate of the previous cycle. The numerical features were chosen by examining their correlation, while the categorical features were chosen by comparing the difference in the survival curves per category.<\/p>\n<p>Next, we split the cycles into train and test sets on the device level, with all cycles belonging to a specific device being assigned to either the train or test set. Thus, all the cycles from 70% of the devices are contained in the train set, and vice versa. The split by device was conducted to avoid potential data leakage, which occurs when cycles from an identical device are present in both the train and test sets.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Evaluation\"><\/span>Evaluation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The performance of both models was evaluated by computing the integrated Brier score (IBS), a variant of the mean squared error for censored data. The closer the IBS is to 0, the better the model. Random models have an IBS of 0.25. As shown in Table 1, all models performed better than random, with the RSF performing the best. This is expected as predictions from the RSF are averaged from an ensemble of trees, leading to a better IBS.<\/p>\n\n<table id=\"tablepress-94\" class=\"tablepress tablepress-id-94\" aria-describedby=\"tablepress-94-description\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\"><strong>Model<\/strong><\/th><th class=\"column-2\"><strong>Integrated Brier Score (\u2193, 0 \u2264 IBS \u2264  1)<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">KM<\/td><td class=\"column-2\">0.206<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">CPH<\/td><td class=\"column-2\">0.137<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\"><strong>RSF<\/strong><\/td><td class=\"column-2\"><strong>0.109<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<span id=\"tablepress-94-description\" class=\"tablepress-table-description tablepress-table-description-id-94\">Table 1: Integrated Brier scores by model.<\/span>\n<!-- #tablepress-94 from cache -->\n<p>The IBS is a standard metric for evaluating model performance for both event and censored cases, but the primary use case for the survival models is to predict the time to the 30% SoC threshold for current cycles. As these cycles have not experienced the event yet, they are considered censored. Therefore, we also examined the predicted survival functions for censored cycles.<\/p>\n<figure id=\"attachment_53153\" aria-describedby=\"caption-attachment-53153\" style=\"width: 700px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-53153 size-full\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_cph_probs.jpg\" alt=\"\" width=\"700\" height=\"500\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_cph_probs.jpg 700w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_cph_probs-300x214.jpg 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_cph_probs-400x286.jpg 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_cph_probs-360x257.jpg 360w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-53153\" class=\"wp-caption-text\">(a) CPH<\/figcaption><\/figure>\n<figure id=\"attachment_53155\" aria-describedby=\"caption-attachment-53155\" style=\"width: 700px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-53155 size-full\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_rsf_probs.jpg\" alt=\"A Kaplan-Meier survival curve estimated from cycle data.\" width=\"700\" height=\"500\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_rsf_probs.jpg 700w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_rsf_probs-300x214.jpg 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_rsf_probs-400x286.jpg 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/thesis_survival_rsf_probs-360x257.jpg 360w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><figcaption id=\"caption-attachment-53155\" class=\"wp-caption-text\">(b) RSF<br \/>Figure 3: Predicted survival functions for censored cycles.<\/figcaption><\/figure>\n<div class=\"mceTemp\"><\/div>\n<p>It is important to emphasize that survival models do not produce point estimates like traditional machine learning models, but instead, output predicted survival functions. These are probability distributions and need to be interpreted accordingly.<\/p>\n<p>Each survival function seen in Figure 3 corresponds to the latest battery cycle of a data logger. As these cycles are the newest, the batteries have not yet been replaced and are therefore censored. Thus, a survival function describes the probability of a logger reaching the 30 % SoC threshold on subsequent days. Replacement times for multiple loggers can thus be inferred by identifying common time intervals with identical survival probabilities for each logger.<\/p>\n<p>The predicted survival functions from the CPH model in Figure 3a deliver useful information as each survival function crosses the probability threshold of 50 %, enabling the extraction of the median predicted survival time. However, those from the RSF model in Figure 3b are overly optimistic. Most censored cycles have a predicted 70 % probability that the threshold event will still not occur even after 300 days.<\/p>\n<p>As the survival curves predicted by the RSF model have overly optimistic and near identical estimates of the median survival time, we concluded that the RSF model is unsuitable for actual deployment for this specific use case. Instead, we recommend the CPH model which generates more realistic survival curves.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To sum up, we used survival analysis methods to generate probabilistic estimates for the time to reach certain state of charge (SoC) thresholds. This approach to predictive maintenance allows planning battery replacement times for multiple data loggers concerning the SoC. To this end, we defined a suitable survival event and processed the time series of the data loggers into a tabular format for training survival models. By interpreting the predicted survival functions, possible replacement times for multiple data loggers can be identified.<\/p>\n<p>What\u2019s next? A possible avenue for future work is a comprehensive evaluation using a larger dataset. As the current dataset had a limited number of cycles, the robustness of the models is questionable. Having more data would let us further explore this line of questioning, as well as test alternative models that would overfit if used on small sample sizes like this dataset. Methods for data augmentation or simulation may come into play here.<\/p>\n<p>Another issue is the interpretability of the generated predictions. Interpreting survival functions requires a background in survival analysis, which not everyone has, especially potential users of the models. A simple solution is condensing the function down to a simple point estimate using the predicted median survival time. However, Henderson and Keiding [3] argued against this approach as it results in a loss of information. Therefore, it is worth conducting a more holistic investigation into the interpretability of the predictions that incorporate user feedback.<\/p>\n<p>These aspects will be further investigated in the DeKIOps research project at inovex. Stay updated for any further developments by keeping up with the blog!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"References\"><\/span>References<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>[1] E. L. Kaplan and P. Meier, \u2018Nonparametric Estimation from Incomplete Observations\u2019, Journal of the American Statistical Association, vol. 53, no. 282, pp. 457\u2013481, Jun. 1958, doi: 10.1080\/01621459.1958.10501452.<\/p>\n<p>[2] H. Haider, B. Hoehn, S. Davis, and R. Greiner, \u2018Effective ways to build and evaluate individual survival distributions\u2019, J. Mach. Learn. Res., vol. 21, no. 1, p. 85:3289-85:3351, Jan. 2020.<\/p>\n<p>[3] R. Henderson and N. Keiding, \u2018Individual survival time prediction using statistical models\u2019, J Med Ethics, vol. 31, no. 12, pp. 703\u2013706, Dec. 2005, doi: 10.1136\/jme.2005.012427.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Internet of Things has proliferated large-scale deployments of devices that continuously monitor changes in their local environment. The data collected by such devices can be leveraged for certain predictive maintenance use cases. In this blog post, we demonstrate how survival analysis can be applied to a real-life predictive maintenance problem using sensor data from [&hellip;]<\/p>\n","protected":false},"author":359,"featured_media":56040,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[206,74],"service":[431,712],"coauthors":[{"id":359,"display_name":"Daniel Muhammad","user_nicename":"dbinmohdkhir"},{"id":264,"display_name":"Liza Obermeier","user_nicename":"lobermeier"}],"class_list":["post-53129","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-data-science","tag-iot","service-data-science","service-internet-of-things-iot"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Survival Analysis for State of Charge Prediction in IoT Devices - inovex GmbH<\/title>\n<meta name=\"description\" content=\"In this blog post, we demonstrate how survival analysis can be applied to a real-life predictive maintenance problem using IoT sensor data.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Survival Analysis for State of Charge Prediction in IoT Devices - inovex GmbH\" \/>\n<meta property=\"og:description\" content=\"In this blog post, we demonstrate how survival analysis can be applied to a real-life predictive maintenance problem using IoT sensor data.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-12T06:29:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/Survival-Analysis-for-State-of-Charge-Prediction-in-IoT-Devices_II.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"880\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniel Muhammad, Liza Obermeier\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/Survival-Analysis-for-State-of-Charge-Prediction-in-IoT-Devices_II-1024x601.png\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Muhammad\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"11\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Daniel Muhammad, Liza Obermeier\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/\"},\"author\":{\"name\":\"Daniel Muhammad\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/57e59e6337b71626284aff86d962ee3f\"},\"headline\":\"Survival Analysis for State of Charge Prediction in IoT Devices\",\"datePublished\":\"2024-07-12T06:29:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/\"},\"wordCount\":2189,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Survival-Analysis-for-State-of-Charge-Prediction-in-IoT-Devices_II.png\",\"keywords\":[\"Data Science\",\"IoT\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/\",\"name\":\"Survival Analysis for State of Charge Prediction in IoT Devices - inovex GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Survival-Analysis-for-State-of-Charge-Prediction-in-IoT-Devices_II.png\",\"datePublished\":\"2024-07-12T06:29:17+00:00\",\"description\":\"In this blog post, we demonstrate how survival analysis can be applied to a real-life predictive maintenance problem using IoT sensor data.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Survival-Analysis-for-State-of-Charge-Prediction-in-IoT-Devices_II.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Survival-Analysis-for-State-of-Charge-Prediction-in-IoT-Devices_II.png\",\"width\":1500,\"height\":880,\"caption\":\"Grafik: K\u00fchlger\u00e4te, deren Temperatursensoren im IoT eingebunden sind und ihren Status melden\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Survival Analysis for State of Charge Prediction in IoT Devices\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/inovexde\",\"https:\\\/\\\/x.com\\\/inovexgmbh\",\"https:\\\/\\\/www.instagram.com\\\/inovexlife\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/inovex\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/57e59e6337b71626284aff86d962ee3f\",\"name\":\"Daniel Muhammad\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/44cb91030e00bf044abddd2d18a479c27f76b261be1079a09d706cef112af092?s=96&d=retro&r=gb6edf22461f78d16b671b4065aaac2e3\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/44cb91030e00bf044abddd2d18a479c27f76b261be1079a09d706cef112af092?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/44cb91030e00bf044abddd2d18a479c27f76b261be1079a09d706cef112af092?s=96&d=retro&r=g\",\"caption\":\"Daniel Muhammad\"},\"description\":\"Werkstudent DMA @ inovex\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/danielmuhd\\\/\"],\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/author\\\/dbinmohdkhir\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Survival Analysis for State of Charge Prediction in IoT Devices - inovex GmbH","description":"In this blog post, we demonstrate how survival analysis can be applied to a real-life predictive maintenance problem using IoT sensor data.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/","og_locale":"de_DE","og_type":"article","og_title":"Survival Analysis for State of Charge Prediction in IoT Devices - inovex GmbH","og_description":"In this blog post, we demonstrate how survival analysis can be applied to a real-life predictive maintenance problem using IoT sensor data.","og_url":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2024-07-12T06:29:17+00:00","og_image":[{"width":1500,"height":880,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/Survival-Analysis-for-State-of-Charge-Prediction-in-IoT-Devices_II.png","type":"image\/png"}],"author":"Daniel Muhammad, Liza Obermeier","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/Survival-Analysis-for-State-of-Charge-Prediction-in-IoT-Devices_II-1024x601.png","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Daniel Muhammad","Gesch\u00e4tzte Lesezeit":"11\u00a0Minuten","Written by":"Daniel Muhammad, Liza Obermeier"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/"},"author":{"name":"Daniel Muhammad","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/57e59e6337b71626284aff86d962ee3f"},"headline":"Survival Analysis for State of Charge Prediction in IoT Devices","datePublished":"2024-07-12T06:29:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/"},"wordCount":2189,"commentCount":0,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/Survival-Analysis-for-State-of-Charge-Prediction-in-IoT-Devices_II.png","keywords":["Data Science","IoT"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/","url":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/","name":"Survival Analysis for State of Charge Prediction in IoT Devices - inovex GmbH","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/Survival-Analysis-for-State-of-Charge-Prediction-in-IoT-Devices_II.png","datePublished":"2024-07-12T06:29:17+00:00","description":"In this blog post, we demonstrate how survival analysis can be applied to a real-life predictive maintenance problem using IoT sensor data.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/Survival-Analysis-for-State-of-Charge-Prediction-in-IoT-Devices_II.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/Survival-Analysis-for-State-of-Charge-Prediction-in-IoT-Devices_II.png","width":1500,"height":880,"caption":"Grafik: K\u00fchlger\u00e4te, deren Temperatursensoren im IoT eingebunden sind und ihren Status melden"},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/survival-analysis-for-state-of-charge-prediction-in-iot-devices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"Survival Analysis for State of Charge Prediction in IoT Devices"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/57e59e6337b71626284aff86d962ee3f","name":"Daniel Muhammad","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/44cb91030e00bf044abddd2d18a479c27f76b261be1079a09d706cef112af092?s=96&d=retro&r=gb6edf22461f78d16b671b4065aaac2e3","url":"https:\/\/secure.gravatar.com\/avatar\/44cb91030e00bf044abddd2d18a479c27f76b261be1079a09d706cef112af092?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/44cb91030e00bf044abddd2d18a479c27f76b261be1079a09d706cef112af092?s=96&d=retro&r=g","caption":"Daniel Muhammad"},"description":"Werkstudent DMA @ inovex","sameAs":["https:\/\/www.linkedin.com\/in\/danielmuhd\/"],"url":"https:\/\/www.inovex.de\/de\/blog\/author\/dbinmohdkhir\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/53129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/359"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=53129"}],"version-history":[{"count":5,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/53129\/revisions"}],"predecessor-version":[{"id":55508,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/53129\/revisions\/55508"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/56040"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=53129"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=53129"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=53129"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=53129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}