Я запрограмував це з нуля один раз кілька років тому, і у мене є файл Matlab для виконання лінійної регресії на моєму комп’ютері. Приблизно від 1 до 4 точок прориву обчислювально можливо для приблизно 20 точок вимірювання або близько того. 5 або 7 пунктів перерв починає бути дуже багато.
Чисто математичний підхід, як я бачу, - це спробувати всі можливі комбінації, як це запропонував користувач mbq, у питанні, пов'язаному з коментарем під вашим запитанням.
Оскільки приталені лінії є послідовними та суміжними (без перекриттів), комбінаторика буде слідувати трикутнику Паскаля. Якби між перетвореними точками даних були сегменти рядків, я вважаю, що комбінаторика замість цього буде слідувати числам Стірлінга другого роду.
Найкращим рішенням, на мій погляд, є вибір комбінації прилаштованих ліній, що має найнижче стандартне відхилення значень кореляції R ^ 2 пристосованих ліній. Спробую пояснити на прикладі. Пам’ятайте, що те, що запитувати, скільки пунктів перерв слід знайти в даних, схоже на запитання «Як довго берег Британії?» як в одній з робіт Бенуа Мандельброта (математика) про фрактали. І існує компроміс між кількістю точок зриву та глибиною регресу.
Тепер до прикладу.
ухху
х12345678910111213141516171819202122232425262728у123456789109876543212345678910R2l 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 , 04R2l 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 fR2v 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 dгe v i a t i o n o fR20 , 67880 , 69870 , 70670 , 70480 , 69740 , 69020 , 68740 , 69130 , 70040 , 70710 , 66730 , 55230 , 36590 , 1281 рік0 , 1282 рік0 , 36590 , 55230 , 66720 , 70710 , 70040 , 69140 , 68740 , 69020 , 69740 , 70480 , 70680 , 69870 , 6788
Ці значення y мають графік:
Який явно має дві точки розриву. Для аргументу ми обчислимо значення кореляції R ^ 2 (за формулами комірки Excel (стиль європейської крапки з комами)):
=INDEX(LINEST(B1:$B$1;A1:$A$1;TRUE;TRUE);3;1)
=INDEX(LINEST(B1:$B$28;A1:$A$28;TRUE;TRUE);3;1)
для всіх можливих комбінованих двох поєднаних ліній. Усі можливі пари значень R ^ 2 мають графік:
Питання полягає в тому, яку пару значень R ^ 2 слід вибрати, і як узагальнити до декількох точок розриву, як задано в заголовку? Один вибір - вибрати комбінацію, для якої сума кореляції R-квадрата є найвищою. Складаючи це, ми отримуємо верхню синю криву внизу:
1 , 0455
Шматка мудра лінійна регресія - Matlab - декілька точок розриву