Percebi que a interpolação de splines com um grau superior a 3 (tudo além das splines cúbicas) tem um erro de interpolação muito alto, portanto, a previsão é geralmente terrível. Encontrei várias notas de aula, slides e vídeos do Youtube que simplesmente indicam que splines cúbicos (3º grau) são ótimos e que qualquer coisa além disso é uma má ideia. Essas fontes, no entanto, nunca mencionam por que esse é o caso.
Alguém pode me explicar por que esse é o caso e talvez me dê um título / link para um jornal / conferência que explique isso ou talvez até dê uma prova.
interpolation
goocreations
fonte
fonte
Respostas:
Não existe essa prova, porque nem sempre é verdade. É uma regra de ouro, porque garanto que você pode ter uma situação - um número infinito de situações - na qual splines de ordem superior se sairiam melhor do que splines cúbicos. A ordem ideal do spline para qualquer situação é exatamente a mesma ordem que o sistema que você está tentando modelar. Se a ordem for a mesma e seus pontos de dados estiverem livres de erros (nunca é o caso, é claro, exceto em problemas teóricos), você poderá modelar o sistema perfeitamente.
A razão pela qual eles recomendam não ir mais alto que os splines cúbicos é porque o ajuste excessivo é muito, muito ruim. A sobreajuste pode aumentar muito os erros, enquanto a "falta de ajuste" (escolher um método de spline com uma ordem menor que a ordem do sistema que você está modelando) introduz uma filtragem de passa-baixo que não é tão ruim ou às vezes até benéfica.
fonte
Aqui está um esboço (que pode ou não estar correto). Spline é uma interpolação polinomial, ou seja, cada seção da curva entre os pontos de apoio vizinhos é um polinômio. Um polinômio de ordem N tem coeficientes N + 1 (graus de liberdade) e, portanto, pode satisfazer 4 condições de contorno por seção. A escolha das condições de contorno determina o tipo de interpolação. Para um spline que atinge exatamente os pontos de suporte e cria uma primeira e uma segunda derivadas contínuas.
Para splines de ordem superior, você também pode obter derivadas de ordem superior, mas isso tende a adicionar muito conteúdo de alta frequência em transições mais nítidas e geralmente resulta em "toque" ou oscilação excessiva. As palavras originais "spline" resultam de uma régua flexível usada pelas pessoas para fazer interpolações "mecânicas". Eu acho que você pode mostrar, analisando a mecânica da régua, o spline cúbico corresponde a esse comportamento.
Como na maioria das coisas, isso depende do seu aplicativo e do que você deseja fazer. Uma alternativa interessante aos splines cúbicos são as interpolações eremitas, que podem garantir a monotonia e garantir que a interpolação nunca seja alterada para fora dos pontos de apoio. Na função de ajuda do MATLAB
fonte
Existem vários tipos de splines, com objetivos conflitantes:
Para alguns pontos de dados, convém interpolar exatamente; mas, para milhares de pontos, ou mesmo uma dúzia de ruídos, a interpolação exata irá mexer. A maioria dos instaladores de spline possui parâmetros para compensar a proximidade do ajuste versus a suavidade geral. Aqui está um gráfico de splines de grau 1 (linear por partes, conecte os pontos) com dados = linha + ruído. Você vê que o ajuste exato dos dados faz zig-zags para cima e para baixo, enquanto a suavização máxima fornece uma linha reta:
Existem splines para trabalhos diferentes, dependendo dos dados de entrada e dos novos pontos intermediários: dezenas / milhões de pontos, quão barulhentos, espalhados / em uma grade, 1d 2d 3d ... Em uma grade regular em 3d, por exemplo, um spline de graud
vai olhar ( d+ 1)3 vizinhos de cada ponto de consulta: 1 (vizinho mais próximo), 8 (trilinear), 27, 64 ... Você pode pagar 64? Você precisa de 64? Depende.
(Resumidamente, os splines B são suaves; os splines
Catmull-Rom interpolam, por exemplo, quadros de filmes;
misturas como 1/3 B + 2/3 CR são úteis no meio.)
Como o grau polinomial afeta a ondulação? Veja o fenômeno de Runge .
No overshoot em 1d 2d 3d ... veja (ahem) esta pergunta em math.stackexchange.
Sobre os perigos da EXtrapolação com splines além do linear, veja isso no SO.
Consulte também stackoverflow.com/questions/tagged/spline .
fonte
Outra maneira de analisar isso é observando que as imagens e conjuntos de dados mais interessantes são "suaves" até certo ponto. A interpolação do ruído gaussiano, por exemplo, deve funcionar melhor com splines de ordem superior.
fonte