POMOCNIK
Zun-Zun
ANALIZA REGRESJI KRZYWYCH I POWIERZCHNI
ON-LINE
Przekład:
Robert Wiśniewski
Informacje ogólne o ZunZun
Strona ta pozwala na przeprowadzanie on-line analizy regresji w celu dopasowania krzywych i powierzchni dla danych dwuwymiarowych 2D i trójwymiarowych 3D wraz z bogatym zestawem histogramów błędów, wykresów błędów, wykresów krzywych, wykresów powierzchni, wykresów konturowych, VRML oraz kodów źródłowych.
Autor tej strony James Phillips, zaczął zajmować się analizą regresji krzywych i powierzchni podczas swej pracy badawczo-naukowej prowadzonej około 15 lat temu. Dotyczyła ona głównie krzywej transmisji promieniowania-X na podstawie zestawów danych pomiarów dla płytek ze stali i aluminium o różnej grubości. Zajmował się również fluorescencją promieniowania-X powłok cynku na stali. Komputerowe programy obliczeniowe służące do tego celu były w owym czasie zbyt drogie do powszechnego stosowania. Z uwagi na to, że uczył się on programowania, zaczął pisać własny program analizy regresji, najpierw języku C, a potem C++. Opuścił Tokio w Japonii na początku roku 2000 i powrócił do Birmingham w stanie Alabama w USA i zajął się programowaniem w języku Python.
Regresja liniowa i nieliniowa
Regresja liniowa jest stosowana do równań, które są liniowe względem współczynników (stałych).
Poniżej przytoczono kilka przykładów:
y = mx + b
y = aX^0 + bX^1 + cX^2 + dX^3
z = a + bX + cY + dXY
Równania te można zapisać w ogólnej formie następująco:
wynik = stała_1 * funkcja_1 + stała_2 * funkcja_2 + stała_3 * funkcja_3 + ...
gdzie funkcja_1 może mieć postać x^2, funkcja_2 może mieć postać sin(x), itd., itd.
Poniżej pokazano przykład funkcji, która NIE jest liniowa względem współczynników:
y = exp(a*x)
dla której chcemy znaleźć współczynnik a.
Format tego równania nie może być stosowany w regresji liniowej, ponieważ nie ma on wspomnianej wyżej wymaganej postaci ogólnej.
Z tego powodu ważną rolę odgrywa regresja nieliniowa. Poniżej podano jej podstawowe idee:
Należy przyjąć warunki początkowe (pierwsze przybliżenia) wartości współczynnika a.
Korzystając z zestawu danych, obliczyć sumę kwadratów błędów (SSQ).
Próbować zmieniać wartość współczynnika a w taki sposób, aby zmniejszyć wartość SSQ obliczoną wyżej w kroku 2 (korzystając czasem do tego celu pochodnej).
Powtarzać kroki od 1 do 3, aż wartość SSQ stanie się możliwie jak najniższa.
Podkreśla się, że krok 4 oznacza powtarzana iterację, a więc regresja nieliniowa nosi czesto nazwę metody iteracyjnej co oznacza, że jest ona obliczeniowo kosztowniejsza od regresji liniowej, a duze zestawy danych wymagają długiego czasu obliczeń.
Wielokrotna regresja liniowa
Załóżmy, że mamy dwuwymiarowe dane 2D XY i chcemy dopasować do nich linię prostą. Typowe równanie tej linii ma poniższą postać:
y = mx + b
co typowo zapisuje się w postaci wielomianowej:
y = ax^0 + bx^1
Równanie kwadratowe ma wówczas postać:
y = ax^0 + bx^1 + cx^2
a równanie trzeciego stopnia przybiera formę:
y = ax^0 + bx^1 + cx^2 + dx^3 , itd.
Linie proste już znamy. Przejdźmy więc dalej. W przypadku wielokrotnej regresji liniowej, kluczową ideą jest sformatowanie danych dla regresji.
Załóżmy, że chcemy dopasować dane 2D X oraz Y do poniższego równania:
y = ax^3 + bsin(x)
Formatujemy nasze dane jako kolumnę wyrażeń:
x^3 sin(x)
i ponownie przeprowadzamy regresję względem Y.
Teraz mamy regresję n-wymiarową. Zacznijmy najpierw od proste regresji 3D XYZ. Zaczynamy od równania:
z = ax + by
i formatujemy dane jako kolumnę wyrażeń:
X Y
po czym ponownie przeprowadzamy regresję względem Z. I to wszystko.
Dla bardziej złożonego problemu 3D np.:
Z = a + bcos(X*Y) + cexp(X/Y)
Formatujemy dane jako kolumnę wyrażeń:
1 cos(X*Y) exp(X/Y)
po czym ponownie przeprowadzamy regresję względem Z.
Błąd względny i bezwzględny
Zacznijmy od błędu bezwzględnego, ponieważ jest on prostszy.
Błąd bezwzględny = Wartość przewidywana - Wartość aktualna
Tak więc gdy wynik przewidywania naszej krzywej wynosi 11.0m, a wartość aktualna wynosi 10.0, wówczas:
Błąd bezwzględny = Wartość przewidywana - Wartość aktualna = 11.0 - 10.0 = 1.0
Tak więc w tym przypadku błąd bezwzględny wynosi 1.0.
Błąd względny ma postać:
Błąd względny = Błąd bezwzględny / Wartość aktualna
Tak więc korzystając z powyższego przykładu, mamy:
Błąd względny = Błąd bezwzględny / Wartość aktualna = 1.0 / 10.0 = 0.1
Po pomnożeniu przez 100 uzyskujemy błąd procentowy:
Błąd procentowy - Błąd względny * 100 = 0.1 * 100 = 10 %
W tym przykładzie krzywa dopasowana odbiega o 10 procent.
Najczęściej zadawane pytania i odpowiedzi
Dlaczego nie wszystkie moje punkty danych leżą dokładnie na linii regresji ?
Jest rzeczą normalna, że dane zawierają pewne błędy eksperymentalne lub pomiarowe. Jest raczej rzadkie aby wszystkie punkty leżały dokładnie na krzywej regresji, chyba że zadaniem jest praca z idealnym danymi. Gdy liczba współczynników jest równa liczbie punktów danych, zwykle uzyskuje się dokładne dopasowanie. Istnieje nieskończona liczba równań, które pozwalają na idealne dopasowanie do danych, a więc zawsze należy wypróbować równanie, które ma sens fizyczny w odniesieniu do rozpatrywanego problemu. Z uwagi na to, że model problemu nad którym pracujemy jest często nieznany, wiele osób korzysta z funkcji wyszukiwania w celu wypróbowania i znalezienia najprostszego i najbardziej przydatnego równania dopasowanego do danych.
Gdzie mogę znaleźć formuły tangensa hiperbolicznego Tanh() ?
Opcja Polyfunctional wybiera losowe równanie, dobrze dopasowane do danych, które są liniową kombinacją takich funkcji jak kwadratowa, pierwiastkowa, sinusoidalna, itp. - w tym przypadku tanh(x). W kategorii Function Finder wybrać opcję Equation Family Inclusion i usunąć zaznaczenie Polyfunctional oraz Polynomials, co wyświetli tylko nazwane równania.
Jak sprawdzić matematycznie czy wyniki analizy regresji są optymalne ?
Niektóre równania rozwiązywane są za pomocą standardowej analizy regresji a nie metodą iteracyjną. Inne równania wymagają stosowania metod iteracyjnych. Dla równań nieliniowych, rozwiązywanych iteracyjnie, James Phillips skorzystał z genetycznego algorytmu o nazwie Differential Evolution (http://www.icsi.berkeley.edu/~storn/code.html) w celu wyszukiwania warunków początkowych współczynników. Następnie korzystał z metod iteracyjnych do poprawy tych wartości, aż dalsza iteracja nie będzie wnosiła poprawiała wyników. Nie wymaga to specjalnego obciążania CPU ani długiego czasu obliczeń.
Jakie są opcje formatowania wykresu ?
Fitting Targets - Docelowa metoda analizy regresji
Data Labels - Etykiety danych
Scale - Skala wykresu
Size - Rozmiar (rozdzielczość) wykresu
Color - Kolor wykresu
Scientific Notation - Notacja naukowa danych na wykresie
Opcje te opisane są dalej.
Nowości Zun-Zun
(Przytoczono tylko zmiany wprowadzone w czterech ostatnich miesiącach roku 2009)
Czerwiec 2009 - Poprawiono ostatnie kody błędów obliczeń sieciowych dla statystyk opisowych. Usunięto problem notacji naukowej, który czasem powodował błędy niektórych wykresów. Utworzono grupę Google dla dyskusji użytkowników. Zmniejszono zasoby ładowania sieci, co pozwala na sprawniejsze ładowanie strony.
Maj 2009 - Poprawiono problem , w którym wyszukiwarka funkcji Function Finder sprawdzała zestaw danych zawierających wiele wartości Hall of Fame. Zaktualizowano wszystkie wykresy 2D oraz wykresy i diagramu Matplotlib. Uaktualniono genetyczny algorytm parametrów dla rodziny równań Steinhart-Hart.
Kwiecień 2009 - Strona internetowa Zun-Zun jest teraz ładowana jeszcze szybciej. Dodano inżynieryjne równania 2D Steinhart-Hart oraz Inverted SteinHart-Hart. Zaktualizowano sieciowy system operacyjny do wersji Ubuntu 9.04 w sposób automatyczny, a nie tylko dla jednego problemu. Dodano równania New Zealand Ecology Logistic 1 oraz 2. Zmieniono nazwy wielu równań z Inverse na Reciprocal.
Marzec 2009 - Dodano zasilanie Twitter do strony http://twitter.com/ZunZunTweets. Poprawiono rzadkie błędy sieciowe na skutek utraty pamięci.
Trzy kroki w procesie analizy regresji Zun-Zun
Po otworzeniu strony internetowej http://zunzun.com/ ukazuje się poniższe okno:
|
|
ZunZun.com Online Curve Fitting |
|
|
2D Equations ( y = f(x) ) |
|
3D Equations ( z = f(x,y) ) |
|
Characterize Data |
|
Site Related |
|
|
|
|
|
|
|
Welcome to ZunZun.com
Here you can curve fit and surface fit your 2D and 3D data online with a rich set of error
histograms, error plots, curve plots, surface plots, contour plots, VRML, and source code.
If you're looking for quality curve fitting and surface fitting, this is the site for you!
To begin, select an equation family from the 2D and 3D drop-down menus above or
try the "Function Finders" to help determine the best curve fit for your data.
|
|
|||
Powered by |
|
Written in |
|
Using the |
|
||
Plotted by |
|
ZunZun.com's Google |
Analizę przeprowadzamy w trzech poniższych krokach:
Krok 1 - Wybranie równania regresji
Krok 2 - Wprowadzanie danych
Krok 3 - Formatowanie wyników
Krok 1 - Wybranie równania regresji
Wybrać wymaganą rodzinę równań z rozwijalnego menu 2D Equations lub 3D Equations. Są one podzielone wg kategorii. Gdy nie rozpoznajemy kategorii, można wybrać wszystkie równania dwuwymiarowe All 2D Equations.
Gdy wybierzemy kategorię (np. logarytmiczne), pojawi się lista formuł wg nazw i równań:
Gdy wybierzemy wszystkie równania dwuwymiarowe All 2D Equations zobaczymy:
Kliknięcie przycisku List of All 2D Equations wyświetla ekran ze wszystkimi kategoriami, nazwami i formułami, Lista ta jest bardzo obszerna i można ją przewijać w dół.
Po zlokalizowaniu wymaganej formuły, kliknąć jej nazwę.
Krok 2 - Wprowadzanie danych
Po kliknięciu wymaganej formuły. ukaże się strona równania:
Korzystając z rozwijalnego menu Pulldown Menu wybrać opcję edytora tekstowego danych Text Data Editor.
Otworzy się następne okno, w którym zostaniemy zapytani jak mają być odczytywane przecinki w naszych danych. Należy wybrać jedną z dostępnych opcji:
Zmiana przecinków na spacje (1, 2, 3 → 1 2 3)
Skorzystać z przecinka jako separatora dziesiętnego (1,201 → 1.203)
Usunąć przecinki z tekstu (1, 2, 0, 3 → 1203)
Po tabelą przykładowych danych kliknąć przycisk usunięcia całego tekstu Clear All Text.
Wyciąć i wkleić lub wprowadzić dane do wyświetlanej tabeli.
Nie klikać przycisku wysyłania danych Submit obok rozwijalnego menu do chwili zakończenia czynności formatowania wyników opisanych w następnej sekcji.
Krok 3 - Formatowanie wyników
Opcje docelowych metod analizy regresji.
Po zaznaczeniu w rozwijalnym menu opcji Fitting Target, otwiera się kolejne okno, w którym można wybrać opcje docelowych metod analizy regresji:
Metoda najmniejszej sumy kwadratów SSQ błędów bezwzględnych (klasyczna)
Metoda najmniejszej sumy kwadratów SSQ błędów względnych (silna, ale długotrwała).
Metoda najmniejszej sumy błędów bezwzględnych, tzn. ich modułów (silna, ale długotrwała).
Metoda najmniejszej sumy błędów względnych (silna, ale długotrwała).
Metoda najmniejszego piku błędów bezwzględnych (silna, ale długotrwała).
Metoda najmniejszego piku błędów względnych (silna, ale długotrwała).
Metoda najmniejszej wartości piku AIC (silna, ale długotrwała).
Metoda najmniejszej wartości piku BIC (silna, ale długotrwała).
Etykiety danych do wykresu.
Po zaznaczeniu w rozwijalnym menu opcji Data Labels for Graphs, otwiera się kolejne okno, w którym można wprowadzić etykiety danych X i Y, które mają być widoczne na wykresie.
Skala (zakres) wykresu.
Po zaznaczeniu w rozwijalnym menu opcji Graphs Scale, otwiera się kolejne okno, w którym można wybrać skalowanie zakresu wykresu.
Rozmiar (rozdzielczość) wykresu.
Po zaznaczeniu w rozwijalnym menu opcji Graphs Size, otwiera się kolejne okno, w którym można wybrać rozmiar wykresu tworzonego w raporcie. Pliki o mniejszych rozmiarach ładowane są szybko ale mają gorszą rozdzielczość. Duże pliki mają wyższą rozdzielczość ale ładowane są powoli.
Kolory wykresu.
Po zaznaczeniu w rozwijalnym menu opcji Graphs Colors, otwiera się kolejne okno, w którym można wybierać różne opcje kolorów wynikowych wykresów.
Kolor tła wykresu.
Kolor tekstu wykresu.
Kolor linii wykresu.
Notacja naukowa danych na wykresie.
Po zaznaczeniu w rozwijalnym menu opcji Scientific Notation for Graphs, otwiera się kolejne okno pozwalające na wybór notacji naukowej danych na wykresie.
Po skończeniu formatowania wyników można kliknąć przycisk Submit obok rozwijalnego menu aby wysłać dane i ustawienia do analizy i oczekiwać na wyświetlenie wyników analizy regresji.
- 5 -