Zlot użytkowników R Porównanie szeregów czasowych z wykorzystaniem algorytmu DTW Paweł Teisseyre Instytut Podstaw Informatyki, Polska Akademia Nauk 21 września 2010
Miary podobieństwa między szeregami czasowymi Time Series 1.0 0.5 0.0 0.5 1.0 sin(x) cos(x) 0 1 2 3 4 5 6 Rysunek: Jaka miara odległości jest najbardziej odpowiednia do porównania dwóch szeregów czasowych X t i Y t, t N?
Miary podobieństwa między szeregami czasowymi Time Series 1.0 0.5 0.0 0.5 1.0 sin(x) cos(x) 0 1 2 3 4 5 6 Rysunek: Miara oparta na odległości L1 lub L2
Miary podobieństwa między szeregami czasowymi Time Series 1.0 0.5 0.0 0.5 1.0 sin(x) cos(x) 0 20 40 60 80 100 Rysunek: Miara oparta na odległości obliczonej na podstawie algorytmu DTW
Algorytm DTW (Dynamic Time Warping) Metoda DTW pozwala na znalezienie najmniejszej odległości między dwoma szeregami czasowymi przy dopuszczeniu transformacji czasu dla obu szeregów. Niech X = (x 1,..., x N ) oraz Y = (y 1,..., y M ) oznaczają szeregi czasowe które chcemy porównać.
Algorytm DTW (Dynamic Time Warping) Metoda DTW pozwala na znalezienie najmniejszej odległości między dwoma szeregami czasowymi przy dopuszczeniu transformacji czasu dla obu szeregów. Niech X = (x 1,..., x N ) oraz Y = (y 1,..., y M ) oznaczają szeregi czasowe które chcemy porównać. Definiujemy funkcję odległości dla wybranej pary punktów d(i, j) = f (x i, y j ) 0, na przykład d(i, j) = x i y j lub d(i, j) = (x i y j ) 2.
Algorytm DTW (Dynamic Time Warping) Niech T oznacza liczbę połączeń między odpowiednimi punktami w szeregach X i Y. Istotą algorytmu jest wybór funkcji φ(k), k = 1,..., T (tzw. warping curve): φ(k) = (φ x (k), φ y (k)), φ x (k) {1,..., N}, φ y (k) {1,..., M}. gdzie Funkcje φ x, φ y wybierają odpowiednie indeksy szeregów X oraz Y. Funkcja φ opisuje sposób połączenia punktów między szeregami X i Y.
Algorytm DTW (Dynamic Time Warping) Niech T oznacza liczbę połączeń między odpowiednimi punktami w szeregach X i Y. Istotą algorytmu jest wybór funkcji φ(k), k = 1,..., T (tzw. warping curve): φ(k) = (φ x (k), φ y (k)), φ x (k) {1,..., N}, φ y (k) {1,..., M}. gdzie Funkcje φ x, φ y wybierają odpowiednie indeksy szeregów X oraz Y. Funkcja φ opisuje sposób połączenia punktów między szeregami X i Y. Mając daną funkcję φ obliczamy skumulowany dystans d φ (X, Y ) = T d(φ x (k), φ y (k)). k=1
Algorytm DTW (Dynamic Time Warping) Celem algorytmu jest znalezienie takiej funkcji φ aby skumulowany dystans był najmniejszy, tzn. D(X, Y ) = min φ d φ (X, Y ). Problem jest rozwiązywany za pomocą programowania dynamicznego (dynamic programming), złożoność wynosi O(N M). (por. problem znajdowania najdłuższego wspólnego podciągu, LCS)
Algorytm DTW (Dynamic Time Warping) Aby ograniczyć przestrzeń poszukiwań na funkcję φ nakładane są niektóre spośród następujących warunków. Zakładamy że: 1. składowe φ x, φ y są funkcjami niemalejącymi (podobne fragmenty są łączone tylko jeden raz),
Algorytm DTW (Dynamic Time Warping) Aby ograniczyć przestrzeń poszukiwań na funkcję φ nakładane są niektóre spośród następujących warunków. Zakładamy że: 1. składowe φ x, φ y są funkcjami niemalejącymi (podobne fragmenty są łączone tylko jeden raz), 2. składowe φ x, φ y są funkcjami ciągłymi : φ x ({1,..., T }) = {1,..., N}, φ y ({1,..., T }) = {1,..., M} (żadne punkty nie są pomijane),
Algorytm DTW (Dynamic Time Warping) Aby ograniczyć przestrzeń poszukiwań na funkcję φ nakładane są niektóre spośród następujących warunków. Zakładamy że: 1. składowe φ x, φ y są funkcjami niemalejącymi (podobne fragmenty są łączone tylko jeden raz), 2. składowe φ x, φ y są funkcjami ciągłymi : φ x ({1,..., T }) = {1,..., N}, φ y ({1,..., T }) = {1,..., M} (żadne punkty nie są pomijane), 3. funkcje φ x, φ y spełniają warunki brzegowe φ x (1) = φ y (1) = 1, φ x (T ) = N, φ y (T ) = M (dopasowanie nie jest wykonane na fragmentach szeregów),
Algorytm DTW (Dynamic Time Warping) Aby ograniczyć przestrzeń poszukiwań na funkcję φ nakładane są niektóre spośród następujących warunków. Zakładamy że: 1. składowe φ x, φ y są funkcjami niemalejącymi (podobne fragmenty są łączone tylko jeden raz), 2. składowe φ x, φ y są funkcjami ciągłymi : φ x ({1,..., T }) = {1,..., N}, φ y ({1,..., T }) = {1,..., M} (żadne punkty nie są pomijane), 3. funkcje φ x, φ y spełniają warunki brzegowe φ x (1) = φ y (1) = 1, φ x (T ) = N, φ y (T ) = M (dopasowanie nie jest wykonane na fragmentach szeregów), 4. spełniony jest warunek φ x (k) φ y (k) r, gdzie r > 0 (punkty bardzo odległe nie mogą być połączone).
Algorytm DTW (Dynamic Time Warping) Wykonanie algorytmu Tworzymy macierz kosztów g (tzw. Cost Matrix) w następujący sposób: 1. Warunek początkowy: g[1, 1] = d(1, 1),
Algorytm DTW (Dynamic Time Warping) Wykonanie algorytmu Tworzymy macierz kosztów g (tzw. Cost Matrix) w następujący sposób: 1. Warunek początkowy: g[1, 1] = d(1, 1), 2. Równanie rekurencyjne: g[i, j 1] + d(i, j) g[i, j] = min g[i 1, j 1] + d(i, j) g[i 1, j] + d(i, j),
Algorytm DTW (Dynamic Time Warping) Wykonanie algorytmu Tworzymy macierz kosztów g (tzw. Cost Matrix) w następujący sposób: 1. Warunek początkowy: g[1, 1] = d(1, 1), 2. Równanie rekurencyjne: g[i, j 1] + d(i, j) g[i, j] = min g[i 1, j 1] + d(i, j) g[i 1, j] + d(i, j), 3. Wyznaczamy funkcję φ znajdując optymalną scieżkę z punktu g[n, M] do punktu g[1, 1].
Przykład 1 Rozważmy szeregi X = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10), Y = (2, 4, 6, 8, 10, 12, 14, 16, 18, 20). Time series 0 5 10 15 20 X Y 2 4 6 8 10 Rysunek: Szeregi czasowe X i Y
Przykład 1 Warunek początkowy g[1, 1] = d(1, 1) = 2 1 = 1: Y 2 4 6 8 10 1 2 4 6 8 10 X Rysunek: Macierz kosztów g, krok 1
Przykład 1 Obliczamy pierwszy wiersz i pierwszą kolumnę macierzy g: g[1, j] = g[1, j 1] + d(1, j), g[i, 1] = g[i 1, 1] + d(i, 1). Y 2 4 6 8 10 100 81 64 49 36 25 16 9 4 1 1 2 4 7 11 16 22 29 37 2 4 6 8 10 X Rysunek: Macierz kosztów g, krok 2
Przykład 1 Obliczamy g[2, 2]: g[2, 2] = min {g[2, 1] + d(2, 2), g[1, 1] + d(2, 2), g[1, 2] + d(2, 2)}. Y 2 4 6 8 10 100 81 64 49 36 25 16 9 4 3 1 1 2 4 7 11 16 22 29 37 2 4 6 8 10 X Rysunek: Macierz kosztów g, krok 2
Przykład 1 Podobnie wyznaczamy kolejne elementy macierzy g. Y 2 4 6 8 10 100 91 82 74 66 59 52 46 40 35 81 73 65 58 51 45 39 34 29 25 64 57 50 44 38 33 28 24 20 17 49 43 37 32 27 23 19 16 13 11 36 31 26 22 18 15 12 10 8 7 25 21 17 14 11 9 7 6 5 5 16 13 10 8 6 5 4 4 5 7 9 7 5 4 3 3 4 6 9 13 4 3 2 2 3 5 8 12 17 23 1 1 2 4 7 11 16 22 29 37 2 4 6 8 10 X Rysunek: Macierz kosztów g, krok 2
Przykład 1 Po obliczeniu wszytkich elementów macierzy g wyznaczamy optymalną ścieżkę z punktu g[10, 10] do punktu g[1, 1] Y 2 4 6 8 10 100 91 82 74 66 59 52 46 40 35 81 73 65 58 51 45 39 34 29 25 64 57 50 44 38 33 28 24 20 17 49 43 37 32 27 23 19 16 13 11 36 31 26 22 18 15 12 10 8 7 25 21 17 14 11 9 7 6 5 5 16 13 10 8 6 5 4 4 5 7 9 7 5 4 3 3 4 6 9 13 4 3 2 2 3 5 8 12 17 23 1 1 2 4 7 11 16 22 29 37 2 4 6 8 10 X Rysunek: Macierz kosztów g wraz z optymalną scieżką, krok 3
Przykład 1 Odległość L1 wynosi 10 i=1 x i y i = 55. Odległość DTW wynosi D(X, Y ) = 35. X Y Time Series 2 4 6 8 10 2 4 6 8 10 Rysunek: Dopasowanie odpowiednich punktów przy użyciu algorytmu DTW
Przykład 2 Time Series 1.0 0.5 0.0 0.5 1.0 1 2 3 0 1 2 3 4 5 6 1 2 3 1 0 77.26 39.73 2 77.26 0 73.67 3 39.73 73.67 0 Tabela: Odległości L1 1 2 3 1 0 17.88 19.49 2 17.88 0 47.10 3 19.49 47.10 0 Tabela: Odległości DTW
Zastosowania metody DTW Rozpoznawanie mowy (Velichko i Zagoruyko 1970, Sakoe i Chiba 1971), Analiza EKG (Huang i Kisner 2002, Syeda-Mahmood et al 2007), Analiza skupień ze względu na profil ekspresji genów (Aach i Church 2001, Hermans i Tsiporkova 2007), Biometryka (Faundez-Zanuy 2007, Rath i Manmatha 2003), Monitorowanie Procesów (Gollmer i Posten 1996). Wszystkie referencje można znaleźć w pracy: Toni Giorgino. Computing and Visualizing Dynamic Time Warping Alignments in R: The dtw Package. Journal of Statistical Software, 31(7), 1-24. http://www.jstatsoft.org/v31/i07/
Analiza danych dotyczących zapadalności na grypę w Polsce Celem analizy było porównanie szeregów czasowych opisujących zapadalność na grypę dla różnych województw.
Analiza danych dotyczących zapadalności na grypę w Polsce Celem analizy było porównanie szeregów czasowych opisujących zapadalność na grypę dla różnych województw. Do oblicznia odległości między szeregami używaliśmy miary euklidesowej i opartej na algorytmie DTW.
Analiza danych dotyczących zapadalności na grypę w Polsce Celem analizy było porównanie szeregów czasowych opisujących zapadalność na grypę dla różnych województw. Do oblicznia odległości między szeregami używaliśmy miary euklidesowej i opartej na algorytmie DTW. Dla obu miar wykonaliśmy analizę skupień przy użyciu metody hclust.
Zachodniopomorskie Wielkopolskie Warminsko Mazurskie Swietokrzyskie Slaskie Pomorskie Podlaskie Podkarpackie Opolskie Mazowieckie Malopolskie Lodzkie Lubuskie Lubelskie Kujawsko Pomorskie Dolnoslaskie Dolnoslaskie Kujawsko Pomorskie Lubelskie Lubuskie Lodzkie Malopolskie Mazowieckie Opolskie Podkarpackie Podlaskie Pomorskie Slaskie Swietokrzyskie Warminsko Mazurskie Wielkopolskie Zachodniopomorskie Rysunek: Mapa odległości DTW między województwami.
Cluster Dendrogram Height 0 500 1000 1500 2000 Warminsko Mazurskie Wielkopolskie Podkarpackie Swietokrzyskie Malopolskie Opolskie Zachodniopomorskie Mazowieckie Lubelskie Lubuskie Slaskie Lodzkie Pomorskie Dolnoslaskie Kujawsko Pomorskie Podlaskie d hclust (*, "average") Rysunek: Dendrogram dla odległości obliczonych metodą DTW.
Wykres przebiegu Podkarpackie Swietokrzyskie Zapadalnosc 0 100 200 300 400 Czas Rysunek: Wykres przebiegów dla 2 województw.
Wykres przebiegu po transformacji osi czasu Podkarpackie Swietokrzyskie Zapadalnosc 0 100 200 300 400 Czas Rysunek: Wykres przebiegów dla 2 województw po transformacji dziedziny czasu metodą DTW.
Macierz skumulowanych kosztów Swietokrzyskie 50 100 150 50 100 150 Podkarpackie Rysunek: Mapa ciepła dla macierzy kosztów wraz z optymalną ścieżką wyznaczoną metodą DTW
Distance 17000 18000 19000 20000 21000 22000 Euclidean DTW DS KP LBL LBS LO MP MA OP PDK PDL PO SL SW WM WLKP ZP Wojewodztwa Rysunek: Odległości między zapadalnością ogólną w Polsce a zapadalnościami w poszególnych województwach.
Wnioski Celem analizy było stwierdzenie które szeregi są najbardziej podobne w sensie miary euklidesowej i DTW oraz które dane są najbardziej reprezentatywne dla całego kraju. W przypadku danych dotyczących zapadalności na grypę często mamy do czynienia z sytuacją kiedy dwa szeregi mają podobną strukturę ale są przesunięte w czasie (np. gdy szczyt zapadalności w danym obszarze występuje wcześniej niż w innym). W takich przypadkach miara DTW jest bardziej odpowiednia niż ta oparta na odległości euklidesowej.
Dziękuje za uwagę!