Questão de aproximação dos mínimos quadrados


11

Estou fazendo um curso de computação científica e acabamos de abordar a aproximação dos mínimos quadrados. Minha pergunta é especificamente sobre a aproximação usando polinômios. Entendo que, se você tiver n + 1 pontos de dados, poderá encontrar um polinômio exclusivo de grau n que descreve todos esses pontos. Mas também posso ver por que isso nem sempre é ideal. Você pode obter muito ruído entre os pontos de dados com essa abordagem. Suponho que seja bom obter um polinômio de menor grau que calcule seus dados suficientemente bem.

Minha pergunta é: como você decide na prática qual o grau de polinômio que vai usar? Existe uma regra de ouro ou depende apenas do problema em questão? Temos que levar em consideração várias compensações ao decidir entre mais ou menos graus? Ou estou entendendo algo errado aqui?

Desde já, obrigado.


2
Acho que, na prática, as pessoas usam coisas como interpolação de spline en.wikipedia.org/wiki/Spline_interpolation, para que políticas de baixa ordem sejam usadas, mas elas se encaixam bem umas com as outras no domínio geral. Dessa forma, não é necessário adivinhar uma ordem polinomial geral.
Nasser

Obrigado pelo link. Ainda não analisamos splines, então é uma leitura interessante.
precisa

O que exatamente você quer fazer? Você está tentando interpolar os pontos ou ajustar os dados fornecidos? Por exemplo, é inútil interpolar dados que consistem em uma distribuição normal com ruído. Para o primeiro, a resposta de Nasser é boa. Para este último, a função de ajuste depende apenas do problema em questão e, em muitos casos, não é polinomial.
hauntergeist

Você pode estar interessado nas respostas desta pergunta sobre validação cruzada .
Bort

Respostas:


18

O aspecto mais importante da interpolação e do ajuste de curvas é entender por que os ajustes polinomiais de alta ordem podem ser um problema e quais são as outras opções e então você pode entender quando elas são / não são uma boa escolha.

Alguns problemas com polinômios de alta ordem:

  • Polinômios são funções naturalmente oscilatórias. À medida que a ordem do polinômio aumenta, o número de oscilações aumenta e essas oscilações se tornam mais graves. Estou simplificando aqui, a possibilidade de raízes múltiplas e imaginárias o torna um pouco mais complexo, mas o ponto é o mesmo.

  • Os polinômios se aproximam de +/- infinito a uma taxa igual à ordem polinomial conforme x vai para +/- infinito. Isso geralmente não é um comportamento desejado.

  • A computação de coeficientes polinomiais para polinômios de alta ordem é tipicamente um problema mal condicionado. Isso significa que pequenos erros (como arredondamento no computador) podem criar grandes alterações na resposta. O sistema linear que deve ser resolvido envolve uma matriz de Vandermonde que pode ser facilmente condicionada.

Penso que talvez o cerne desta questão seja a distinção entre ajuste de curva e interpolação .

A interpolação é usada quando você acredita que seus dados são muito precisos e deseja que sua função corresponda exatamente aos pontos de dados. Quando você precisa de valores entre os pontos de dados, normalmente é melhor usar uma função suave que corresponda à tendência local dos dados. As splines cúbicas ou Hermite costumam ser uma boa opção para esse tipo de problema, pois são muito menos sensíveis a alterações ou erros não locais (ou seja, em pontos de dados distantes de um determinado ponto) nos dados e são menos oscilantes que um polinômio. Considere o seguinte conjunto de dados:

x = 1   2   3   4   5   6   7   8   9  10
y = 1   1 1.1   1   1   1   1   1   1   1

Interpolação
Um ajuste polinomial tem oscilações muito maiores, especialmente próximas às bordas do conjunto de dados, do que um spline Hermite.

Por outro lado, a aproximação dos mínimos quadrados é um ajuste de curvatécnica. O ajuste de curva é usado quando você tem alguma idéia da funcionalidade esperada de seus dados, mas não precisa que sua função passe exatamente por todos os pontos de dados. Isso é típico quando os dados podem conter erros de medição ou outras imprecisões ou quando você deseja extrair a tendência geral dos dados. A aproximação dos mínimos quadrados é mais frequentemente introduzida em um curso usando polinômios para o ajuste da curva, pois isso resulta em um sistema linear que é relativamente simples de resolver usando as técnicas que você provavelmente aprendeu anteriormente no curso. No entanto, as técnicas de mínimos quadrados são muito mais gerais do que apenas ajustes polinomiais e podem ser usadas para ajustar qualquer função desejada a um conjunto de dados. Por exemplo, se você espera uma tendência de crescimento exponencial no seu conjunto de dados,

Finalmente, escolher a função correta para ajustar seus dados é tão importante quanto executar corretamente os cálculos de interpolação ou mínimos quadrados. Fazer isso ainda permite a possibilidade de extrapolação (cautelosa). Considere a seguinte situação. Dados da população (em milhões de pessoas) para os EUA de 2000 a 2010:

Year:  2000   2001   2002   2003   2004   2005   2006   2007   2008   2010
Pop.: 284.97 287.63 290.11 292.81 295.52 298.38 301.23 304.09 306.77 309.35

O uso de um ajuste de mínimos quadrados linearizados exponenciais N(t)=A*exp(B*t)ou um interpolante polinomial de 10ª ordem fornece os seguintes resultados:
Gráfico de população

O crescimento populacional dos EUA não é exatamente exponencial, mas deixarei que você seja o juiz do melhor ajuste.


1
Um ponto que eu gostaria de destacar com o seu gráfico da população dos EUA, a partir da memória, um bom ajuste no domínio não significa que extrapolará bem. Nessa perspectiva, pode ser enganoso mostrar os grandes erros polinomiais fora da região onde você tem dados.
Daryl

@Daryl concordou, é por isso que enfatizei que a extrapolação deve ser feita com cautela e que a escolha de uma função apropriada é crucial nesse caso.
Doug Lipinski 26/03

@DougLipinski Obrigado pela resposta perspicaz. Você pode explicar o que você quer dizer com mínimos quadrados linearizados em oposição aos mínimos quadrados?
precisa saber é

@ bela83 Responder corretamente que seria muito longo para um comentário. Eu acho que seria uma pergunta nova muito boa se você quiser perguntar.
precisa

@DougLipinski Vou tentar!
precisa saber é

2

Muito pouco científico, mas uma boa regra geral é que os polinômios de terceiro grau geralmente são um bom começo e, na prática, nunca vi alguém usar mais do que o sexto grau para obter bons resultados.

O polinômio "ideal" seria o de ordem mais baixa que representa os dados silenciosos o suficiente para o seu objetivo.

Se seus dados forem pequenos o suficiente para permitir (normalmente), você pode simplesmente tentar ajustar-se a polinômios de ordem superior até começar a ver oscilações, o que tende a ser o sinal de "super ajuste".

Uma alternativa seria um spline de suavização , mas depende muito da aplicação. Splines e splines de suavização são bons apenas para interpolação. Para dados ruidosos, costumo preferir ajustes polinomiais a splines de suavização, mas os dados com os quais trabalho são normalmente bem aproximados pelos polinômios.


1

Uma abordagem decentemente eficaz que usei com a aproximação polinomial é calcular os polinômios de mínimos quadrados para vários graus (por exemplo, de 1 a 10) e depois escolher a curva que minimiza o erro quadrado médio em pontos a meio caminho entre consecutivos (quando classificados por x) pontos no seu conjunto de dados. Isso ajuda a descartar curvas com oscilações muito graves.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.