Wprowadzenie do statystyki funkcjonalnej

advertisement
POLITECHNIKA GDAŃSKA
Wydział Fizyki Technicznej i Matematyki Stosowanej
Szymon Flohr
Wprowadzenie do statystyki funkcjonalnej
Praca magisterska
Praca wykonana pod opieką
Pana dr hab. Karola Dziedziula
Streszczenie
Celem pracy jest wprowadzenie do działu statystyki jakim jest statystyka funkcjonalna,
którą równoważnie określa się także jako funkcjonalną analizę danych. Jest to statystyka,
która zajmuje się analizą informacji zawartych w obiektach ciągłych. W pracy zostanie
zaprezentowana podstawowa terminologia oraz liczne przykłady związane z funkcjonalną
analizą danych. Z uwagi na fakt, że analiza danych funkcjonalnych odbywa się na przestrzeniach nieskończenie wymiarowych, kluczowym założeniem jest rozważanie danych
jako elementów losowych z ośrodkowej przestrzeni Hilberta H = L2 [0, 1]. Podstawowym
wsparciem informatycznym jest platforma R, która została rozbudowana o pakiet o nazwie
fda umożliwiający pracę z danymi funkcjonalnymi.
Drugi dział opisuje podstawowe definicję wraz z przykładami, zawierać będzie także
opis analizy głównych składowych. Trzeci dział opisuje techniki zamiany danych dyskretnych do danych funkcjonalnych. Ta sekcja także będzie zawierać liczne przykłady.
Czwarty dział ma charakter typowo analityczny - zawiera zestawienie podstawowych statystyk opisowych dla funkcjonalnej analizy danych. Piąty dział, który stanowi zwieńczenie tej pracy definiuje funkcjonalną analizę głównych składowych wraz dokładnym opisem
przykładu.
Słowa kluczowe: funkcjonalna analiza danych, dane funkcjonalne, funkcjonalna analiza
głównych składowych, baza B-spline, baza Fouriera, środowisko R, operator HilbertaSchmidta.
Dziedzina nauki i techniki, zgodnie z wymogami OECD: 1.1 Matematyka.
Abstract
The aim of this thesis is an introduction to department of statistic that is functional
statistic, equivalently called functional data analysis. It is a statistic that deals with the
analysis of the information contained in continuous objects. The work will presented the
basic terminology and numerous examples related to functional data analysis. Due to the
fact that the analysis of functional data takes place on the infinitely dimensional space,
the key idea is to consider the data as random elements of the separable Hilbert space
H = L2 [0, 1]. Primary IT support is a platform R, which was extended by a package
called fda which allows work to the functional data.
The second section describes the basic definitions and examples, will also feature a
description of the principal component analysis. The third section describes the technique
of changing discrete data the functional data. This section will also contain numerous
examples. The fourth section is a purely analytical - provides an overview of basic descriptive statistics for functional data analysis. The fifth division, which is the culmination of
this thesis defines the functional principal component analysis and a detailed description
of example.
Keywords: functional data analysis, functional data, functional principal component
analysis, B-spline basis, Fourier basis, R program, Hilbert-Schmidt operator.
Spis treści
1 Wstęp i cel pracy
6
2 Preliminaria
2.1 Podstawowa terminologia . . . . . . . . .
2.1.1 Dane funkcjonalne . . . . . . . .
2.2 Przykład wprowadzający . . . . . . . . .
2.3 Analiza głównych składowych . . . . . .
2.3.1 Przykład . . . . . . . . . . . . . .
2.4 Kody programów R - przykłady wstępne
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Od danych dyskretnych do danych funkcjonalnych
3.1 Reprezentacja danych za pomocą funkcji bazowych . . . . . . . . . . . .
3.1.1 Baza Fouriera . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2 Baza B-spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.3 Kod programu R - przykłady wygładzania . . . . . . . . . . . . .
3.1.4 Inne systemy bazowe . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Dopasowanie współczynników oraz parametru K dla reprezentacji danych
w systemie funkcji bazowych . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Metoda najmniejszych kwadratów . . . . . . . . . . . . . . . . . .
3.2.2 Wybór parametru K - ilości funkcji bazowych . . . . . . . . . . .
4 Podstawowa analiza danych funkcjonalnych
4.1 Średnia funkcjonalna . . . . . . . . . . . . . . . . .
4.2 Wariancja funkcjonalna . . . . . . . . . . . . . . . .
4.3 Odchylenie standardowe dla danych funkcjonalnych
4.4 Kowariancja oraz korelacja funkcjonalna . . . . . .
4.5 Cross-kowariancja oraz cross-korelacja . . . . . . . .
4.6 Pochodne funkcjonalne . . . . . . . . . . . . . . . .
4.7 Kod programu R . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
9
11
12
14
15
.
.
.
.
.
16
16
17
20
23
24
. 25
. 25
. 26
.
.
.
.
.
.
.
29
30
31
31
32
34
36
37
5 Funkcjonalna analiza głównych składowych
39
5.1 Wstęp teoretyczny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.2 Podejście analityczne - przykłady oraz analiza . . . . . . . . . . . . . . . . 42
5.2.1 Kod programu R - FPCA . . . . . . . . . . . . . . . . . . . . . . . 45
Bibliography
46
5
Rozdział 1
Wstęp i cel pracy
Statystyka matematyczna jako dział szeroko pojętej matematyki z racji swoich licznych zastosowań praktycznych jest dziedziną wciąż rozwijającą się. Wymagania stawiane
przez dzisiejsze społeczeństwo oraz nowoczesne systemy gospodarcze oparte na przepływie
informacji powodują, iż wspomniana statystyka matematyczna staje się nauką, która ma
niebagatelne znaczenie między innymi w nowoczesnej ekonomii, inżynierii finansowej, naukach technicznych oraz informatycznych. Dodatkowym bodźcem stymulującym rozwój
tej dziedziny matematyki jest także rozwój nauk informatycznym dokonany na przestrzeni
kilku ostatnich dekad - w szczególności specjalistycznego oprogramowania, które umożliwia przeprowadzenie skomplikowanych obliczeń statystyczno-numerycznych. Jednym z
działów statystyki matematycznej, którego rozwój dokonał się na przestrzeni kilkunastu ostatnich lat jest funkcjonalna analiza danych (ang. functional data analysis FDA), która stanowi gałąź statystyki zajmującą się obiektami ciągłymi, określonymi jako
dane funkcjonalne (ang. functional data). Jest ona stosunkowo nową oraz unikalną
próbą opisu rzeczywistości za pomocą aparatu matematycznego. Funkcjonalna analiza
danych jest nauką, która rozwinęła się na gruncie wielu działów statystyki - w szczególności analizy wielowymiarowej. Stanowi logiczną konsekwencję badań na statystyką
wielowymiarową i nakreśla nowe możliwości dla rozwoju nowoczesnej matematyki.
W niniejszej pracy zostanie poruszona tematyka związana ze wstępem do działu statystyki jakim jest funkcjonalna analiza danych. W sposób spójny i logiczny zostanie przedstawiona terminologia związana z tą dziedziną. Duży nacisk zostanie położony na liczne
przykłady oraz wizualizacje uzyskane za pomocą oprogramowania R. Kwestie teoretyczne
zostaną zaprezentowane w sposób przystępny oraz przejrzysty. Użycie oprogramowania
informatycznego ma na celu lepsze przedstawienie wspomnianej problematyki oraz zwrócenie uwagi na praktyczne aspekty funkcjonalnej analizy danych. Z uwagi na fakt, że
funkcjonalna analiza danych jest niewątpliwie innowacyjna oraz przyszłościowa, praca
ma na celu zwrócenie uwagi na tę interesującą i wciąż rozwijającą się gałąź statystyki.
Celem pracy jest także ukazanie przydatności oprogramowania R, które z racji licznych
możliwości rozbudowy jest idealną platformą dla nowych działów statystyki. Dodatkową
motywacją dla autora jest także fakt, iż w polskiej literaturze fachowej praktycznie nie
istnieją żadne opracowania dotyczące FDA, mimo wielu bardzo interesujących aspektów
tej dziedziny.
Statystyka funkcjonalna wymaga rozbudowy platformy R o następujące pakiety dostępne na oficjalnej stronie internetowej producenta - fda oraz fda.usc. Pakiety te zostały
opracowane przy współudziale najważniejszych autorów literatury fachowej dotyczącej
6
FDA i stanowią podstawowe narzędzie informatyczne dla omawianej tematyki, które wykorzystywane jest w rozważaniach teoretycznych oraz praktycznych. Zawierają kilkadziesiąt przydatnych funkcji, które umożliwiają obliczenia w ramach statystyki funkcjonalnej.
Praca podzielona jest na cztery części - w drugim dziale przedstawione zostaną podstawowe zagadnienia FDA. Dział ten zawiera istotne definicje oraz informacje na temat
przestrzeni L2 [0, 1], w której rozważane są dane funkcjonalne. Trzeci dział opisuje techniki
zamiany danych dyskretnych do danych funkcjonalnych. Czwarta część pracy przedstawia
podstawowe statystyki dla danych funkcjonalnych - ten dział ma na celu wizualizację oraz
prezentację praktycznych możliwości wykorzystania FDA. Piąty dział opisuje teoretyczne
oraz praktyczne aspekty funkcjonalnej analizy głównych składowych (ang. functional principal component analysis - FPCA), stanowi on rozwinięcie działu pierwszego
dotyczącego w dużej części przestrzeni L2 [0, 1].
7
Rozdział 2
Preliminaria
Ta część pracy ma celu przedstawienie podstawowych terminów oraz problematyki
badawczej związanej z funkcjonalną analizą danych. Rozdział ten przybliży zasadność
użycia technik funkcjonalnej analizy danych w rozważaniach praktycznych oraz teoretycznych. Poruszona także zostanie tematyka związana z oprogramowaniem R, stanowiącego
podstawowe wsparcie informatyczne dla obliczeń statystyczno-numerycznych. Rozdział
stanowi wstęp do dalszych rozważań dotyczących tematyki FDA. Dodatkowo, ta część
pracy zawiera krótkie wprowadzenie do tematyki analizy głównych składowych - PCA,
dla przypadku danych dyskretnych. Ma to na celu porównanie względem funkcjonalnej
analizy głównych składowych - FPCA, o której mowa będzie w rozdziale 5.
2.1
Podstawowa terminologia
Funkcjonalną analizą danych (ang. functional data analysis - FDA) nazywamy
dział statystyki matematycznej, który zajmuję się analizą informacji zawartych w obiektach ciągłych, takich jak funkcje, powierzchnie, krzywe etc.. Ciągłość wspomnianych
obiektów z reguły oznacza ciągłość względem czasu, jednak może także oznaczać ciągłość
innych parametrów. Wspomniane obiekty będące przedmiotem analizy określa się jako
dane funkcjonalne (ang. functional data). Równoważna definicja funkcjonalnej analizy
danych brzmi następująco - jest to dział statystyki, który stanowi zbiór technik służący
do modelowania danych pochodzących z układów dynamicznych.
Zasadniczo cele funkcjonalnej analizy danych nie różnią się od celów jaki stawiane są
przed innymi działami statystyki matematycznej. Należą do nich :
• konwersja danych dyskretnych do danych funkcjonalnych,
• prezentacja danych w sposób umożliwiający łatwiejszą analizę,
• przedstawienie danych tak, by podkreślić najistotniejsze cechy badanego zbioru,
• analiza źródeł zmienności wśród danych.
8
2.1.1
Dane funkcjonalne
Dane funkcjonalne to dane charakteryzujące się ciągłością pewnych parametrów zazwyczaj jest to ciągłość względem czasu, jednak może to być ciągłość takich cech jak
: częstotliwość, prawdopodobieństwo, lokalizacja, współrzędne itp.. Tak więc pojedyncza
dana funkcjonalna może być przykładowo funkcją, krzywą, powierzchnią. Wynika stąd,
że funkcjonalna analiza danych odbywa się w przestrzeniach nieskończenie wymiarowych,
zostaną one scharakteryzowane w dalszej części pracy. Ważną cechą danych funkcjonalnych jest gładkość (ang. smoothness) - oznacza to, iż dane posiadają jedną lub więcej
pochodnych. Zbiór danych funkcjonalnych można przedstawić następująco
{xi (t), i = 1, . . . , n, t ∈ T } ,
(2.1)
gdzie
i - indeks danej funkcjonalnej,
T - zbiór, na którym zdefiniowane są dane funkcjonalne.
W naturze dane o charakterze ciągłym występują relatywnie rzadko, zazwyczaj obserwowane są one w dyskretnych momentach czasowych. Jednym z głównych celów funkcjonalnej analizy danych jest konwersja danych notowanych w dyskretnych momentach
czasu do danych funkcjonalnych, czyli danych o charakterze ciągłym. Oznacza to tworzenie danych funkcjonalnych o następującej postaci, którą określa się jako standardowy
model dla błędu (ang. standard model for errors)
yj = x (tj ) + j ,
(2.2)
gdzie
x(tj ) - ciągła dana funkcjonalna w momencie tj ,
yj - to obserwacja dyskretna pochodząca ze zbioru y = (y1 , ..., yn ),
tj - to parametr danej funkcjonalnej odpowiadający obserwacji yj - zazwyczaj jest to
jednostka czasowa,
j - błąd (szum),
j - indeks dotyczący danej obserwacji dyskretnej yj .
Notacja macierzowa wygląda następująco
y = x (t) + e,
(2.3)
gdzie
y - wektor obserwacji długości n,
x(t) - wektor wartości danej funkcjonalnej n,
e - wektor błędów długości n.
Dana funkcjonalna x(t) tworzona jest na podstawie obserwacji n par o następującej
strukturze
(tj , yj ) ,
(2.4)
gdzie
yj - wartość danej funkcjonalnej dla parametru tj zakłóconego przez pewien błąd j .
Oczywistą kwestią jest, że dane funkcjonalne rozważa się we większej ilości - zbiory
danych funkcjonalnych xi (t) posiadają następującą postać
yij = xi (tij ) + ij ,
9
(2.5)
gdzie
ij - indeks dotyczący danej obserwacji dyskretnej yj z uwzględnieniem i-tej danej funkcjonalnej,
i - indeks dotyczący danej funkcjonalnej xi ,
yij - to obserwacja dyskretna pochodząca ze zbioru y = (y1 , ..., yni ),
tij - to parametr danej funkcjonalnej odpowiadający obserwacji yij - zazwyczaj jest to
jednostka czasowa,
xi (tij ) - i-ta, ciągła dana funkcjonalny w momencie tij ,
ij - błąd (szum).
Analogicznie - dane funkcjonalne xi (t) tworzone są w oparciu o obserwację ni par o
następującej formie
(tij , yij ) ,
(2.6)
gdzie
yij - wartość danej funkcjonalnej dla parametru tij zakłóconego przez pewien błąd ij ,
i - indeks odnoszący się do danej funkcjonalnej.
Wspomniane tworzenie danych funkcjonalnych oznacza konwersję danych dyskretnych
do danych ciągłych. Główna metodą umożliwiającą ten proces jest wygładzanie przy
użyciu systemu funkcji bazowych - ta tematyka zostanie zostanie omówiona w rozdziale
3.
Podstawową przestrzenią, w której rozważa się dane funkcjonalne jako elementy losowe
jest następująca ośrodkowa przestrzeń Hilberta
H = L2 [0, 1],
(2.7)
która określa przestrzeń klas funkcji względem relacji równoważności, tj.
f ∼g⇔f =g
(2.8)
prawie wszędzie względem miary Lebesque’a na odcinku [0, 1], takich, że
Z 1
f 2 (t)dr < +∞.
(2.9)
0
Produkt skalarny określony jest następująco
hf, gi =
Z 1
f (t)g(t)dt,
(2.10)
0
gdzie
f, g ∈ L2 [0, 1].
Norma dla elementów tej przestrzeni zdefiniowana jest następująco
1
2
kf k = (hf, f i) =
Z 1
2
1/2
f (t)dt
(2.11)
0
Dalsze rozwinięcie tematyki elementów losowych w przestrzeni L2 [0, 1] znajduje się w rozdziale 5 i stanowi podstawę teoretycznego wprowadzenia do funkcjonalnej analizy głównych składowych.
10
2.2
Przykład wprowadzający
Jak wspomniano wcześniej, podstawowym wsparciem dla funkcjonalnej analizy danych
od strony informatycznej jest platforma R wraz z wymaganymi pakietami o nazwach
odpowiednio - fda oraz fda.usc. Poniżej zamieszczony zostanie przykład prezentujący
zbiór danych funkcjonalnych - są to dane określające wzrost 54 dziewczyn z jednej z
amerykańskich szkół w mieście Berkley. Dane te powstały w wyniku wygładzania za
pomocą 12 kubicznych funkcji B-spline 31 punktów pomiarowych dla każdej z osób. Wiek,
w jakim dziewczyny poddane były pomiarom wzrostu to zakres od jednego roku do 18
roku życia. Obserwacje dyskretne przed wygładzeniem nie były równomiernie rozmieszone
w przedziale czasowym. Numeryczny wektor prezentujący wiek odczytu wzrostu wygląda
następująco
Utworzone dane funkcjonalne - 54 krzywe o postaci
{xi (t), i = 1, . . . , 54, t ∈ [1, 18] = T } ,
(2.12)
gdzie
i - indeks danej dziewczyny,
T - czas - wiek.
140
120
80
100
Wzrost (cm)
160
180
Wzrost dziewczyn
5
10
15
Wiek
Rysunek 2.1: Zbiór krzywych prezentujący zmiany wzrostu dziewczyn z jeden z amerykańskich szkół (miasto Berkeley)
Powyższe dane wbudowane są w pakiet fda pod nazwą Growth. Sposoby konwersji
oraz systemy bazowe zostaną szczegółowo omówione w rozdziale 3.
11
2.3
Analiza głównych składowych
Głównym założeniem analizy głównych składowych (ang. principal component
analysis - PCA ) jest wyjaśnienie struktur wariancji-kowariancji poprzez tworzenie pewnej
liczby k nowych zmiennych losowych stanowiących kombinację liniową zbioru obserwowanych zmiennych losowych X1 , X2 , ..., Xp . Wynika stąd, iż z praktycznego punktu widzenia
technika PCA używana jest, by zredukować liczbę danych oraz maksymalnie efektywnie
wyjaśnić oraz zinterpretować wariancję zbioru wejściowego.
0
Niech wektor X = [X1 , X2 , ..., Xp ] posiada macierz kowariancji


σ11 σ12 . . . σ1p


σ21 σ22 . . . σ2p 

Σ = Cov(X) =  ..
.. . .
. ,
. .. 

 .
.
σp1 σp2 . . . σpp
gdzie
σii = V ar(Xi ), i = i oraz i = 1, . . . , p,
σij = Cov(Xi , Xj ), i 6= j oraz i = 1, . . . , p oraz j = 1, . . . , p,
wartości własne spełniają nierówność : λ1 ≥ λ2 ≥ . . . ≥ λp ≥ 0.
Dodatkowo rozważmy liniowy układ
0
Y1 = a1 X = a11 X1 + a12 X2 + · · · + a1p Xp
0
Y2 = a2 X = a21 X1 + a22 X2 + · · · + a2p Xp
..
.
(2.13)
0
Yp = ap X = ap1 X1 + ap2 X2 + · · · + app Xp .
Używając macierzy Σ uzyskuje się
0
V ar(Yi ) = ai Σai
0
Cov(Yi , Yk ) = ai Σak .
(2.14)
gdzie i, k = 1, 2, . . . , p.
Składowymi głównymi są te liniowe, nieskorelowane kombinacje spośród Y1 , Y2 , . . . , Yp ,
0
które maksymalizują V ar(Yi ) = ai Σai . By zapewnić jednoznaczność wyboru odpowied0
niej kombinacji liniowej, stosuje się następującą restrykcje dla współczynników : ai ai = 1.
Algorytm PCA, wygląda zatem następująco
0
0
Pierwsza główna składowa = liniowa kombinacja a1 X, która maksymalizuje V ar(a1 X),
0
z zastrzeżeniem a1 a1 = 1 ,
0
0
Druga główna składowa = liniowa kombinacja a2 X, która maksymalizuje V ar(a2 X), z
0
0
0
zastrzeżeniem a2 a2 = 1 oraz Cov(a1 X, a2 X) = 0,
0
0
i - ta główna składowa = liniowa kombinacja ai X która maksymalizuje V ar(ai X), z
0
0
0
zastrzeżeniem ai ai = 1 oraz Cov(ai X, ak X) = 0 dla k < i.
Następujące twierdzenia odnoszą się to związku między problemem maksymalizacji wariancji a strukturą macierzy kowariancji :
12
Twierdzenie 2.1. Niech Σ będzie macierzą kowariancji określoną dla wektora losowego
0
X = [X1 , X2 , ..., Xp ], z określonymi parami (λ1 , e1 ), (λ2 , e2 ), . . . , (λp , ep ), gdzie λi oraz
ei , to odpowiednio wartość własna oraz wektor własny macierzy Σ. Wtedy i-ta składowa
główna przedstawia się następująco :
0
Yi = ei X = ei1 X1 + ei2 X2 + · · · + eip Xp , i = 1, 2, . . . , p
oraz
0
V ar(Yi ) = ei Σei = λi, i = 1, 2, . . . , p
0
Cov(Yi , Yk ) = ei Σek = 0, i 6= k.
Dowód. Dowód tego twierdzenia opiera się na następującym lemacie, który stanowi iż dla
pozytywnie określonej macierzy B z wartościami własnymi spełniającymi λ1 ≥ . . . ≥ λp
z odpowiadającymi wektorami własnymi e1 , . . . , ep zachodzi
0
1. maxe1 6=0
e1 Be1
0
e1 e1
= λ1
0
2. maxek+1 ⊥e1 ,...,ek
ek+1 Bek+1
0
ek+1 ek+1
= λk+1 , k = 1, 2, . . . , p − 1.
Zatem wykorzystując powyższy lemat dla macierzy Σ oraz korzystając z założeń PCA,
mówiących o tym że wektory własne są znormalizowane otrzymuje się
Dla e1
0
e1 Σe1
0
= λ1 = e1 Σe1 = V ar(Y1 )
maxe1 6=0 0
e1 e1
Dla ek+1 takich, że ek+1 ei = 0, i = 1, 2, . . . , k.
0
0
maxek+1 ⊥e1 ,...,ek
e Σek+1
ek+1 Σek+1
0
= λk+1 = k+1
= ek+1 Σek+1 = V ar(Yk+1 )
0
0
ek+1 ek+1
ek+1 ek+1
Zerowa kowariancja między zmiennymi wynika z równości ;
0
0
0
Cov(Yi , Yk ) = ei Σek = ei λk ek = λk ei ek
0
Twierdzenie 2.2. Niech wektor losowy X = [X1 , X2 , ..., Xp ] posiada macierz kowariancji Σ z określonymi parami (λ1 , e1 ), (λ2 , e2 ), . . . , (λp , ep ), gdzie λi oraz ei , to odpowiednio
0
0
wartość własna oraz wektor własny macierzy Σ. Niech Y1 = e1 X, Y1 = e2 X, . . . , Yp =
0
ep X będą składowymi głównymi. Wtedy zachodzi
σ11 + σ22 + · · · + σpp =
p
X
V ar(Xi ) = λi + · · · + λp =
p
X
V ar(Yi ).
i=1
i=1
Dowód. Z definicji macierzy wariancji-kowariancji wynika wprost że, σ11 + σ22 + · · · +
0
σpp = tr(Σ). Z uwagi na fakt, iż macierz Σ spełnia dekompozycje Σ = PΛP , gdzie Λ
jest diagonalną macierzą wartości własnych i P = [e1 , . . . , ep ] zawiera znormalizowane
wektory własne oraz z własności śladu macierzy wynika
0
0
tr(Σ) = tr(PΛP ) = tr(ΛP P) = tr(Λ) = λi + · · · + λp
Zatem
p
X
V ar(Xi ) = tr(Σ) = tr(Λ) =
i=1
p
X
i=1
13
V ar(Yi ).
Powyższe twierdzenie określa całkowitą wariancję populacji. Biorąc pod uwagę
powyższe fakty udział k-tej składowej głównej w wyjaśnianiu całkowitej wariancji zbioru określa poniższy ułamek
λk
.
λi + · · · + λp
W rozważaniach praktycznych analizie podlegają te składowe główne, dla których
suma powyższych wskaźników wynosi więcej niż 85 procent.
2.3.1
Przykład
Na potrzeby przykładu posłużą dane pochodzące z pakietu fda, będą to dane o nazwie CanadianWeather przedstawiające dzienne średnie odczyty temperatur dla 35 stacji
kanadyjskich uśrednione na przestrzeni lat 1960-1994. Dane te nie podlegają procesowi
wygładzania - są to dane dyskretne określone w formie macierzy.
Wynik otrzymane za pomocą oprogramowania R prezentują się następująco - jest to
5 pierwszych składowych głównych
Wyjaśnianie wariacji prezentuje się następująco
14
Jak widać poprawne zinterpretowanie oraz przeanalizowanie składowych głównych byłoby bardzo żmudne oraz skomplikowane. Rozważania na temat funkcjonalnej analizy
głównych składowych umieszczone w dalszej części pracy pokażą zasadność stosowania
tej techniki w miejsce klasycznego PCA.
2.4
Kody programów R - przykłady wstępne
Kody programów R wraz z opisem działania umożliwiające analizę przedstawioną w
tej sekcji prezentują się następująco.
Kod umożliwiający analizę głównych składowych - przykład 2.3.1
# instalacja pakietu zawierającego dane CanadianWeather #
install.packages("fda", dependencies =TRUE)
library(fda)
# wczytanie danych CanadianWeather jako macierz - dzienne średnie opady
dane <- as.matrix(CanadianWeather$dailyAv[,,"Temperature.C"])
# przeprowadzenie obliczeń PCA
PCA <- prcomp(dane)
PCA
summary(PCA)
Kod dotyczący przykładu 2.2
# instalacja pakietu zawierającego dane Growth #
install.packages("fda", dependencies =TRUE)
library(fda)
# utworzenie bazy B-spline o liczbie funkcji nbasis=15, rzędzie 4 na
# odcinku (1,18)
bazasplajn <-create.bspline.basis(c(1,18), norder=4,nbasis=15)
# utworzenie obiektu funkcjonalnego na podstawie danych Growth
# na przedziale równym age(wiek) przy użyciu obserwacji
# y=hgtf,
dziewczyny <- with(growth, smooth.basis(argvals=age, y=hgtf, bazasplajn))
# wykres
plot(dziewczyny$fd, xlab="wiek", ylab="wzrost (cm)",
main="Wzrost dziewczyn" )
# wektor wieku w jakim odbyły się pomiary
growth$age
15
Rozdział 3
Od danych dyskretnych do danych
funkcjonalnych
3.1
Reprezentacja danych za pomocą funkcji bazowych
Do najważniejszych sposobów konwersji danych dyskretnych do danych funkcjonalnych
należy wygładzanie przy użyciu funkcji bazowych. Polega ona na przedstawieniu każdej
danej funkcjonalnej za pomocą kombinacji liniowej K funkcji bazowych.
Funkcjami bazowymi nazywamy zbiór znanych funkcji φk (t), które z matematycznego punktu widzenia są od siebie niezależne i które posiadają tę własność, że w sposób
dokładny przybliżają (aproksymują) dowolną określoną funkcję za pomocą skończonej
kombinacji liniowej długości K. Związek ten określa liniowe wyrażenie
x(t) ≈
K
X
ck φk (t),
(3.1)
k=1
gdzie
ck - współczynniki,
t ∈ T - zbiór, na którym określone są funkcje bazowe,
φk (t) ∈ L2 [0, 1].
W notacji macierzowej powyższe wyrażenie przyjmuje postać
0
0
x = c φ = φ c,
(3.2)
gdzie
c - wektor długości K zawierający współczynniki ck ,
φ - wektor zawierający elementy systemu bazowego - φk .
Stopień wygładzenia danych zależy od wyboru K funkcji bazowych, zatem K rozpatruje się jako swoisty parametr, który determinuje stopień wygładzenia danych. Idealną
sytuacją, do której dąży się podczas wygładzania jest wybór funkcji bazowych, które
posiadają cechy zgodne ze zjawiskiem, które podlega estymacji. Ma to następujące konsekwencje
16
• relatywnie mała wartość argumentu K w sposób odpowiedni jest w stanie aproksymować dany obiekt funkcjonalny
• obliczenia stają się szybsze oraz łatwiejsze
• istotne informacje zawarte w danych nie zostaną utracone podczas wygładzania
Zgodnie z przytoczoną teorią, oczywistym jest, że nie istnieje baza uniwersalna oraz jej
wybór jest istotny podczas badania określonych danych oraz w ich dalszej obróbce.
3.1.1
Baza Fouriera
Jednym z najważniejszych systemów bazowych w kontekście analizy danych funkcjonalnych jest system bazowy Fouriera, związany z szeregiem Fouriera
f (x) ∼
= a0 +
∞
X
(an cos(nx) + bn sin(nx)) ,
(3.3)
n=1
gdzie
a0 =
1
2π
an =
1
π
bn =
1
π
Rπ
f (x)dx,
−π
Rπ
f (x)cos(nx)dx, n = (1, 2, 3, ...),
−π
Rπ
f (x)sin(nx)dx, n = (1, 2, 3, ...).
−π
Baza Fouriera zdefiniowana jest następująco



φ0 (t)
= 1,
φ2r−1 (t) = sin(rωt),



φ2r = cos(rωt),
(3.4)
parametr ω = 2Π
definiuje okres P . T oznacza horyzont czasowy, na którym rozwaP
żamy daną bazę Fouriera. Jeśli wartości tj - obserwacje, są równomiernie rozmieszone
na przedziale czasowym T oraz okres jest równy długości przedziału T , wtedy baza jest
ortogonalna.
Baza Fouriera jest niewątpliwie jedną z najbardziej rozpowszechnionych i używanych
w statystyce, naukach technicznych oraz w matematyce stosowanej. Jest szczególnie użyteczna przy modelowaniu danych periodycznych takich jak cykle pogodowe, danych technicznych pochodzących z odczytów urządzeń. Idealnie nadaję się do obróbki danych, które
są równomiernie rozmieszone w czasie. Jest niewskazana dla estymacji funkcji posiadających nieciągłości. Wskazane jest by funkcja, która podlega estymacji była gładka oraz
nie posiadała lokalnych silnych cech zmienności. W zdecydowanej większości przypadków stosuje się bazę ortogonalną. Przykładowe bazy Fouriera dla wybranych parametrów
prezentuje grafika złączona poniżej wraz z kodem środowiska R:
17
# instalacja pakietu fda
install.packages("fda", dependencies =TRUE)
library(fda)
# wygenerowanie baz Fouriera
bazafouriera <-create.fourier.basis(c(0,30), nbasis=5)
bazafouriera2 <-create.fourier.basis(c(0,360), nbasis=7)
plot(bazafouriera)
plot(bazafouriera2)
0.0
-0.2
-0.1
Wartość
0.1
0.2
Baza Fouriera
0
5
10
15
20
25
30
T
Rysunek 3.1: baza Fouriera o okresie T=30, złożona z 5 funkcji, okres podstawowy równy jest długości przedziału T
0.00
-0.05
Wartość
0.05
Baza Fouriera
0
50
100
150
200
250
300
350
T
Rysunek 3.2: baza Fouriera o okresie T=360, złożona z 7 funkcji, okres podstawowy równy jest długości przedziału T
18
Poniżej znajdują się przykłady prezentujące wygładzanie danych w przykładowych bazach Fouriera. Sposób doboru współczynników reprezentacji znajduję się w podrozdziale
3.2.1.
Przykład utworzony przy użyciu danych z podrozdziału 2.3.1 - danych CanadianWeather za pomocą 51 baz Fouriera prezentuje się następująco
{xi (t), i = 1, . . . , 35, t ∈ [0, 365]}
(3.5)
0
-10
-30
-20
Wartość - stopnie celsjusza
10
20
CanadianWeather
0
100
200
300
Dni
Rysunek 3.3: Przykład wygładzania - dane CanadianWeather
Kolejny przykład prezentuje wygładzenie danych o nazwie gait wbudowanych w pakiet
fda za pomocą 19 funkcji bazowych. Dane te określają kąt odchylenia stawu kolanowego
podczas szybkiego ruchu mierzonego dla 39 osób 20 - krotnie na odcinku 0.025 - 0.975
sekundy. Pomiary odbywały się w równomiernie rozmieszczonych punktach.
{xi (t), i = 1, . . . , 39, t ∈ [0.025, 0.975]}
(3.6)
40
20
0
Wartość
60
80
Knee Angle
0
5
10
15
Czas
Rysunek 3.4: Przykład wygładzania - dane gait
19
20
3.1.2
Baza B-spline
Kolejnym ważnym systemem bazowym mającym liczne zastosowania w modelowaniu
danych funkcjonalnych jest system bazowy B-spline, czyli baza złożona funkcji spline funkcji sklejanych. Litera ”B” w nazwie B-spline oznacza basis spline.
Funkcja spline to funkcja S : [a, b] → R spełniająca następujące własności
• przedział [a, b] składa się z K + 1 podprzedziałów [ξi , ξi+1 ] takich, że a = ξ1 < ξ2 <
, ..., < b = ξK+1 ,
• w każdym i-tym podprzedziale S jest pewnym wielomianem Pi : [ξi+1 , ξi ] → R.
Zatem : S(t) = Pi (t), gdzie t ∈ [ξi , ξi+1 ] dla i = 1, ..., K + 1,
• najwyższy rząd wielomianu Pi (t) to rząd funkcji spline (ang.order). Oznaczenie m
• w punktach, w których łączą się wielomiany stanowiące składowe funkcji spline
musi zachodzić różniczkowalność m − 2 - segmenty wielomianowe łączą się ze sobą
w sposób gładki. Punkty te określa się jak węzły (ang.knots) lub punkty dzielące
(ang.brakepoints).
Na podstawie funkcji sklejanych definiuje się system bazowy określony następująco przez
rekurencyjną formułę zwaną algorytmem de Boora






B (x)

 i,1






Bi,k (x)
=
=

1,
ti ≤ x < ti+1
0, w przeciwnym wypadku
x−ti
B
(x)
ti+k−1 −ti i,k−1
+
ti+k −x
B
(x)
ti+k −ti+1 i+1,k−1
gdzie
i = 1, 2 . . . K,- indeks funkcji bazowej,
k - rząd funkcji bazowej - równocześnie rząd całej bazy,
x - zbiór, na którym określa się bazę B-spline,
ti - węzły.
Konstrukcja systemu B-spline opiera się na następującej zależności :
ilość brakepoints = ilość funkcji bazowych - rząd bazy + 2
Bazę B-spline można zastosować praktycznie do każdego typu danych, jest bardzo efektywnych podejściem - już niewielka liczba funkcji bazowych pozwala na osiągnięcie dobrej
aproksymacji danych funkcjonalnych. W praktyce z reguły stosuję się bazę B-spline rzędu
4, czyli B-spline kubiczny o równomiernie rozmieszczonych węzłach w przedziale.
Przykłady systemów bazowych B-spline wraz kodem środowiska R :
20
# instalacja pakietu fda
install.packages("fda", dependencies =TRUE)
library(fda)
# wygenerowanie baz B-spline, norder=rząd, nbasis=liczba funkcji
bazasplajn2 <-create.bspline.basis(c(0,10),norder=2,nbasis=5)
plot(bazasplajn2,,main="Baza B-spline",
xlab="czas",ylab="wartości")
bazasplajn3 <-create.bspline.basis(c(0,10),norder=4,nbasis=12)
plot(bazasplajn3,,main="Baza B-spline",
xlab="czas",ylab="wartości")
0.0
0.2
0.4
Wartości
0.6
0.8
1.0
Baza B-spline
0
2
4
6
8
10
Czas
Rysunek 3.5: baza B-spline złożona z 5 funkcji - rząd 2
0.0
0.2
0.4
Wartości
0.6
0.8
1.0
Baza B-spline
0
2
4
6
8
Czas
Rysunek 3.6: baza B-spline złożona z 12 funkcji - rząd 4
21
10
Pierwszy przykład wygładzania przy użyciu funkcji B-spline to konwersja 20 pomiarów
siły uszczypnięcia dokonanych na odcinku 0-0.3 sekundy co 2 milisekundy, czyli każda z
20 wygładzonych krzywych przed konwersją stanowiła 151 dyskretnych punktów. Do
wygładzania użyto 65 funkcji B-spline rzędu 4. Dane te są wbudowane w pakiet fda pod
nazwą pinch. Po wygładzeniu otrzymano
{xi (t), i = 1, . . . , 20, t ∈ [0, 0.3] = T } ,
(3.7)
Wartość
0
2
4
6
8
10
Siła uszczypnięcia
0.00
0.05
0.10
0.15
0.20
0.25
Czas
Rysunek 3.7: Przykład wygładzania - dane pinch
Kolejny przykład to 20 wykresów obserwacji położenia dolnej wargi podczas wymawiania słowa "bob". Dane użyte do wygładzenia to dane lip wbudowane w pakiet fda - 20
obserwacji przeprowadzonych na odcinku czasowym 0-0.34 sekundy co 7 milieskund, czyli
każda krzywa powstała na podstawie 51 punktów pomiarowych. Do wygładzenia użyto
20 kubicznych funkcji B-spline. Po konwersji otrzymano
{xi (t), i = 1, . . . , 20, t ∈ [0, 0.35] = T } ,
0
-5
-10
Wartość
5
10
15
Odchylenie dolnej wargi
0.00
0.05
0.10
0.15
0.20
0.25
0.30
Czas
Rysunek 3.8: Przykład wygładzania - dane lip
22
0.35
(3.8)
3.1.3
Kod programu R - przykłady wygładzania
# instalacja pakietu
install.packages("fda", dependencies =TRUE)
library(fda)
# Wygładzanie danych w bazach Fouriera #
# Utworzenie bazy Fouriera na odcinku c(0,20), o liczbie
# funkcji bazowych nbasis=19
gaitbasis <- create.fourier.basis(c(0,20), nbasis=19)
# Wygładzenie danych gait w systemie bazowych gaitbasis
# w punktach określonych przez wektor gaittime
gaitfd <- smooth.basis(gaittime, gait,
gaitbasis)$fd
# Wykres
plot(gaitfd, ylab="Wartość", xlab="Czas")
# Utworzenie bazy Fouriera na odcinku c(0,365), o liczbie
# funkcji bazowych nbasis=50
canadianbasis <- create.fourier.basis(c(0,365), nbasis=51)
# Wygładzenie danych CanadianWether$dailyAv[,, "Temperature.C"]
# w systemie bazowych canadianbasis
# w punktach określonych przez wektor day.5
canadianfd <- smooth.basis(day.5,
CanadianWeather$dailyAv[,, "Temperature.C"],
canadianbasis)$fd
# Wykres
plot(canadianfd, ylab="Wartość", xlab="Czas")
# Wygładzanie danych w bazach B-spline #
# Wygładzanie analogiczne jak w przypadku baz Fouriera, #
# z tą różnica, iż należy zadeklarować rząd bazy norder #
pinchbasis <- create.bspline.basis(c(0,0.25),
nbasis=65, norder=4)
pinchfd <- smooth.basis(pinchtime, pinch,
pinchbasis)$fd
plot(pinchfd, ylab="wartość", xlab="Czas")
lipbasis <- create.bspline.basis(c(0,0.35),
nbasis=20, norder=4)
lipfd <- smooth.basis(liptime, lip,
lipbasis)$fd
plot(lipfd, ylab="Wartość", xlab="Czas",
main="Odchylenie dolnej wargi")
23
3.1.4
Inne systemy bazowe
Wspomniane wcześniej systemy bazowe stanowią najpopularniejsze podejście do tematyki funkcjonalnej analizy danych w kontekście wygładzania danych. W zasadzie przy
ich użyciu możliwe odpowiednie wygładzenie większości danych. Warto wspomnieć także
o innych, użytecznych bazach, które mogą stanowić alternatywne podejście do tematyki
wygładzania.
Pierwszym interesującym systemem jest baza skonstruowana przy użyciu falek (ang.
wavelets). Oznacza to tworzenie bazy za pomocą rodziny funkcji rzeczywistych o następującej formie
ψjk = 2j/2 ψ(2j t − k)
(3.9)
gdzie
ψ - funkcja matka (ang. mother wavelets), na podstawie której konstruujemy falkę a
zarazem cały system bazowy.
j, k - liczby całkowite określające różne zmiany cech funkcji matki.
Wybór funkcji matki odbywa się w taki sposób, by zapewnić ortogonalność bazy.
Kolejnym użytecznym systemem bazowym jest system skonstruowany w oparciu o
funkcje wykładnicze
eλ1 t , eλ2 t , ..., eλk t , ...
(3.10)
gdzie
λk t - określone parametry ( często zakłada się, że λ1 t = 0)
Następnie - system skonstruowany z funkcji potęgowych, przy użyciu tych samych
parametrów co powyżej
tλ1 , tλ2 , ..., tλk , ...
(3.11)
Istnieje jeszcze wiele systemów bazowych, między innymi systemy złożone z funkcji
schodkowych, funkcji stałych lub jednomianów. Głównym celem konwersji oprócz wygładzania jest także efektywność oraz uzyskanie pożądanych informacji na temat danych,
tak więc dopuszczalne jest tworzenie własnych systemów bazowych.
Przykład bazy złożonej z funkcji eksponencjalnych wraz z kodem programu R
bazaexp <-create.exponential.basis(c(0,1),ratevec=c(0,1,2,3,4))
plot(bazaexp, main="Baza złożona z funkcji eksponencjalnych")
0
10
20
30
40
50
Baza złożona z funkcji eksponencjalnych
0.0
0.2
0.4
0.6
0.8
1.0
Rysunek 3.9: baza funkcji eksponencjalnych okresie T=1, złożona z 5 funkcji, o współczynnikach λ1 , λ2 , λ3 , λ4 , λ5 o wartościach odpowiednio 0, 1, 2, 3, 4
24
3.2
Dopasowanie współczynników oraz parametru K
dla reprezentacji danych w systemie funkcji bazowych
W tym podrozdziale zostanie poruszona kwestia doboru współczynników ck oraz parametru K dla modelu
x(t) ≈
K
X
ck φk (t),
(3.12)
k=1
który jak wcześniej zostało to określone stanowi reprezentację danych dyskretnych jako
ciągłych obiektów.
3.2.1
Metoda najmniejszych kwadratów
Najczęściej stosowaną w praktyce oraz domyślną metodą dopasowania modelu do danych jest metoda najmniejszych kwadratów (prosta). Wspomniana metoda jest także
domyślnych algorytmem wykorzystywanym przez oprogramowanie R. W celu zapoznania
się z tą metodą należy przytoczyć następującą teorię.
Prosta metoda najmniejszych kwadratów dla modelu określonego powyżej polega na
doborze współczynników ck poprzez minimalizację następującego kryterium
SMSSE(y|c) =
n
X
"
j=1
yj −
K
X
#2
ck φk (tj ) ,
(3.13)
k
co w sposób bardziej przejrzysty w notacji macierzowej wygląda następująco
0
SMSSE(y|c) = (y − Φc) (y − Φc) .
(3.14)
Obliczając pochodną powyższego kryterium względem c oraz przyrównując do zera zachodzi
2ΦΦ0 c − 2Φ0 y = 0.
(3.15)
Zatem wartość wektora ĉ, który minimalizuje wartość kryterium najmniejszych kwadratów określa wyrażenie
0 −1 0
ĉ = Φ Φ Φ y
(3.16)
Taki sposób dedukcji jest odpowiedni w sytuacji, gdy rozważamy standardowy model
yj = x(tj ) + j , którego reszty (błędy) j mają ten sam rozkład oraz są niezależne ze
średnią zero oraz stałą wariancją σ 2 . Zatem posiadają następującą macierz wariancjikowariancji
 2
σ

0
 .
 .
 .
0

0 ... 0
σ2 . . . 0 

.. . .
.. 
. .

.
0 . . . σ2
25
3.2.2
Wybór parametru K - ilości funkcji bazowych
Kwestia doboru ilości funkcja bazowych podczas dopasowania wspomnianą metodą
najmniejszych kwadratów jest dość problematyczna i w zasadzie, jej wybór zależy od
aktualnych preferencji osoby analizującej dane. Zbyt mała lub zbyt duża wartość argumentu K może spowodować utratę wielu informacji i wygładzenie danych może okazać
się nieefektywne. Ogólnie zasada przyjęta przez większość autorów stanowi, że dane po
wygładzeniu nie mogą być ani zbyt ”chropowate” ani zbyt ”płaskie”. W celu pomocy przy
weryfikacji tego subiektywnego kryterium można się posłużyć kilko pomocnymi technikami, takimi jak
• Minimalizacja obciążoności danego estymatora
Bias [x̂(t)] = x(t) − E [x̂(t)] .
• Redukcja wariancji :
Var [x̂(t)] = E
hn
x̂(t) − E [x̂(t)]2
oi
.
• Minimalizacja błędu średniokwadratowego (lub jego pierwiastka - RMSE(root mean
square error):
h
i
MSE [x̂(t)] = E {x̂(t) − x(t)}2 = Bias2 [x̂(t)] + Var [x̂(t)] .
Przykład - będą to symulacje zależności liczby funkcji bazowym od pierwiastka błędu
bezwzględnego dla grupy krzywych. Zatem kryterium przyjmuje postać
średni błąd bezwzględny =

x11

 x12
mean 
 .
 ..
x1n



x21 . . . xp1
y11 y21 . . . yp1  
x22 . . . xp2   y12 y22 . . . yp2 




−
..
..   ..
.. . .
. ...
. .. 

.
.   .
.
x2n . . . xpn
y1n y2n . . . ypn gdzie
xpn - p-ta dana funkcjonalna w n-tym momencie czasowym,
ypn - p-ta dana dyskretna (obserwacja) w n-tym momencie czasowym.
Dane funkcjonalne, które posłużyły do symulacji to dane z rozdziału 2.3.1.
0.42
0.36
Błąd
Średni błąd bezwzględny
40
50
60
70
liczba funkcji bazowych
26
80
Przy założeniu że pożądanym jest osiągniecie średniego błędu na poziomie maksymalnie 0.4 dokonuje się wyboru 65 funkcji bazowych, co powoduje powstanie następujących
danych funkcjonalnych
0
-10
-30
-20
Średnia temperatura
10
20
Efekty wygładzania w bazie Fouriera 65 funkcji bazowych
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
czas
Rysunek 3.10
Oczywiście jak nadmieniono wcześniej, wybór zależy od aktualnych potrzeb. Przykładowo - by dostrzec podstawową charakterystykę danych można użyć niewielkiej ilości
funkcji bazowych. Za wizualizację mogą posłużyć powyższe dane wygładzone przy użyciu
jedynie 5 funkcji
0
-10
-20
-30
Średnia temperatura
10
20
Efekty wygładzania w bazie Fouriera 5 funkcji bazowych
Jan
Feb
Mar
Apr
May
Jun
Jul
czas
Rysunek 3.11
27
Aug
Sep
Oct
Nov
Dec
Kod programu R umożliwiający wcześniejszą analizę
# instalacja pakietu
install.packages("fda", dependencies =TRUE)
library(fda)
# wygładzanie dla liczny funkcji bazowych od 41 do 81 #########
# na odcinku c(0,356) oraz tworzenie dla każdego obiektu ######
# macierzy dane2 - wartości krzywych w punktach dyskretnych,###
# macierzy dane3 - wartości obserwacji dyskretnych, ###########
# macierzy wartości błędów
n=41
w=81
for(i in seq(n, w, by=2))
{
bazafouriera <- create.fourier.basis(rangeval=c(0,365),
nbasis=i, period=365)
dane1 <- smooth.basis(day.5,
CanadianWeather$dailyAv[,,"Temperature.C"],
bazafouriera)$fd
dane2 <- as.matrix(eval.fd(day.5,dane1,returnMatrix=TRUE))
dane3 <- as.matrix(CanadianWeather$dailyAv[,,"Temperature.C"])
reszty.kwadrat <- sqrt((dane3 - dane2)^2)
reszty.kwadrat.macierz <- as.matrix(reszty.kwadrat)
sredni.blad.bezwzgledny <- mean(reszty.kwadrat.macierz)
print (sredni.blad.bezwzgledny)
}
# Ręczne tworzenie listy błędów dla kazdej #
# liczby funkcji bazowych, skopiowanej z pętli #
blad <-c( 0.4555543, 0.4445077, 0.4354264,0.4302332,0.4264745,0.4216185,
0.417653,0.4127621,0.4098463,0.4052221,0.4009147,0.393524,0.3896969,
0.3863201,0.3845948,0.3786287,0.3730165,0.3653133,0.3618832,0.3581696,
0.3542155)
#
Wartość błędu dla liczby #
#
funkcji bazowych #
as.vector(blad)
n=41
w=81
matplot( seq(n, w, by=2), as.vector(blad),type="l",
xlab="Liczba funkcji bazowych",
ylab="Wartość",lwd="2",
main="Średni błąd bezwzględny",
col="lightblue4",font=3)
28
Rozdział 4
Podstawowa analiza danych
funkcjonalnych
W tym rozdziale zostaną przedstawione podstawowe statystyki opisowe oraz wygląd
pochodnych dla danych funkcjonalnych wraz z analizą oraz interpretacją przykładów.
Jako dane, które zostaną zaprezentowane w formie przykładów posłużą te zaprezentowane w podrozdziale 3.2.2 - dane funkcjonalne uzyskane w wyniku wygładzania danych
pogodowych CanadianWeather za pomocą 65 funkcji bazowych Fouriera, pochodzące z
pakietu fda. Z uwagi na fakt, że w dalszej części tej sekcji pojawi się pojęcie cross-korelacji,
wymagany jest także drugi zbiór danych funkcjonanych. Będą to dane także pochodzące
z pakietu CanadianWeather określające dzienne średnie opady dla 35 stacji kanadyjskich,
uśrednione dla lat 1960-1994, wygładzone także w bazie Fouriera o liczbie funkcji 65.
Dane, które będą używane w tym rozdziale
Średnie dzienne temperatury: {xi (t), i = 1, . . . , 35, t ∈ [0, 365] = T } ,
0
-10
-20
-30
Wartość średniej temperatury
10
20
Średnia temperatura
0
100
200
300
Czas
Rysunek 4.1: Dane pogodowe - średnia dzienna temperatura
29
(4.1)
Średnie dzienne opady: {yi (t), i = 1, . . . , 35, t ∈ [0, 365] = T } ,
(4.2)
10
8
6
4
0
2
Wartość średnich opadów
12
14
Średnie opady [mm]
0
100
200
300
Czas
Rysunek 4.2: Dane pogodowe - średnie dzienne opady
4.1
Średnia funkcjonalna
Średnia funkcjonalna
x(t) = N
−1
N
X
xi (t),
(4.3)
i=1
gdzie
N - liczebność próbki,
i - indeks odnoszący się do danej funkcjonalnej.
Przykład
5
0
-5
-15
-10
Wartość średniej temperatury
10
15
Średnia funkcjonalna
0
100
200
300
Czas
Rysunek 4.3: Średnia funkcjonalna dla danych pogodowych - temperatura
30
4.2
Wariancja funkcjonalna
Wariancja funkcjonalna
varX (t) = (N − 1)−1
N
X
[xi (t) − x(t)]2 .
(4.4)
i=1
Przykład
60
40
20
Wariancja - temperatura
80
100
Wariancja funkcjonalna
0
100
200
300
Czas
Rysunek 4.4: Wariancja funkcjonalna dla danych pogodowych - temperatura
4.3
Odchylenie standardowe dla danych funkcjonalnych
Odchylenie standardowe
σX (t) =
q
varX (t) =
v
u
u
t(N
− 1)−1
N
X
[xi (t) − x(t)]2 .
i=1
Przykład
9
8
7
6
5
4
Odchylenie standardowe - temperatura
10
Odchylenie standardowe dla danych funkcjonalnych
0
100
200
300
Czas
Rysunek 4.5: Odchylenie standardowe dla danych pogodowych - temperatura
31
(4.5)
4.4
Kowariancja oraz korelacja funkcjonalna
Kowariancja funkcjonalna
N
X
−1
covX (t1 , t2 ) = (N − 1)
[xi (t1 ) − x(t1 )] [xi (t2 ) − x(t2 )] ,
(4.6)
i=1
gdzie
t1 , t2 ∈ T × T.
Korelacja funkcjonalna
corrX (t1 , t2 ) = q
covX (t1 , t2 )
,
(4.7)
varX (t1 )varX (t2 )
gdzie
t1 , t2 ∈ T × T.
Przykład - wykres perspektywiczny korelacji
0.9
la
Kore
0.8
ra
cja
0.7
rat
u
ra
0.6
0.5
Te
m
pe
pe
rat
u
Te
m
Rysunek 4.6: Korelacja dla danych pogodowych - temperatury
Analizując wykres można dojść do następujących wniosków - dla argumentów t1 , t2
o zbliżonych wartościach korelacja jest wysoka, natomiast dla argumentów t1 , t2 bardziej
oddalonych od siebie korelacja maleje wraz ze wzrostem odległości między argumentami.
Intuicyjnie można stwierdzić, że temperatura między miesiącami letnimi a zimowymi
nie ma ze sobą większego związku, natomiast między poszczególnymi dniami wykazuje
znaczną korelacje.
Korelacje także można przedstawić za pomocą wykresów konturowych, dwuwymiarowych.
32
Przykład - wykres konturowy korelacji
Korelacja
0
100
200
Temperatura
300
1.00
0.95
0.90
0.85
0.80
0.75
0.70
0.65
0.60
0.55
0.50
0.45
0.40
0.35
0
100
200
300
Temperatura
Rysunek 4.7: Korelacja dla danych pogodowych - temperatury
Przykład - wykres konturowy korelacji ( wypełniony )
Korelacja - tempertura
1.0
Tempertura
350
300
0.9
250
0.8
200
0.7
150
0.6
100
0.5
50
0.4
0
0
50
100
150
200
250
300
350
Temperatura
Rysunek 4.8: Korelacja dla danych pogodowych - temperatury
33
4.5
Cross-kowariancja oraz cross-korelacja
Cross-kowariancja
covX,Y (t1 , t2 ) = (N − 1)−1
N
X
[xi (t1 ) − x(t1 )] [yi (t2 ) − y(t2 )] ,
(4.8)
i=1
gdzie
t1 , t2 ∈ T × T.
Cross-korelacja
covX,Y (t1 , t2 )
corrX,Y (t1 , t2 ) = q
varX (t1 )varY (t2 )
(4.9)
gdzie
t1 , t2 ∈ T × T.
Przykład - wykres perspektywiczny
0.8
cja
Korela
0.6
0.4
Te
m
0.2
pe
dy
ra
t
ur
a
O
pa
0.0
Rysunek 4.9: Korelacja dla danych pogodowych - opadów oraz temperatury
W tym przypadku analiza prowadzi do następujących wniosków - dla argumentów t1
odnoszących się do zmian temperatury w czasie oraz dla argumentów t2 określających
zmianę opadów, korelacja jest wysoka dla okresu jesień-zima i niska dla okresu letniowiosennego. Intuicyjnie można : wysoka temperatura zimą, a w szczególności na początku
roku sprzyja występowaniu opadów, natomiast zmiany temperatury latem raczej nie mają
większego wpływu na ilość opadów.
34
Cross-korelacje często prezentuje się na wykresach konturowych, dwuwymiarowych.
Przykład - wykres konturowy
Korelacja miedzy opadami a temperaturą
0.9
300
0.8
0.7
200
0.5
0.4
0.3
0.2
100
Opady
0.6
0.1
0.0
0
-0.1
0
100
200
300
Temperatura
Rysunek 4.10: Korelacja dla danych pogodowych - opadów oraz temperatury
Przykład - wykres konturowy (wypełniony)
Korelacja między opadami a temperaturą
350
0.8
300
0.6
Opady
250
200
0.4
150
0.2
100
50
0.0
0
0
50
100
150
200
250
300
350
Temperatura
Rysunek 4.11: Korelacja dla danych pogodowych - opadów oraz temperatury
35
4.6
Pochodne funkcjonalne
Pochodne funkcjonalne oblicza się w ten sam sposób, co co zwykłe pochodne dla
funkcji. Nazwa odnosi jedynie do faktu, że zostały obliczone dla danych funkcjonalnych.
Mimo swojej prostoty warto wspomnieć o nich z uwagi na to, że poprzez konwersję danych
dyskretnych do danych funkcjonalnych zyskuje się możliwość ich kalkulacji, co dostarcza
wielu informacji na temat danego zjawiska.
Pochodna n-tego rzędu
Dn xi (t)
,
dt
gdzie
xi (t) - i-ta dana funkcjonalna
Przykład pochodnej pierwszego rzędu dla danych CanadianWeather - temperatura
Wartość
-1.0
-0.5
0.0
0.5
1.0
Funkcja pochodnej
0
100
200
300
Dni
Rysunek 4.12
Przykład pochodnej drugiego rzędu dla danych CanadianWeather - temperatura
0.0
-0.2
-0.4
Wartość
0.2
0.4
Funkcja pochodnej rzędu 2
0
100
200
Dni
Rysunek 4.13
36
300
4.7
Kod programu R
Kod programu R umożliwiający analizę zaprezentowaną w tym rozdziale wygląda następująco.
# instalacja pakietów #
install.packages(c("fda","fda.usc","ColorPalette","plot3D"))
library(fda)
library(fda.usc)
library(ColorPalette)
library(plot3D)
# utworzenie bazy do wygładzenia
#
bazafouriera <- create.fourier.basis(rangeval=c(0,365),
nbasis=65, period=365)
# wygładzenie danych opadów oraz temp #
dane1 <- smooth.basis(day.5,
CanadianWeather$dailyAv[,,"Temperature.C"],
bazafouriera)$fd
dane2 <- smooth.basis(day.5,
CanadianWeather$dailyAv[,,"Precipitation.mm"],
bazafouriera)$fd
# funkcja średniej z wykresem #
srednia1 <- mean.fd(dane1)
plot(srednia1,xlab="Czas",ylab="Wartość średniej temperatury [C]",
main="Średnia dla danych wygładzonych w bazie Fouriera",
font=3,col="lightblue4",lwd=2)
# funkcja kowariancji z wykresami #
# czas określony przez wektor weeks #
dane10 <-cor.fd(weeks,dane1,weeks)
persp3D(weeks, weeks, dane10, colvar=dane10 ,phi=35, theta=35,
xlab="Temperatura", ylab="Temperatura",zlab="Korelacja",border = "black",
bty = "g")
contour2D(dane10,weeks,weeks, xlab="Temperatura", ylab="Temperatura",
main="Korelacja")
filled.contour(weeks,weeks,dane10,
xlab="Temperatura",ylab="Tempertura",main="Korelacja - tempertura")
37
Dalsza część kodu
# funkcja cross kowariancji z wykresami #
# czas określony przez wektor weeks #
dane5 <-cor.fd(weeks,dane1,weeks,dane2)
persp3D(weeks, weeks, dane5, colvar=dane5 ,phi=25, theta=45,
xlab="Temperatura", ylab="Opady",zlab="Korelacja",border ="black",
bty = "g")
contour2D(dane5,weeks,weeks, xlab="Temperatura", ylab="Opady",
main="Korelacja między opadami a temperaturą")
filled.contour(weeks,weeks,dane5,xlab="Temperatura",
ylab="Opady",main="Korelacja między opadami a temperaturą")
# funkcja wariancji z wykresem #
wariancja <- func.var(dane1)
plot(wariancja, xlab="Czas", ylab="Wariancja - temperatura",
main="Wariancja dla danych wygładzonych w bazie Fouriera",
font=3,col="lightblue4",lwd=2)
# funkcja odchylenia standardowego z wykresem #
dane6 <- std.fd(dane1)
plot(dane6, xlab="Czas",ylab="Odchylenie standardowe - temperatura ",
main="Wykres odchylenia standardowego w bazie Fouriera",
font=3,col="lightblue4",lwd=2)
# pochodne - 1 oraz 2 rząd z wykresami #
plot(deriv.fd(dane1), xlab="Dni",ylab="Wartość",main="Funkcja pochodnej")
plot(deriv.fd(dane1,2), xlab="Dni",ylab="Wartość",
main="Funkcja pochodnej rzędu 2")
38
Rozdział 5
Funkcjonalna analiza głównych
składowych
5.1
Wstęp teoretyczny
Funkcjonalna analiza głównych składowych (ang.functional principal component
analysis - FPCA) podobnie jak w przypadku klasycznej analizy głównych składowych polega na tworzeniu nowych zmiennych mających na celu wyjaśnienie struktur wariancji na
podstawie zbioru wejściowego, który w tym przypadku stanowi N danych funkcjonalnych
X1 , X2 , . . . , XN , pochodzących z przestrzeni H = L2 [0, 1], którą zapisujemy na potrzeby
tego działu prościej - L2 . Na początek należy przytoczyć teorię związaną z L2 -elementami
losowymi oraz operatorami w przestrzeni L2 .
Niech (Ω, F, P) będzie przestrzenią probabilistyczną, wówczas definiuje się
Definicja 5.1. Niech B będzie przestrzenią Banacha, wówczas σ-ciałem zbiorów borelowskich na B nazywamy σ-ciało B(B) generowane przez rodzinę zbiorów otwartych
w normie przestrzeni B.
Definicja 5.2. Niech (Ω, F, P) będzie przestrzenią probabilistyczną, natomiast B przestrzenią Banach. Wówczas odwzorowanie
X:Ω→B
określa się jako B-element losowy, jeśli powyższe odwzorowanie jest mierzalne czyli dla
każdego zbioru borelowskiego B ∈ B(B) przeciwobraz X −1 (B) ∈ F.
Zgodnie z powyższymi definicjami, można uściślić definicję danych funkcjonalnych
Definicja 5.3. Niech X : Ω → B będzie B-elementem losowym, wtedy X określa się jako
zmienną funkcjonalną a jej realizację x daną funkcjnonalną.
Dla przestrzeni Hilbert elementy losowe definiuje się następująco
Twierdzenie 5.1. Niech (Ω, F, P) będzie przestrzenią probabilistyczną oraz H ośrodkową
przestrzenią Hilberta. Wówczas odwzorowanie
X:Ω→H
39
jest H-elementem losowym wtedy i tylko wtedy, gdy dla każdego f ∈ H odwzorowanie
Ω 3 ω → hf, X(ω)i ∈ R
jest mierzalne.
Związek między mierzalnym procesem a L2 -elementem losowym określa poniższa definicja
Definicja 5.4. Niech {Xt }t∈T będzie procesem stochastycznym mierzalnym. Odwzorowanie
Ω 3 ω → X(ω) ∈ L2
jest L2 -elementem losowym, jeśli funkcja X(ω) jest całkowalna z kwadratem dla każdego
ω ∈ Ω ( względem miary Lebesgue’a )
Bardzo ważną funkcją określoną dla L2 elementu losowego jest funkcja wartości średniej określona następująco definicją
Definicja 5.5. Funkcją wartości średniej całkowalnego L2 -elementu losowego X nazywamy taki element µ ∈ L2 , który dla dowolnego x ∈ L2 spełnia
hx, µi = E hx, Xi
Oznaczenie EX := µ. Całkowalność oznacza, iż element spełnia
E kXk = E
Z h
i1
X 2 (t)dt
2
< ∞.
FPCA opiera się na wykorzystaniu operatorów Hilberta-Schmidta, które definiuje
się następująco
Definicja 5.6. Operatorami Hilberta-Schmidta nazywamy operatory spełniające
• są określone w przestrzeni L - przestrzeni operatorów ograniczonych na H z normą
kψkL = sup {kψ(x)k : kxk ≤ 1} ,
• są zwarte, czyli istnieją dwie ortonormalne bazy {υj } i {fj } oraz ciąg {λj } ∈ R
zbiegający do zera taki, że
ψ(x) =
∞
X
λj hx, υj i fj , x ∈ H,
j=1
• spełniają warunek
P∞
j=1
λ2j < ∞.
Funkcje własne oraz wartości własne operatora określone są poprzez następującą definicję
Definicja 5.7. Niech ψ(x) będzie symetrycznym oraz dodatnio określonym operatorem
Hilberta-Schmidta spełniającym następującą dekompozycje
ψ(x) =
∞
X
λj hx, υj i υj , x ∈ H,
j=1
wtedy, gdy υj są ortonarmalne, określa się je jako funkcje własne operatora.
Równoważnie :
ψ(υj ) = λj υj ,
gdzie :
λj - wartość własna.
40
Cała idea FPCA opiera się na estymacji elementów własnych operatora kowariancji
spełniającego poniższą definicję
Definicja 5.8. Niech X będzie L2 elementem losowym, który jest całkowalny z kwadratem. Operatorem kowariancji nazywamy symetryczny oraz dodatnio określony operator
Hilberta-Schmidta zdefiniowany następująco
C(x) = E [h(X − µ, x)i (X − µ)] , x ∈ L2 ,
gdzie
C(x)(t) =
Z
c(t, s)x(s)ds,
gdzie
c(t, s) - funkcja kowariancji,
µ - funkcja wartości średniej.
Z powyższej definicji wynika, że operator kowariancji jest operatorem całkowym z
jądrem całkowym określonym przez funkcję kowariancji. Dla L2 elementów losowych
funkcję kowariancji definiuje się następująco
Definicja 5.9. Niech X1 , X2 , . . . , XN będą L2 -elementami losowymi o tym samym rozkładzie co X. Funkcję kowariancji określamy następująco
c(t, s) = E [(X(t) − µ(t)) (X(s) − µ(s))] .
Estymatory dla wcześniej zdefiniowanych struktur wyglądają następująco
Definicja 5.10. Niech X1 , X2 , . . . , XN będą L2 -elementami losowymi o tym samym rozkładzie co X. Wówczas
• estymator operatora kowariancji wygląda następująco
Ĉ(x) = N −1
N
X
hXi − µ̂, xi (Xi − µ̂) , x ∈ L2 ,
i=1
gdzie
ˆ = N −1 PN Xi (t) - estymator funkcji wartości średniej.
µ(t)
i=1
• estymator funkcji kowariancji wygląda następująco
ĉ(t, s) = ĉ(t, s) = N
−1
N
X
(Xi (t) − µ̂(t)) (Xi (s) − µ̂(s)) .
i=1
Biorąc pod uwagę powyższe informacje, estymowanie elementów własnych na potrzeby
FPCA odbywa się za pomocą równania :
Ĉ(υˆj )(t) =
Z
ĉ(t, s)υjˆ(s)ds = λˆj υˆj (t), j = 1, 2, . . . , N.
Ostatecznie i-tą funkcje własną operatora kowariancji nazywamy i-tą składową
funkcjonalną.
Udział p-pierwszych funkcjonalnych składowych głównych w określeniu struktur zmienności określa następujący wskaźnik
ˆ
k=1 λk
.
CP V (p) = PN
ˆk
λ
k=1
Pp
Zalecane jest by wskaźnik ten osiągał wartość nie mniejszą niż 85 procent.
41
Bardzo ważnym z punktu widzenia analitycznego jest następujący produkt skalarny
Definicja 5.11. Niech υj będzie j-tą funkcjonalną składową główną, wtedy produkt
hxi − µ̂, υˆj i =
Z ˆ υjˆ(t)dt,
xi (t) − µ(t)
określa się jako jako j-ty score, czyli miara wkładu j-tej składowej głównej w wyjaśnianiu
wariancji i-tej krzywej.
Funkcja własna oraz wartość własna czasami określane są jako harmoniczna (ang. harmonic) oraz wartość (ang. value) odpowiednio. Warto zauważyć także, że FPCA określa
się dla danych wycentrowanych, co ma istotne znaczenie podczas rozważań praktycznych,
ponieważ znacząco ułatwia późniejszą analizę wyników.
5.2
Podejście analityczne - przykłady oraz analiza
W tej sekcji zostanie przedstawiony przykład wraz z interpretacją odnoszący się do do
przytoczonej teorii. Jako dane, które poddane będą analizie, posłużą dane z rozdziału 4
- uśrednione dzienne odczyty wartości temperatur dla 35 kanadyjskich stacji meteorologicznych w latach 1960-1994. Dane te zostały wygładzone w bazie Fouriera - 65 funkcji
bazowych. Wyniki uzyskane za pomocą programu R prezentują się następująco
0.00
-0.10
-0.05
Wartości
0.05
0.10
Składowe główne funkcjonalne
0
100
200
300
Czas
Rysunek 5.1: Składowe główne - harmoniczne, obliczone dla danych wycentrowanych
Składowe główne domyślnie obliczane są dla danych wycentrowanych, czyli danych
powstałych po odjęciu funkcji średniej od każdej danej funkcjonalnej. Składowe główne
wyjaśniają odpowiednio następujący procent zmienności danych :
42
Rysunek 5.2: Wektor prezentujący procent wyjaśniania wariancji danych funkcjonalnych- konsola programu R
Przydatność powyższego wykresu prezentującego harmoniczne jest z punktu widzenia
praktycznego wątpliwa, tak więc podczas analizy stosuje się następująco formę prezentacji wyników przedstawioną na wykresie poniżej - funkcje wartości średniej (linia ciągła)
dla danych wejściowych zamieszcza się wraz z krzywymi (linie przerywane) będącymi
wynikiem odejmowania oraz dodawania poszczególnych harmonicznych od średniej. Na
górze wykresu widoczny jest procentowy udział w wyjaśnianiu wariancji dla każdej z 4
pierwszych składowych głównych.
PCA function 2 (Percentage of variability 8.5 )
10
-10
0
Harmonic 2
0
-10
-20
Harmonic 1
10
20
20
PCA function 1 (Percentage of variability 88.4 )
0
100
200
300
0
200
300
PCA function 3 (Percentage of variability 2 )
PCA function 4 (Percentage of variability 0.5 )
5
0
Harmonic 4
5
0
-15
-5
-5
10
10
argvals
-15
Harmonic 3
100
argvals
0
100
200
300
0
argvals
100
200
300
argvals
Interpretacja :
• Pierwsza oraz druga składowa główna, dostarczają informacji o 96,9 procent wariancji
• Trzecia oraz czwarta składowa zawierają niewielki procent informacji
• Pierwsza składowa główna może być zinterpretowana jako ogólny wskaźnik średniej
temperatury
• Druga składowa główna może być zinterpretowana jako wskaźnik zmienności temperatury między okresem letnim i zimowym
• Trzecia składowa główna możne być potraktowana jako wskaźnik temperatury w
okresie wiosenno zimowym
43
100
Kolejnym istotnym etapem podczas analizy FPCA jest zbadanie j-tych score dla poszczególnych zmiennych, czyli analiza następującego wykresu prezentująca wartość zmiennych (stacji) osiąganych na pierwszym i drugim score.
Resolute
Pr. Rupert
Iqaluit
50
St. Johns
Drugi score
Yarmouth
Sydney
Scheffervll
Churchill
Vancouver
Halifax
Pr. George
Charlottvl
Calgary
Whitehorse
Inuvik
0
Victoria
Fredericton
Sherbrooke
Toronto
Edmonton
London
Thunder
Bay
Kamloops
Quebec
Bagottville
Arvida
Montreal
Ottawa
-50
Yellowknife
Pas
AlbertRegina
Uranium City ThePr.
Winnipeg
Dawson
-300
-200
-100
0
100
200
Pierwszy score
Interpretacja :
• W prawej górnej części wykresu znajdują się stacje morskie - klimat nad morzem
sprzyja wysokiej średniej temperaturze ( wysoki score 1 ) oraz niskim wariancją
letnio-zimowym ( niski score 2 )
• Poniżej znajdują się stacje znajdujące się dalej od morza - klimat lądowy sprzyja
niższej średniej ( niższa wartość score 1)
• W lewej dolnej części wykresu znajdują się stacje leżace w głębi lądu - średnia staje
się coraz niższa ( niski score 1), natomiast wariancje letnio-zimowe są relatywnie
wysokie ( wyższy score 2 )
• Arktyczna stacja znajduje się w lewym górnym rogu - bardzo niska średnia temperatura ( niski score 1 ) oraz bardzo duża wariancja ( wysoki score 2 )
• Znak przy wartości pierwszego score jest istotny, natomiast w przypadku drugiego
nie jest istotny, ponieważ został on zinterpretowany jako wskaźnik zmienności
44
5.2.1
Kod programu R - FPCA
# Część I - Wygładzanie danych
# instalacja pakietu
install.packages("fda", dependencies =TRUE)
library(fda)
# utworzenie bazy Fouriera złożonej z 65 funkcji (nbasis)
# na odcinku o długości "rangeval"
# o okresie "period" (domyślnie period = długość rangeval)
bazafouriera <- create.fourier.basis(rangeval=c(0,365), nbasis=65,
period=365)
# utworzenie obiektu funkcjonalnego przy użyciu bazy Fouriera #####
# na podstawie obserwacji CanadianWeather$dailyAv, w punktach #####
# określonych przez wektor day.5 - zawierającego kolejne dni roku #
dane1 <- smooth.basis(day.5,
CanadianWeather$dailyAv[,,"Temperature.C"],
bazafouriera)$fd
# Część II - Funkcjonalna analiza głównych składowych
# FPCA dla dane1, o liczbie składowych głównych nharm=4 #########
FPCA <- pca.fd(dane1, nharm=4)
# Wykresy średniej +/- składowa główna wraz z udziałem w #
# wyjaśnianiu wariancji #
op <- par(mfrow=c(2,2))
plot.pca.fd(FPCA, cex.main=0.9,pointplot=FALSE)
# Wykresy harmonicznych - składowych głównych #
plot(FPCA$harmonics,
main="Składowe główne funkcjonalne",xlab="Czas",ylab="Wartości")
# Wykres - wartość zmiennych na poszczególnych score #
plot(FPCA$scores[,1], FPCA$scores[,2], xlab="Pierwszy score",
ylab="Drugi score")
text(FPCA$scores[,1], FPCA$scores[,2], CanadianWeather$place, col=3)
45
Bibliografia
[1] J.O. Ramsay, B.W. Silverman, Functional Data Analysis. Springer, 2nd Edition, 2005.
[2] Lajos Horváth, Piotr Kokoszka, Inference for Functional Data with Applications. Springer, 2012.
[3] Frédéric Ferraty, Philippe Vieu Nonparametric Functional Data Analysis.
Springer, 2006.
[4] strona internetowa J.O.Ramsay
functionaldata.org.
(Uniwersytet
Montrealski),
https://
[5] Richard A.Johnson, Dean W.Wichern, Applied Multivariate Statistical Analysis. Pearson Education Inc., 2007.
[6] J.O.Ramsay, Giles Hoocker, Spence Graves, Functional Data Analysis with Matlab and R.
[7] Giles Hoocker, Functional Data Analysis A Short Course. 2010.
[8] T. Hsing, R. Eubank, Theoretical Foundations of Functional Data Analysis,
with an Introduction to Linear Operators. Wiley, 2015.
[9] J.O.Ramsay, H.Wickham, S.Graves, G.Hooker, https://cran.r-project.
org/web/packages/fda/fda.pdf. 2015.
[10] D. Bosq, Linear Processes in Function Spaces. Springer, 2000.
[11] Ngoc Mai Tran, AN INTRODUCTION TO THEORETICAL PROPERTIES
OF FUNCTIONAL PRINCIPAL COMPONENT ANALYSIS. Department of
Mathematics and Statistics, The University of Melbourne, 2008.
[12] M.F.Bande, M.Oviedo de la Fuente, P.Galeano, A.Nieto, E.Garcia-Portugues,
https://cran.r-project.org/web/packages/fda.usc/fda.usc.pdf. 2015.
[13] Anna Wieżel, Statystyczna analiza danych funkcjonalnych. Funkcjonalny model
liniowy. 2016.
[14] Michal Benko, Functional Principal Components Analysis, Implementation
and Applications. 2004.
[15] J. Jakubowski, R. Sztencel, Wstęp do teorii prawdopodobieństwa. Warszawa
2010.
46
Download