Kilka lat temu zaprogramowałem to od zera i mam plik Matlab do wykonywania regresji liniowej na komputerze. Około 1 do 4 punktów przerwania jest obliczeniowo możliwe dla około 20 punktów pomiaru. 5 lub 7 punktów przerwania zaczyna być naprawdę za dużo.
Podejście czysto matematyczne, jak widzę, polega na wypróbowaniu wszystkich możliwych kombinacji, jak sugeruje użytkownik mbq w pytaniu powiązanym z komentarzem pod twoim pytaniem.
Ponieważ wszystkie dopasowane linie są kolejne i przylegają do siebie (bez nakładania się), kombinatoryka podąży za trójkątem Paskal. Gdyby segmenty linii nakładały się między wykorzystanymi punktami danych, uważam, że kombinatoryka podążyłaby za liczbami Stirlinga drugiego rodzaju.
Moim zdaniem najlepszym rozwiązaniem jest wybór kombinacji dopasowanych linii, która ma najniższe odchylenie standardowe wartości korelacji R ^ 2 dopasowanych linii. Spróbuję wyjaśnić na przykładzie. Pamiętaj jednak, że pytanie, ile punktów przerwania należy znaleźć w danych, jest podobne do pytania „Jak długie jest wybrzeże Wielkiej Brytanii?” jak w jednym z artykułów Benoita Mandelbrotsa (matematyka) na temat fraktali. I istnieje kompromis między liczbą punktów przerwania a głębokością regresji.
Teraz do przykładu.
Załóżmy, że mamy idealne dane w funkcji ( i są liczbami całkowitymi):x x yyxxy
x12)3)45678910111213141516171819202122232425262728y12)3)456789109876543)2)12)3)45678910R2)l i n e 11 , 0001 , 0001 , 0001 , 0001 , 0001 , 0001 , 0001 , 0001 , 0001 , 0000 , 97090 , 89510 , 77340 , 61340 , 43210 , 25580 , 11390 , 027200 , 00940 , 02220 , 02780 , 02390 , 01360 , 00320 , 00040 , 01180 , 04R2)l i n e 20 , 04000 , 01180 , 00040 , 00310 , 01350 , 02380 , 02770 , 02220 , 0093- 1 , 9780 , 02710 , 11390 , 25580 , 43210 , 61340 , 77330 , 89510 , 97081 , 0001 , 0001 , 0001 , 0001 , 0001 , 0001 , 0001 , 0001 , 0001 , 000s u m o fR2)v a l u e s1 , 04001 , 01181 , 00041 , 00311 , 01351 , 02381 , 02771 , 02221 , 00931 , 0000 , 99801 , 00901 , 02921 , 04551 , 04551 , 02911 , 00900 , 99801 , 0001 , 00941 , 02221 , 02781 , 02391 , 01361 , 00321 , 00041 , 01181 , 04s t a n da r dree v i a t i o n o fR2)0 , 67880 , 69870 , 70670 , 70480 , 69740 , 69020 , 68740 , 69130 , 70040 , 70710 , 66730 , 55230 , 36590 , 12810 , 12820 , 36590 , 55230 , 66720, 70710, 70040 , 69140, 68740, 69020, 69740, 70480 , 70680, 69870 , 6788
Te wartości y mają wykres:
Który ma wyraźnie dwa punkty przerwania. Dla celów argumentu obliczymy wartości korelacji R ^ 2 (z formułami komórek Excela (europejski styl przecinek-kropka)):
=INDEX(LINEST(B1:$B$1;A1:$A$1;TRUE;TRUE);3;1)
=INDEX(LINEST(B1:$B$28;A1:$A$28;TRUE;TRUE);3;1)
dla wszystkich możliwych nie nakładających się kombinacji dwóch dopasowanych linii. Wszystkie możliwe pary wartości R ^ 2 mają wykres:
Pytanie brzmi, którą parę wartości R ^ 2 powinniśmy wybrać i jak uogólnić do wielu punktów przerwania, jak podano w tytule? Jednym wyborem jest wybór kombinacji, dla której suma korelacji R-kwadrat jest najwyższa. Kreśląc to, otrzymujemy górną niebieską krzywą poniżej:
Niebieska krzywa, suma wartości R-kwadrat, jest najwyższa pośrodku. Jest to lepiej widoczne z tabeli o wartości jako najwyższej wartości. Jednak moim zdaniem minimum czerwonej krzywej jest dokładniejsze. To znaczy, minimalne odchylenie standardowe wartości R ^ 2 dopasowanych linii regresji powinno być najlepszym wyborem.1 , 0455
Regresja liniowa według kawałków - Matlab - wiele punktów przerwania