Desejo entender melhor os prós / contras do uso de splines loess ou suavizantes para suavizar alguma curva.
Outra variação da minha pergunta é se existe uma maneira de construir um spline de suavização de uma maneira que produza os mesmos resultados que usar loess.
Qualquer referência ou insight é bem-vinda.
regression
splines
loess
Tal Galili
fonte
fonte
Respostas:
Aqui está um código / exemplo de R que permitirá comparar os ajustes de um ajuste menor e um ajuste de spline:
Você pode tentar com seus dados e alterar o código para tentar outros tipos ou opções. Você também pode examinar a
loess.demo
função no pacote TeachingDemos para entender melhor o que o algoritmo menor faz. Observe que o que você vê do loess geralmente é uma combinação de loess com uma segunda suavização de interpolação (às vezes um spline); aloess.demo
função realmente mostra o ajuste do loess suavizado e o bruto.Teoricamente, você sempre pode encontrar um spline que se aproxima de outra função contínua tão perto quanto você deseja, mas é improvável que haja uma escolha simples de nós que ofereçam, de maneira confiável, uma aproximação aproximada de um ajuste menor para qualquer conjunto de dados.
fonte
Os resultados reais de uma spline ou loess de suavização serão bastante semelhantes. Eles podem parecer um pouco diferentes nas bordas do suporte, mas desde que você tenha certeza de que é um spline de suavização "natural", eles parecerão realmente semelhantes.
Se você está apenas usando um para adicionar um "mais suave" a um gráfico de dispersão, não há motivo real para preferir um ao outro. Se, em vez disso, você deseja fazer previsões sobre novos dados, geralmente é muito mais fácil usar um spline de suavização. Isso ocorre porque o spline de suavização é uma expansão direta da base dos dados originais; se você usou 100 nós para fazer isso, significa que você criou ~ 100 novas variáveis a partir da variável original. Loess apenas estima a resposta em todos os valores experimentados (ou um subconjunto estratificado para grandes dados).
Em geral, existem algoritmos estabelecidos para otimizar o valor da penalidade para suavizar splines (mgcv em R provavelmente faz o melhor). Loess não é tão claro, mas geralmente você ainda terá resultados razoáveis em qualquer implementação. O MGCV também oferece uma sensação de graus de liberdade equivalentes, para que você possa ter uma noção de quão "não lineares" são seus dados.
Descobri que, ao modelar dados muito grandes, um spline natural mais simples geralmente fornece resultados semelhantes para um cálculo mínimo em comparação com um spline de suavização ou loess.
fonte