Linia trendu (regresji) - aproksymacja - Excel => Algorytm

Przybliżanie, metoda najmniejszych kwadratów, wielomiany interpolacyjne i inne.
master_szumi
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 22 kwie 2010, o 19:19
Płeć: Mężczyzna
Lokalizacja: Pelplin
Podziękował: 1 raz

Linia trendu (regresji) - aproksymacja - Excel => Algorytm

Post autor: master_szumi »

Zarówno Excel jaki i Calc (OpenOffice) mają możliwość wyznaczenia linii trendu (linii regresji) na wykresie punktów. Można również wyświetlić wzór takiej krzywej.

Szczególnie interesuje mnie krzywa logarytmiczna.

Jak wyznaczyć taki wzór korzystając z metod numerycznych?
(muszę napisać algorytm wyznaczający wzór krzywej logarytmicznej na podstawie punktów, jest to aproksymacja)
pe2de2
Użytkownik
Użytkownik
Posty: 261
Rejestracja: 7 sty 2007, o 16:10
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 5 razy
Pomógł: 49 razy

Linia trendu (regresji) - aproksymacja - Excel => Algorytm

Post autor: pe2de2 »

proponuję poczytać o czymś takim jak
"Aproksymacja średniokwadratowa"

ogólna idea jest taka że wybierasz sobie jakiś tam wzór ogólny swojej funkcji aproksymującej, tu logarytm. wyznaczasz sobie funkcję błędu średnio kwadratowego i minimalizujesz ją. minimalizujesz czyli szukasz pochodnej równej 0.

błąd średnio kwadratowy to suma kwadratów błędów, tu podpowiedz dla wektora a, a razy a transponowane daje sumę kwadratów składników wektora.
master_szumi
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 22 kwie 2010, o 19:19
Płeć: Mężczyzna
Lokalizacja: Pelplin
Podziękował: 1 raz

Linia trendu (regresji) - aproksymacja - Excel => Algorytm

Post autor: master_szumi »

ogólnie jak to zrobić wiem - ale jak to rozwiązać w postaci algorytmu - jak napisać równania macierzowe
pe2de2
Użytkownik
Użytkownik
Posty: 261
Rejestracja: 7 sty 2007, o 16:10
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 5 razy
Pomógł: 49 razy

Linia trendu (regresji) - aproksymacja - Excel => Algorytm

Post autor: pe2de2 »

choćby tak:

Najpierw musisz zrobić jakieś założenie, jakiego typu krzywą będziesz aproksymować punkty

Powiedzmy, że bedzie to k lg x [k logarytmów dziesiętnych z x]

Oczywiśćie musisz też mieć jakieś punkty dla których aproksymujesz. Dajmy na to

\(\displaystyle{ (x,y)}\)
\(\displaystyle{ (2,4)}\)
\(\displaystyle{ (3,7)}\)
\(\displaystyle{ (4,9)}\)
\(\displaystyle{ (5,10)}\)

punkty zupełnie losowe, więc nie gwarantuję że wyjdzie sensownie

czyli mamy
\(\displaystyle{ \left[\begin{array}{c}lg 2\\lg 3\\lg 4 \\lg 5\end{array}\right] \cdot [ k ] = \left[\begin{array}{c}4\\7\\9 \\10\end{array}\right]}\)

teraz obustronnie z lewej mnożysz przez macierz iks'ów transponowaną, a następnie przez odwrotność iloczynu macierzy iks'ów transponowanej i iks'ów dzięki czemu po lewej zostaje k dla którego fnkcja k lg x będzie miała najmniejszy błąd średniokwadratowy przy tych punktach.
ODPOWIEDZ