Programei isso do zero uma vez há alguns anos e tenho um arquivo Matlab para fazer regressão linear por partes no meu computador. Cerca de 1 a 4 pontos de interrupção são computacionalmente possíveis para cerca de 20 pontos de medição. 5 ou 7 pontos de interrupção começam a ser realmente demais.
A abordagem matemática pura, na minha opinião, é tentar todas as combinações possíveis, conforme sugerido pelo usuário mbq na pergunta vinculada ao comentário abaixo da sua pergunta.
Como as linhas ajustadas são todas consecutivas e adjacentes (sem sobreposições), a combinatória seguirá o triângulo Pascal. Se houvesse sobreposições entre os pontos de dados usados pelos segmentos de linha, acredito que a combinatória seguiria os números Stirling do segundo tipo.
A melhor solução em minha mente é escolher a combinação de linhas ajustadas que tem o menor desvio padrão dos valores de correlação R ^ 2 das linhas ajustadas. Vou tentar explicar com um exemplo. Lembre-se, porém, de que perguntar quantos pontos de interrupção devemos encontrar nos dados é semelhante a perguntar "Quanto tempo dura a costa da Grã-Bretanha?" como em um dos artigos de Benoit Mandelbrots (matemático) sobre fractais. E há uma troca entre o número de pontos de interrupção e a profundidade da regressão.
Agora para o exemplo.
yxxy
x12345678910111213141516171819202122232425262728y123456789109876543212345678910R2line11,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,04R2line20,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,000sumofR2values1,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,04standarddeviationofR20,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
These y values have the graph:
Which clearly has two break points. For the sake of argument we will calculate the R^2 correlation values (with the Excel cell formulas (European dot-comma style)):
=INDEX(LINEST(B1:$B$1;A1:$A$1;TRUE;TRUE);3;1)
=INDEX(LINEST(B1:$B$28;A1:$A$28;TRUE;TRUE);3;1)
for all possible non-overlapping combinations of two fitted lines. All the possible pairs of R^2 values have the graph:
The question is which pair of R^2 values should we choose, and how do we generalize to multiple break points as asked in the title? One choice is to pick the combination for which the sum of the R-square correlation is the highest. Plotting this we get the upper blue curve below:
The blue curve, the sum of the R-squared values, is the highest in the middle. This is more clearly visible from the table with the value 1,0455 as the highest value.
However it is my opinion that the minimum of the red curve is more accurate. That is, the minimum of the standard deviation of the R^2 values of the fitted regression lines should be the best choice.
Piece wise linear regression - Matlab - multiple break points