{"id":8369,"date":"2021-09-07T07:43:24","date_gmt":"2021-09-07T05:43:24","guid":{"rendered":"https:\/\/www.iese.fraunhofer.de\/blog\/?p=8369"},"modified":"2025-09-09T15:08:59","modified_gmt":"2025-09-09T13:08:59","slug":"change-point-detection","status":"publish","type":"post","link":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/","title":{"rendered":"Time Traveling with Data Science: Focusing on Change Point Detection in Time Series Analysis (Part 2)"},"content":{"rendered":"<p class=\"lead\"><span data-contrast=\"auto\">In the first <a href=\"https:\/\/www.iese.fraunhofer.de\/blog\/time-series-analysis\/\">blog post<\/a> of our &#8222;Time traveling with data science&#8220; series, we presented several tasks related to the analysis of time series. In this post, we dive into the task called &#8222;change point detection&#8220;. <\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Changes\u00a0in time series\u00a0or signals\u00a0can take different forms.\u00a0Roughly speaking, a change point is an\u00a0<\/span><b><span data-contrast=\"auto\">abrupt<\/span><\/b><span data-contrast=\"auto\"> change in a time series, meaning a change in the underlying trends, frequencies, or probability distributions.<\/span><\/p>\n<div class=\"info-box\">\n<p><strong>For more about Time Series Analysis, see our blog series:<\/strong><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><a href=\"https:\/\/www.iese.fraunhofer.de\/blog\/time-series-analysis\/\">Time Traveling with Data Science (Part 1)<\/a><\/li>\n<li><a href=\"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/\">Time Traveling with Data Science: Focusing on Change Point Detection in Time Series Analysis (Part 2)<\/a><\/li>\n<li><a href=\"https:\/\/www.iese.fraunhofer.de\/blog\/outlier-detection\/\">Time traveling with Data Science: Outlier Detection (Part 3)<\/a><\/li>\n<li><a href=\"https:\/\/www.iese.fraunhofer.de\/blog\/pattern-recognition\/\">Time Traveling with Data Science: Pattern Recognition, Motifs Discovery and the Matrix Profile (Part 4)<\/a><\/li>\n<\/ul>\n<\/div>\n<h3><b><span data-contrast=\"none\">Change point detection: Different types of change points<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:360,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Change point detection has a number of various applications. It is used, for example, in the fields of medicine, aerospace, finance, business, meteorology, and entertainment. Usually, change points are described in terms of changes between <\/span><i><span data-contrast=\"auto\">segments<\/span><\/i><span data-contrast=\"auto\"><del><\/del>. To put it simple, a change point divides a time series into two segments where each segment has its own statistical characteristics (e.g., mean, variance, etc.). Thus, the change point is located where the underlying characteristics change abruptly. An overview of the most common change points and approaches for detecting them can be found in <span aria-label=\"Rich text content control\">(Aminikhanghahi and Cook 2017; Truong et al. 2020)<\/span><\/span><span data-contrast=\"auto\">. A theoretical description of change point detection, including the mathematical background, can be found in <span aria-label=\"Rich text content control\">(Basseville and Nikiforov 1993)<\/span><\/span><span data-contrast=\"auto\">. In the following, we will present some important examples of\u00a0 change points.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Change in mean<\/span><\/b><span data-contrast=\"auto\"> is the most common example and probably also the easiest to identify (at least visually). Change in mean usually occurs when a time series can be divided into different constant segments having different mean values. One of the earliest algorithms for detecting such changes is the Cumsum algorithm <\/span><span aria-label=\"Rich text content control\"><span data-contrast=\"auto\">(Page 1954)<\/span><\/span><span data-contrast=\"auto\">, which was developed to detect change in mean. It was applied for quality control in manufacturing.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<div id='gallery-1' class='gallery galleryid-8369 gallery-columns-1 gallery-size-full'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_mean.png'><img loading=\"lazy\" decoding=\"async\" width=\"615\" height=\"461\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_mean.png\" class=\"attachment-full size-full\" alt=\"Fraunhofer IESE - example for change point (change in mean)\" aria-describedby=\"gallery-1-8392\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_mean.png 615w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_mean-400x300.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_mean-320x240.png 320w\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-1-8392'>\n\t\t\t\tExample of change point (change in mean)\n\t\t\t\t<\/figcaption><\/figure>\n\t\t<\/div>\n\n<p>&nbsp;<\/p>\n<p><strong><span class=\"TextRun SCXW35659006 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW35659006 BCX0\">Change in variance<\/span><\/span><\/strong><span class=\"TextRun SCXW35659006 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW35659006 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW35659006 BCX0\">is another famous example. Here, the mean value of the signal stays constant, but there are several segments with different variance values. This can be interpreted as a sudden noise in the signal. Both change in mean and change in variance <\/span><span class=\"NormalTextRun SCXW35659006 BCX0\">can be detected by<\/span><span class=\"NormalTextRun SCXW35659006 BCX0\">\u00a0comparing statistical properties\u00a0<\/span><span class=\"NormalTextRun SCXW35659006 BCX0\">through<\/span><span class=\"NormalTextRun SCXW35659006 BCX0\">\u00a0the signal.<\/span><\/span><span class=\"EOP SCXW35659006 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<div id='gallery-2' class='gallery galleryid-8369 gallery-columns-1 gallery-size-full'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_variance.png'><img loading=\"lazy\" decoding=\"async\" width=\"615\" height=\"461\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_variance.png\" class=\"attachment-full size-full\" alt=\"Fraunhofer IESE - example for change point (change in variance)\" aria-describedby=\"gallery-2-8394\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_variance.png 615w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_variance-400x300.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_variance-320x240.png 320w\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-2-8394'>\n\t\t\t\tExample of change point detection (change in variance)\n\t\t\t\t<\/figcaption><\/figure>\n\t\t<\/div>\n\n<p>&nbsp;<\/p>\n<p><strong><span class=\"TextRun SCXW8660138 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW8660138 BCX0\">Change in periodi<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">city<\/span><\/span><\/strong><span class=\"TextRun SCXW8660138 BCX0\" lang=\"DE-DE\" xml:lang=\"DE-DE\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW8660138 BCX0\">\u00a0<\/span><\/span><span class=\"TextRun SCXW8660138 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW8660138 BCX0\">(also called change in <\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">frequency<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">) concerns time series with cyclic properties (e.g.,\u00a0<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">a machine&#8217;s regime<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">). Here, the change occurs when the frequency changes suddenly. <\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">D<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">etection of this kind of change <\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">is\u00a0<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">usually\u00a0<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">done\u00a0<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">in the frequency domain<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">, for example by<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">\u00a0using Fourier\u00a0<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">transform\u00a0<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">or wavelet transform.<\/span><span class=\"NormalTextRun SCXW8660138 BCX0\">\u00a0<\/span><\/span><span class=\"EOP SCXW8660138 BCX0\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<div id='gallery-3' class='gallery galleryid-8369 gallery-columns-1 gallery-size-full'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_frequency.png'><img loading=\"lazy\" decoding=\"async\" width=\"615\" height=\"461\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_frequency.png\" class=\"attachment-full size-full\" alt=\"Fraunhofer IESE - example for change point (change in frequency)\" aria-describedby=\"gallery-3-8389\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_frequency.png 615w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_frequency-400x300.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_frequency-320x240.png 320w\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-3-8389'>\n\t\t\t\tExample of change point detection (change in frequency)\n\t\t\t\t<\/figcaption><\/figure>\n\t\t<\/div>\n\n<p>&nbsp;<\/p>\n<p><b><span data-contrast=\"auto\">Change in pattern<\/span><\/b><span data-contrast=\"auto\"> is more difficult to tackle than the previous ones. Such changes can occur, for example, in ECG signals. Ond one way to detect them is to use Wasserstein distances between empirical distributions (Shvetsov et al. 2020). At this point, we can see that change point detection is closely related to anomaly detection; the difference between the two tasks is sometimes fuzzy.<\/span><del><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\"><br \/>\n<\/span><\/del><\/p>\n<div id='gallery-4' class='gallery galleryid-8369 gallery-columns-1 gallery-size-full'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_pattern.png'><img loading=\"lazy\" decoding=\"async\" width=\"615\" height=\"461\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_pattern.png\" class=\"attachment-full size-full\" alt=\"Fraunhofer IESE - example for change point (change in pattern)\" aria-describedby=\"gallery-4-8393\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_pattern.png 615w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_pattern-400x300.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_pattern-320x240.png 320w\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-4-8393'>\n\t\t\t\tExample of change point (change in pattern)\n\t\t\t\t<\/figcaption><\/figure>\n\t\t<\/div>\n\n<p>&nbsp;<\/p>\n<p><b><span data-contrast=\"auto\">Changes in<\/span><\/b><span data-contrast=\"auto\"><strong> multidimensional time series<\/strong> can become very challenging to detect visually. The following example illustrates a change in the correlation between two dimensions of a time series.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\"><br \/>\n<\/span><\/p>\n<div id='gallery-5' class='gallery galleryid-8369 gallery-columns-1 gallery-size-full'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_2d-gaussian-distribution.gif'><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/change_point_detection-change_in_2d-gaussian-distribution.gif\" class=\"attachment-full size-full\" alt=\"Fraunhofer IESE - example for change point (change in 2-dimensional Gaussian distribution)\" aria-describedby=\"gallery-5-8399\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-5-8399'>\n\t\t\t\tExample of change point detection by change in 2-dimensional Gaussian distribution\n\t\t\t\t<\/figcaption><\/figure>\n\t\t<\/div>\n\n<p>&nbsp;<\/p>\n<p><span data-contrast=\"auto\">There are many other types of change points, depending on the underlying structure of the signal. Usually, the more complex the signal, the more difficult it is to detect the change point. <\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h3><b><span data-contrast=\"none\">Detecting change\u00a0points<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:360,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">There are countless ways and methods for detecting change points that have been developed during the last decades. An overview of the most common approaches can be found in <\/span><span aria-label=\"Rich text content control\"><span data-contrast=\"auto\">(Aminikhanghahi and Cook 2017)<\/span><\/span><span data-contrast=\"auto\">. Several packages for detecting change points have been implemented in R and Python. <\/span><span data-contrast=\"auto\">Usually, most packages provide a lot of hyperparameters that can be adjusted to optimize change point detection or even optimize runtime. However, many packages are not standardized: Some only calculate the costs but not the actual change points, while other packages are not maintained regularly. <\/span><\/p>\n<p><span data-contrast=\"auto\">Well-known, established, and regularly maintained examples of packages are:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"17\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span data-contrast=\"auto\">In R, the following packages are dedicated to change point detection: <a href=\"https:\/\/cran.r-project.org\/web\/packages\/changepoint\/index.html\">changepoint<\/a>, <a href=\"https:\/\/cran.r-project.org\/web\/packages\/kcpRS\/index.html\">kcpRS<\/a>, or <a href=\"https:\/\/cran.r-project.org\/web\/packages\/bcp\/index.html\">bcp<\/a>.<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"17\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span data-contrast=\"auto\">In Python, the <a href=\"https:\/\/centre-borelli.github.io\/ruptures-docs\/\">ruptures<\/a> packages are completely dedicated to change point detection. Other packages such as <a href=\"https:\/\/facebook.github.io\/prophet\/docs\/trend_changepoints.html#automatic-changepoint-detection-in-prophet\">prophet<\/a>, <a href=\"https:\/\/zillow.github.io\/luminaire\/tutorial\/dataprofiling.html\">luminaire<\/a>, and <a href=\"https:\/\/scikit-multiflow.readthedocs.io\/en\/stable\/api\/api.html#module-skmultiflow.drift_detection\">scikit-multiflow<\/a> include \u2013 among other features \u2013 change point or drift detection.<\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">A common way to conduct change point detection is a sliding window through the signal. The main idea is to walk through the signal with a window of fixed size. For each step, a function computes a chance of having a change point in the current window. This function is usually called the <\/span><i><span data-contrast=\"auto\">cost\u00a0function<\/span><\/i><span data-contrast=\"auto\">. Thus, for each point in the signal, we obtain a cost value indicating whether there is a change at that point or not. Usually, the costs are \u201clow\u201d as long as there is no change in the window and \u201chigh\u201d if there is a change in the window. For example, if the costs exceed a pre-defined threshold, the point is marked as a change point, or the points with the highest costs can be marked as change points.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">To detect changes in mean, a simple approach is to use the standard deviation as a cost function. As long as the signal is constant (with some noise), the standard deviation is low. If there is a jump in the signal, the standard deviation will rise. The animation below shows an example of calculating the costs of a change in mean using the standard deviation. <\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<div id='gallery-6' class='gallery galleryid-8369 gallery-columns-1 gallery-size-full'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/illustration_of_change_point_detectopn_via_sliding-window.gif'><img loading=\"lazy\" decoding=\"async\" width=\"576\" height=\"324\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/illustration_of_change_point_detectopn_via_sliding-window.gif\" class=\"attachment-full size-full\" alt=\"Fraunhofer IESE - Animation of change point detection via sliding window\" aria-describedby=\"gallery-6-8397\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-6-8397'>\n\t\t\t\tAnimation of change point detection via sliding window\n\t\t\t\t<\/figcaption><\/figure>\n\t\t<\/div>\n\n<p><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The window-based approach can have different extensions. For example, there can be two windows, a past one and a future one. Then the change point can be detected by comparing the costs of these two windows. This idea was also used for the the generalized log-likelihood ratio test <span aria-label=\"Rich text content control\">(Basseville and Nikiforov 1993)<\/span>. The example below illustrates this approach.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<div id='gallery-7' class='gallery galleryid-8369 gallery-columns-1 gallery-size-full'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/illustration_of_change_point_detectopn_via_past-window_and_future-window.gif'><img loading=\"lazy\" decoding=\"async\" width=\"576\" height=\"324\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/08\/illustration_of_change_point_detectopn_via_past-window_and_future-window.gif\" class=\"attachment-full size-full\" alt=\"Fraunhofer IESE - Animation of change point detection via past window and future window\" aria-describedby=\"gallery-7-8396\" \/><\/a>\n\t\t\t<\/div>\n\t\t\t\t<figcaption class='wp-caption-text gallery-caption' id='gallery-7-8396'>\n\t\t\t\tAnimation of change point detection via past window and future window\n\t\t\t\t<\/figcaption><\/figure>\n\t\t<\/div>\n\n<p>&nbsp;<\/p>\n<h3><strong>How to choose an appropriate method for change point detection<\/strong><\/h3>\n<p><span data-contrast=\"auto\">The theory of change point detection is well established in the literature; several methods have been implemented in standard packages. The question of how to choose the right one is crucial and depends on many factors. As there are many approaches and methods, we present three important factors to make a reasonable decision.<br \/>\n<\/span><\/p>\n<p><span data-contrast=\"auto\"><em>First<\/em>, you need to know your signal and which type of change you have. Obviously, not every software package can deal with every kind of change. For example, the bcp package in R was developed for sequencing DNA series using a Bayesian approach. But this package cannot be applied to detect changes in mean for normally distributed random variables because it will deliver too many false positives. <\/span><\/p>\n<p><em>Second<\/em>, the runtime plays an important role. Depending on the application, sensors may deliver hundreds of points in one second. <span data-contrast=\"auto\">The window-based methods presented above have a runtime of <\/span><em>O<\/em><span data-contrast=\"auto\"><em>(T)<\/em>, where <em>T<\/em> denotes the length of the signal. That is the reason why most of these types of algorithms can be used in online applications.<\/span> As more and more data is produced in the context of IoT, <span data-contrast=\"auto\">much research has been done in the field of <\/span>online change point detection <span data-contrast=\"auto\">in the last few years; see, for example, <\/span><span aria-label=\"Rich text content control\"><span data-contrast=\"auto\">(Namoano et al. 2019)<\/span><\/span><span data-contrast=\"auto\">. However,<\/span><span data-contrast=\"auto\"> such window-based algorithms are usually approximations and therefore often deliver too many change points, which leads to the next factor.<br \/>\n<\/span><\/p>\n<p><span data-contrast=\"auto\"><em>Third<\/em>, some applications require accurate results. There are other approaches that need a longer runtime but deliver more precise change points. Famous methods are, for example, the binary segmentation or bottom-up approaches, which take <\/span><em>O<\/em><span data-contrast=\"auto\"><em>(T log(T))<\/em> time, but they are still approximations. Exact methods take at least <\/span><em>O(T\u00b2<\/em><span data-contrast=\"auto\"><em>), <\/em>some even <em>O(T\u00b3)<\/em> time. <\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">At this point, it should be mentioned that some methods are very advantageous if one knows how many change points are present in the signal because they stop with an optimized solution. But for many applications with continuous sensor data, this is not realistic. <\/span><\/p>\n<p>In our next series, we will deal with other exciting topics regarding time series analysis. There are many other tasks (for example, classification, clustering, blind source separation) that are also highly relevant in applications. We will also present ideas on how to tackle these tasks. Stay tuned!<\/p>\n<div class=\"info-box\">\n<p>Are you interested in working on projects involving time series analysis? Then contact our expert <a href=\"mailto:julien.siebert@iese.fraunhofer.de;anfrage@iese.fraunhofer.de\">Dr. Julien Siebert<\/a>.<\/p>\n<\/div>\n<h3><strong>References<\/strong><\/h3>\n<p>[1] Aminikhanghahi, Samaneh; Cook, Diane J. (2017): A Survey of Methods for Time Series Change Point Detection. In <em>Knowledge and information systems <\/em>51 (2), pp.\u00a0339\u2013367. DOI: 10.1007\/s10115-016-0987-z.<br \/>\n[2] Basseville, M.; Nikiforov, Igor\u02b9 V. (1993): Detection of abrupt changes. Theory and application \/\u00a0 Mich\u00e8le Basseville, Igor V. Nikiforov. Englewood Cliffs, N.J.: Prentice Hall; London :\u00a0 Prentice-Hall International (Prentice Hall information and system sciences series). Available online at http:\/\/people.irisa.fr\/Michele.Basseville\/kniga\/kniga.pdf.<br \/>\n[3] Namoano, Bernadin; Starr, Andrew; Emmanouilidis, Christos; Cristobal, Ruiz Carcel (2019 &#8211; 2019): Online change detection techniques in time series: An overview. In : 2019 IEEE International Conference on Prognostics and Health Management (ICPHM). 2019 IEEE International Conference on Prognostics and Health Management (ICPHM). San Francisco, CA, USA, 17.06.2019 &#8211; 20.06.2019: IEEE, pp. 1\u201310, checked on 4\/8\/2021.<br \/>\n[4] Page, E. S. (1954): Contiuous Inspection Schemes. In <em>Biometrika <\/em>41 (1-2), pp.\u00a0100\u2013115. DOI: 10.1093\/biomet\/41.1-2.100.<br \/>\n[5] Shvetsov, Nikolay; Buzun, Nazar; Dylov, Dmitry V. (2020): Unsupervised non-parametric change point detection in quasi-periodic signals, checked on 11\/25\/2020.<br \/>\n[6] Truong, Charles; Oudre, Laurent; Vayatis, Nicolas (2020): Selective review of offline change point detection methods. In <em>Signal Processing <\/em>167, p.\u00a0107299. DOI: 10.1016\/j.sigpro.2019.107299.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the first blog post of our &#8222;Time traveling with data science&#8220; series, we presented several tasks related to the analysis of time series. In this post, we dive into the task called &#8222;change point detection&#8220;. \u00a0 Changes\u00a0in time series\u00a0or&#8230;<\/p>\n","protected":false},"author":66,"featured_media":8446,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[211,177],"tags":[26,104,170,429,431],"coauthors":[214,432,418],"class_list":["post-8369","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digitale-transformation","category-kuenstliche-intelligenz","tag-big-data","tag-data-analytics","tag-data-science","tag-python","tag-time-series-analysis"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Time Traveling with Data Science: Focusing on Change Point Detection in Time Series Analysis (Part 2) - Blog des Fraunhofer IESE<\/title>\n<meta name=\"description\" content=\"In time series, a change point demonstrates an abrupt change in underlying trends, frequencies, or probability distributions. In this blog post, we demonstrate how to effectively conduct change point detection.\" \/>\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.iese.fraunhofer.de\/blog\/change-point-detection\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Time Traveling with Data Science: Focusing on Change Point Detection in Time Series Analysis (Part 2) - Blog des Fraunhofer IESE\" \/>\n<meta property=\"og:description\" content=\"In time series, a change point demonstrates an abrupt change in underlying trends, frequencies, or probability distributions. In this blog post, we demonstrate how to effectively conduct change point detection.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/\" \/>\n<meta property=\"og:site_name\" content=\"Fraunhofer IESE\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/FraunhoferIESE\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-07T05:43:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-09T13:08:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/09\/TimeSeriesAnalysis2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1496\" \/>\n\t<meta property=\"og:image:height\" content=\"750\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dr. Julien Siebert, Janek Gro\u00df, Christof Schroth\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@FraunhoferIESE\" \/>\n<meta name=\"twitter:site\" content=\"@FraunhoferIESE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dr. Julien Siebert\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Dr. Julien Siebert, Janek Gro\u00df, Christof Schroth\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/change-point-detection\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/change-point-detection\\\/\"},\"author\":{\"name\":\"Dr. Julien Siebert\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#\\\/schema\\\/person\\\/96d3d2ce62a13a8ee470ea948601ff28\"},\"headline\":\"Time Traveling with Data Science: Focusing on Change Point Detection in Time Series Analysis (Part 2)\",\"datePublished\":\"2021-09-07T05:43:24+00:00\",\"dateModified\":\"2025-09-09T13:08:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/change-point-detection\\\/\"},\"wordCount\":1622,\"publisher\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/change-point-detection\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/TimeSeriesAnalysis2.jpg\",\"keywords\":[\"Big Data\",\"Data Analytics\",\"Data Science\",\"Python\",\"Time Series Analysis\"],\"articleSection\":[\"Digitale Transformation\",\"K\u00fcnstliche Intelligenz\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/change-point-detection\\\/\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/change-point-detection\\\/\",\"name\":\"Time Traveling with Data Science: Focusing on Change Point Detection in Time Series Analysis (Part 2) - Blog des Fraunhofer IESE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/change-point-detection\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/change-point-detection\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/TimeSeriesAnalysis2.jpg\",\"datePublished\":\"2021-09-07T05:43:24+00:00\",\"dateModified\":\"2025-09-09T13:08:59+00:00\",\"description\":\"In time series, a change point demonstrates an abrupt change in underlying trends, frequencies, or probability distributions. In this blog post, we demonstrate how to effectively conduct change point detection.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/change-point-detection\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/change-point-detection\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/change-point-detection\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/TimeSeriesAnalysis2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/TimeSeriesAnalysis2.jpg\",\"width\":1496,\"height\":750,\"caption\":\"Time Series Analysis (Change Point Detection)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/change-point-detection\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Time Traveling with Data Science: Focusing on Change Point Detection in Time Series Analysis (Part 2)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/\",\"name\":\"Fraunhofer IESE\",\"description\":\"Blog des Fraunhofer-Institut f\u00fcr Experimentelles Software Engineering\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#organization\",\"name\":\"Fraunhofer IESE\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/08\\\/fhg_iese_logo.png\",\"contentUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/08\\\/fhg_iese_logo.png\",\"width\":183,\"height\":50,\"caption\":\"Fraunhofer IESE\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/FraunhoferIESE\\\/\",\"https:\\\/\\\/x.com\\\/FraunhoferIESE\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/fraunhoferiese\\\/\",\"https:\\\/\\\/www.youtube.com\\\/c\\\/FraunhoferIESE\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#\\\/schema\\\/person\\\/96d3d2ce62a13a8ee470ea948601ff28\",\"name\":\"Dr. Julien Siebert\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/siebert_julien_8513_blog-96x96.jpg299e210bdf5631c16552ac66c10e3e56\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/siebert_julien_8513_blog-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/siebert_julien_8513_blog-96x96.jpg\",\"caption\":\"Dr. Julien Siebert\"},\"description\":\"Julien Siebert is working as senior AI Expert in the Data Science department of Fraunhofer IESE. He studied Artificial Intelligence and Engineering Science and got his PhD in Computer Science. His professional interests include data science processes, artificial intelligence and complex systems.\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/author\\\/julien-siebert\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Time Traveling with Data Science: Focusing on Change Point Detection in Time Series Analysis (Part 2) - Blog des Fraunhofer IESE","description":"In time series, a change point demonstrates an abrupt change in underlying trends, frequencies, or probability distributions. In this blog post, we demonstrate how to effectively conduct change point detection.","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.iese.fraunhofer.de\/blog\/change-point-detection\/","og_locale":"de_DE","og_type":"article","og_title":"Time Traveling with Data Science: Focusing on Change Point Detection in Time Series Analysis (Part 2) - Blog des Fraunhofer IESE","og_description":"In time series, a change point demonstrates an abrupt change in underlying trends, frequencies, or probability distributions. In this blog post, we demonstrate how to effectively conduct change point detection.","og_url":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/","og_site_name":"Fraunhofer IESE","article_publisher":"https:\/\/www.facebook.com\/FraunhoferIESE\/","article_published_time":"2021-09-07T05:43:24+00:00","article_modified_time":"2025-09-09T13:08:59+00:00","og_image":[{"width":1496,"height":750,"url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/09\/TimeSeriesAnalysis2.jpg","type":"image\/jpeg"}],"author":"Dr. Julien Siebert, Janek Gro\u00df, Christof Schroth","twitter_card":"summary_large_image","twitter_creator":"@FraunhoferIESE","twitter_site":"@FraunhoferIESE","twitter_misc":{"Verfasst von":"Dr. Julien Siebert","Gesch\u00e4tzte Lesezeit":"7\u00a0Minuten","Written by":"Dr. Julien Siebert, Janek Gro\u00df, Christof Schroth"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/#article","isPartOf":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/"},"author":{"name":"Dr. Julien Siebert","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#\/schema\/person\/96d3d2ce62a13a8ee470ea948601ff28"},"headline":"Time Traveling with Data Science: Focusing on Change Point Detection in Time Series Analysis (Part 2)","datePublished":"2021-09-07T05:43:24+00:00","dateModified":"2025-09-09T13:08:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/"},"wordCount":1622,"publisher":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#organization"},"image":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/09\/TimeSeriesAnalysis2.jpg","keywords":["Big Data","Data Analytics","Data Science","Python","Time Series Analysis"],"articleSection":["Digitale Transformation","K\u00fcnstliche Intelligenz"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/","url":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/","name":"Time Traveling with Data Science: Focusing on Change Point Detection in Time Series Analysis (Part 2) - Blog des Fraunhofer IESE","isPartOf":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/#primaryimage"},"image":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/09\/TimeSeriesAnalysis2.jpg","datePublished":"2021-09-07T05:43:24+00:00","dateModified":"2025-09-09T13:08:59+00:00","description":"In time series, a change point demonstrates an abrupt change in underlying trends, frequencies, or probability distributions. In this blog post, we demonstrate how to effectively conduct change point detection.","breadcrumb":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/#primaryimage","url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/09\/TimeSeriesAnalysis2.jpg","contentUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/09\/TimeSeriesAnalysis2.jpg","width":1496,"height":750,"caption":"Time Series Analysis (Change Point Detection)"},{"@type":"BreadcrumbList","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/change-point-detection\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.iese.fraunhofer.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Time Traveling with Data Science: Focusing on Change Point Detection in Time Series Analysis (Part 2)"}]},{"@type":"WebSite","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#website","url":"https:\/\/www.iese.fraunhofer.de\/blog\/","name":"Fraunhofer IESE","description":"Blog des Fraunhofer-Institut f\u00fcr Experimentelles Software Engineering","publisher":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iese.fraunhofer.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#organization","name":"Fraunhofer IESE","url":"https:\/\/www.iese.fraunhofer.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2016\/08\/fhg_iese_logo.png","contentUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2016\/08\/fhg_iese_logo.png","width":183,"height":50,"caption":"Fraunhofer IESE"},"image":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/FraunhoferIESE\/","https:\/\/x.com\/FraunhoferIESE","https:\/\/www.linkedin.com\/company\/fraunhoferiese\/","https:\/\/www.youtube.com\/c\/FraunhoferIESE"]},{"@type":"Person","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#\/schema\/person\/96d3d2ce62a13a8ee470ea948601ff28","name":"Dr. Julien Siebert","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2020\/10\/siebert_julien_8513_blog-96x96.jpg299e210bdf5631c16552ac66c10e3e56","url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2020\/10\/siebert_julien_8513_blog-96x96.jpg","contentUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2020\/10\/siebert_julien_8513_blog-96x96.jpg","caption":"Dr. Julien Siebert"},"description":"Julien Siebert is working as senior AI Expert in the Data Science department of Fraunhofer IESE. He studied Artificial Intelligence and Engineering Science and got his PhD in Computer Science. His professional interests include data science processes, artificial intelligence and complex systems.","url":"https:\/\/www.iese.fraunhofer.de\/blog\/author\/julien-siebert\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2021\/09\/TimeSeriesAnalysis2.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/posts\/8369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/users\/66"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/comments?post=8369"}],"version-history":[{"count":41,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/posts\/8369\/revisions"}],"predecessor-version":[{"id":12502,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/posts\/8369\/revisions\/12502"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/media\/8446"}],"wp:attachment":[{"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/media?parent=8369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/categories?post=8369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/tags?post=8369"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/coauthors?post=8369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}