Tworzenie funkcji na podstawie danych

Przybliżanie, metoda najmniejszych kwadratów, wielomiany interpolacyjne i inne.
tod33
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 24 lis 2017, o 01:37
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 1 raz

Tworzenie funkcji na podstawie danych

Post autor: tod33 »

Witam mam pewien problem, ponieważ chciałbym odgadnąć funkcję na podstawie zebranych danych. Dane zebrałem z pewnej aplikacji i oto one:

1 = 0:00 - 3:10
2 = 3:11 - 5:17
3 = 5:18 - 7:36
4 = 7:37 - 10:06
5 = 10:07 - 12:43
6 = 12:44 - 15:28
7 = 15:29 - 18:19
8 = 18:20 - 21:16
9 = 21:17 - 24:18
10 = 24:19 - 27:25
11 = 27:26 - 30:37
12 = 30:37

Już tłumaczę jak to czytać. Wartości po prawej są to przedziały czasowe mm:ss(minuta, sekunda), które odpowiadają jakiejś liczbie. Błąd pomiarowy to 1sec.

Moje pytanie brzmi: Czy jest możliwość, z tych danych utworzyć jakiś wzór, by np. odgadnąć jaki przedział ma liczba 20(lub początek lub koniec przedziału)?

Jeśli potrzeba dodatkowych danych to proszę mówić i bardzo byłbym wdzięczny za jakąkolwiek pomoc.

PS Nie jestem pewien czy to ten dział, ponieważ nie wiem jaka z tego funkcja wyjdzie, więc dałem to tutaj
Ostatnio zmieniony 24 lis 2017, o 15:04 przez Jan Kraszewski, łącznie zmieniany 1 raz.
Powód: Temat umieszczony w złym dziale.
Awatar użytkownika
lukas1929
Użytkownik
Użytkownik
Posty: 45
Rejestracja: 14 paź 2017, o 12:43
Płeć: Mężczyzna
Lokalizacja: Haugesund
Podziękował: 1 raz
Pomógł: 9 razy

Tworzenie funkcji na podstawie danych

Post autor: lukas1929 »

Moje pytanie brzmi: Czy jest możliwość, z tych danych utworzyć jakiś wzór, by np. odgadnąć jaki przedział ma liczba 20(lub początek lub koniec przedziału)?
Jest możliwość, np. poprzez zastosowanie interpolacji bądź aproksymacji wielomianowej.

.
SlotaWoj
Użytkownik
Użytkownik
Posty: 4207
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

Tworzenie funkcji na podstawie danych

Post autor: SlotaWoj »

Jeżeli liczba takich par \(\displaystyle{ \left(no;timerange\right)}\) będzie zmienna, to regresja liniowa (przykładowe dane układają się prawie liniowo – współczynnik korelacji Pearsona = 0,998917). Oczywiście wówczas czasami będą błędy na granicy przedziałów.
Jeśli te przedziały będą przetwarzane komputerowo (np. W Excelu), to formuły wyszukiwania.
tod33
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 24 lis 2017, o 01:37
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 1 raz

Tworzenie funkcji na podstawie danych

Post autor: tod33 »

A czy byłby ktoś taki miły i napisał tutaj, jak będzie wyglądało takie równanie? Niestety matematyka nie jest moją najmocniejszą stroną
SlotaWoj
Użytkownik
Użytkownik
Posty: 4207
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

Tworzenie funkcji na podstawie danych

Post autor: SlotaWoj »

Mamy \(\displaystyle{ n}\) par danych \(\displaystyle{ (x_i;y_i)\ i=1...n}\) i chcemy dopasować do niej prostą o równaniu \(\displaystyle{ y=ax+b}\) .

Standardowo robi się to

Kod: Zaznacz cały

https://pl.wikipedia.org/wiki/Metoda_najmniejszych_kwadrat%C3%B3w
(minimalizacja sumy kwadratów odchyleń).

Wzory są takie:
  • \(\displaystyle{ \Delta=n\cdot\sum_{i=1}^n x_i^2-\left(\sum_{i=1}^n x_i\right)^2}\)

    \(\displaystyle{ a=\frac{n\cdot\sum\limits_{i=1}^n x_iy_i-\sum\limits_{i=1}^n x_i\cdot\sum\limits_{i=1}^n y_i}{\Delta}}\)
    \(\displaystyle{ b=\frac{\sum\limits_{i=1}^n x_i^2\cdot\sum\limits_{i=1}^n y_i-\sum\limits_{i=1}^n x_i\cdot\sum\limits_{i=1}^n x_iy_i}{\Delta}}\)
O jakości dopasowania prostej do danych świadczy

Kod: Zaznacz cały

https://pl.wikipedia.org/wiki/Wsp%C3%B3%C5%82czynnik_korelacji_Pearsona
równy:

\(\displaystyle{ R=\frac{n\cdot\sum\limits_{i=1}^n x_iy_i-\sum\limits_{i=1}^n x_i\cdot\sum\limits_{i=1}^n y_i}{\sqrt{\left(n\cdot\sum\limits_{i=1}^n x_i^2-\left(\sum\limits_{i=1}^n x_i\right)^2\right)\cdot\left(n\cdot\sum\limits_{i=1}^n y_i^2-\left(\sum\limits_{i=1}^n y_i\right)^2\right)}}.}\)

Powinien jak najbliższy \(\displaystyle{ -1}\) albo \(\displaystyle{ 1}\) (wartości te odpowiadają idealnej korelacja między danymi). Dla \(\displaystyle{ R=0}\) jest zupełny brak korelacji, a dla \(\displaystyle{ -0,5<R<0,5}\) — słaba korelacja.

W Excelu korelacji liniowej pomiędzy danymi można dokonać przy pomocy funkcji REGLINP. Oprócz współczynników \(\displaystyle{ a}\) i \(\displaystyle{ b}\) (wg nazewnictwa helpu Excela: \(\displaystyle{ m}\) i \(\displaystyle{ b}\)) zwraca ona jeszcze inne dodatkowe wyniki, m.in. kwadrat współczynnika korelacji Pearsona (w helpie Excela: \(\displaystyle{ r_2}\)).
Ostatnio zmieniony 25 lis 2017, o 08:38 przez SlotaWoj, łącznie zmieniany 1 raz.
Powód: Podkreślenie i odstępy.
tod33
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 24 lis 2017, o 01:37
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 1 raz

Tworzenie funkcji na podstawie danych

Post autor: tod33 »

SlotaWoj pisze:Mamy \(\displaystyle{ n}\) par danych \(\displaystyle{ (x_i;y_i)\ i=1...n}\) i chcemy dopasować do niej prostą o równaniu \(\displaystyle{ y=ax+b}\) .

Standardowo robi się to

Kod: Zaznacz cały

https://pl.wikipedia.org/wiki/Metoda_najmniejszych_kwadrat%C3%B3w
(minimalizacja sumy kwadratów odchyleń).

Wzory są takie:
  • \(\displaystyle{ \Delta=n\cdot\sum_{i=1}^n x_i^2-\left(\sum_{i=1}^n x_i\right)^2}\)

    \(\displaystyle{ a=\frac{n\cdot\sum\limits_{i=1}^n x_iy_i-\sum\limits_{i=1}^n x_i\cdot\sum\limits_{i=1}^n y_i}{\Delta}}\)
    \(\displaystyle{ b=\frac{\sum\limits_{i=1}^n x_i^2\cdot\sum\limits_{i=1}^n y_i-\sum\limits_{i=1}^n x_i\cdot\sum\limits_{i=1}^n x_iy_i}{\Delta}}\)
O jakości dopasowania prostej do danych świadczy

Kod: Zaznacz cały

https://pl.wikipedia.org/wiki/Wsp%C3%B3%C5%82czynnik_korelacji_Pearsona
równy:

\(\displaystyle{ R=\frac{n\cdot\sum\limits_{i=1}^n x_iy_i-\sum\limits_{i=1}^n x_i\cdot\sum\limits_{i=1}^n y_i}{\sqrt{\left(n\cdot\sum\limits_{i=1}^n x_i^2-\left(\sum\limits_{i=1}^n x_i\right)^2\right)\cdot\left(n\cdot\sum\limits_{i=1}^n y_i^2-\left(\sum\limits_{i=1}^n y_i\right)^2\right)}}.}\)

Powinien jak najbliższy \(\displaystyle{ -1}\) albo \(\displaystyle{ 1}\) (wartości te odpowiadają idealnej korelacja między danymi). Dla \(\displaystyle{ R=0}\) jest zupełny brak korelacji, a dla \(\displaystyle{ -0,5<R<0,5}\) — słaba korelacja.

W Excelu korelacji liniowej pomiędzy danymi można dokonać przy pomocy funkcji REGLINP. Oprócz współczynników \(\displaystyle{ a}\) i \(\displaystyle{ b}\) (wg nazewnictwa helpu Excela: \(\displaystyle{ m}\) i \(\displaystyle{ b}\)) zwraca ona jeszcze inne dodatkowe wyniki, m.in. kwadrat współczynnika korelacji Pearsona ( w helpie Excela: \(\displaystyle{ r_2}\)).
Bardzo ci dziękuję za tłumaczenie Myślałem że to będzie jakaś krótka funkcja liniowa max logarytmiczna, a tu takie coś

No nic, to nie na moją głowę, ale bardzo dzięki za poświęcony czas.
a4karo
Użytkownik
Użytkownik
Posty: 22459
Rejestracja: 15 maja 2011, o 20:55
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 43 razy
Pomógł: 3852 razy

Tworzenie funkcji na podstawie danych

Post autor: a4karo »

tod33 pisze:
SlotaWoj pisze:Mamy \(\displaystyle{ n}\) par danych \(\displaystyle{ (x_i;y_i)\ i=1...n}\) i chcemy dopasować do niej prostą o równaniu \(\displaystyle{ y=ax+b}\) .
Bardzo ci dziękuję za tłumaczenie Myślałem że to będzie jakaś krótka funkcja liniowa max logarytmiczna, a tu takie coś

No nic, to nie na moją głowę, ale bardzo dzięki za poświęcony czas.
Chyba nie przeczytałeś do końca (a raczej od początku). Przecież dostałeś przepis na współczynniki funkcji liniowej.
pasman
Użytkownik
Użytkownik
Posty: 176
Rejestracja: 26 lut 2016, o 17:32
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 1 raz
Pomógł: 14 razy

Tworzenie funkcji na podstawie danych

Post autor: pasman »

tod33 pisze: Bardzo ci dziękuję za tłumaczenie Myślałem że to będzie jakaś krótka funkcja liniowa max logarytmiczna, a tu takie coś

No nic, to nie na moją głowę, ale bardzo dzięki za poświęcony czas.
Pomyśl że niektóre dowody matematyczne zajmują 400+ stron, tak więc te kilka linijek
To nie tragedia.
tod33
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 24 lis 2017, o 01:37
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 1 raz

Tworzenie funkcji na podstawie danych

Post autor: tod33 »

@pasman, @a4karo
Rozumiem, dlatego mu dziękuję i będę musiał więcej czasu poświęcić na zrozumienie tych wzorów, a bardziej jak je zastosować i czy zwrócą mi dobre wyniki
SlotaWoj
Użytkownik
Użytkownik
Posty: 4207
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

Re: Tworzenie funkcji na podstawie danych

Post autor: SlotaWoj »

Wyjaśnienie tych wzorów masz w artykule:

Kod: Zaznacz cały

https://pl.wikipedia.org/wiki/Metoda_najmniejszych_kwadrat%C3%B3w
(minimalizacja sumy kwadratów odchyleń):
  • \(\displaystyle{ \chi^2(a, b)=\sum_{i=1}^n\frac{(y_i-ax_i-b)^2}{\sigma_i^2}}\)
Ich wyprowadzenie, czyli przekształcenia od:
  • \(\displaystyle{ \pfrac{\chi^2}{b}=0=-2\sum_{i=1}^n\frac{y_i-ax_i-b}{\sigma_i^2} \\
    \pfrac{\chi^2}{a}=0=-2\sum_{i=1}^n\frac{x_i(y_i-ax_i-b)}{\sigma_i^2}}\)
do postaci końcowej, jest trochę trudne, ale do opanowania.
ODPOWIEDZ