Exemplo de ajuste por quadrados mínimos
Um exemplo feito de ponta a ponta para mostrar como o método funciona
Vamos lá?
Nesta aula, vou mostrar através de um exemplo como determinar a curva que melhor se ajusta a um conjunto de pontos amostrados. Entender esse exemplo será um grande passo para a compreensão do método em geral.
- 1
- 2
- 3
- 4
- 5
- 6
Qual a primeira etapa do processo de ajuste?
No exemplo, decidiu-se usar que tipo de função no ajuste?
No que se baseou a decisão pelo tipo de função escolhido nesse exemplo?
O vetor $\phi$ é...
A matriz $\mathsf{\Phi}$ é...
Neste exemplo, 17 pontos amostrados de uma função, possivelmente contaminados por erro experimental, estão exibidos no gráfico abaixo.
Se queremos encontrar uma função que represente esses pontos, a primeira pergunta a se fazer é Que tipo de função poderia ter gerado pontos como esses? Dentre diversas possibilidades, parece razoável pelo aspecto do gráfico a escolha de um polinômio de grau 3 que, de forma geral, pode ser representado como combinação linear das funções $1,$ $x,$ $x^2$ e $x^3.$
Desta forma, se procurarmos por uma função \begin{equation}\label{phi1} \phi(x) = c_1 + c_2x+c_3x^2+c_4x^3, \end{equation} o problema passa a ser determinar $c_1,$ $c_2$, $c_3$ e $c_4.$
Na aula anterior, já havíamos discutido que o critério para avaliar a qualidade do ajuste era o resíduo quadrático, ou seja, a soma dos desvios ao quadrado entre os valores amostrados e os valores da função de ajuste sobre os pontos da malha. Desta forma, a função $\phi,$ de melhor ajuste no sentido de quadrados mínimos, é aquela que minimiza o resíduo quadrático, dado por \begin{equation}\label{qm} \|\phi - y\|^2 = \sum_{i=1}^n (\phi(x_i)-y_i)^2, \end{equation} onde $n$ é o número de pontos amostrados, 17 neste exemplo. Um comentário sobre a notação: perceba que estamos usando $\phi$ para representar tanto a função definida em \eqref{phi1}, como para representar um vetor $(\phi(x_1),\ldots,\phi(x_m))^T$. É um abuso de notação sim, mas não deve gerar confusão, pelo contexto.
Para permitir a extensão do que faremos aqui, ao invés de usar a representação particular para a função $\phi$ dada em \eqref{phi1}, vamos representar $\phi$ como \begin{equation}\label{phi2} \phi(x) = c_1\phi_1(x) + c_2\phi_2(x) + c_3\phi_3(x) + c_4\phi_4(x), \end{equation} onde, neste exemplo, $\phi_j(x) = x^{j-1}.$ Agora que $\phi$ se escreve como combinação linear de funções conhecidas — a base do espaço de aproximação — o vetor $\phi = (\phi(x_1),\ldots,\phi(x_m))^T$ pode ser representado por pelo produto $$\phi = \mathsf{\Phi}c, $$ onde $\mathsf{\Phi}$ é a matriz com as avaliações de cada função da base sobre todos os valores $x_i$ amostrados, dada por $$ \mathsf{\Phi} = \left(\begin{array}{cccc} \phi_1(x_1) & \phi_2(x_1) & \phi_3(x_1) & \phi_4(x_1) \\ \phi_1(x_2) & \phi_2(x_2) & \phi_3(x_2) & \phi_4(x_2) \\ \vdots & \vdots & \vdots & \vdots \\ \phi_1(x_m) & \phi_2(x_m) & \phi_3(x_m) & \phi_4(x_m) \end{array} \right). $$ Essa representação é importante pois permite reescrever a função objetivo em \eqref{qm} em termos das variáveis do problema de minimização como \begin{equation} F(c) = \|\mathsf{\Phi} c - y\|^2, \end{equation} onde $c = (c_1,c_2,c_3,c_4)^T.$
Do Cálculo Diferencial, sabemos que os candidatos a pontos de mínimo de uma função são aqueles para os quais o gradiente da função se anula. Em nosso caso específico, como a função $F$ é uma quadrática é possível mostrar que todos os pontos críticos são de fato pontos de mínimo. Nos resta computar o gradiente de $F.$
Para $\nabla F$ primeiro, usamos que $\|u\|^2 = u^Tu$ e portanto $$F(c) = (\mathsf{\Phi}c-y)^T(\mathsf{\Phi}c-y).$$ Como $(Ax)^T = x^TA^T$ e $y^T\mathsf{\Phi}c = (y^T\mathsf{\Phi}c)^T = c^T \mathsf{\Phi}^T y,$ visto que este número é um escalar, temos que $$F(c) = c^T \left(\mathsf{\Phi}^T \mathsf{\Phi}\right) c - 2 c^T \mathsf{\Phi}^T y + y^Ty.$$
Para computar $\nabla F$ usamos duas propriedades: $$\nabla_x(x^TMx) = (M+M^T)x$$ e $$\nabla_x (x^TMy) = My.$$ Assim, $$\nabla F(c) = 2\mathsf{\Phi}^T\mathsf{\Phi} c -2\mathsf{\Phi}^T y.$$ Portanto, pedir que $\nabla F(c) = 0$ é o mesmo que pedir que $c$ seja a solução do sistema linear, denominado sistema normal, $$\mathsf{\Phi}^T\mathsf{\Phi} c =\mathsf{\Phi}^T y.$$
A matriz do sistema normal, $(\mathsf{\Phi}^T\mathsf{\Phi})$ é quadrada, da ordem do número de funções na base, simétrica (ela igual a sua própria transposta) e ainda é definida positiva (todos os seus autovalores são positivos).
A resolução do sistema normal produz o vetor de coeficientes $c$ que, quando usado em $\eqref{phi2},$ produz a função $\phi$ de melhor ajuste, exibida a seguir.
O polinômio de grau 3 encontrado nesse exemplo é, por construção, o melhor polinômio de grau 3 para ajustar os pontos amostrados, no sentido de quadrados mínimos. Isso não quer dizer que não exista uma outra função (que não seja um polinômio de grau 3), que tenha resíduo menor ainda, e portanto se ajuste melhor aos pontos. Por isso é importante fazer uma boa escolha das funções de base no início do processo.
Na próxima aula vamos discutir o problema de ajuste de curvas em geral.
1. Considere a tabela de pontos abaixo.
$x$ | 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00 | 8.00 | 9.00 |
$y$ | 0.06 | −0.45 | −0.98 | −1.48 | −1.89 | −2.16 | −2.27 | −2.22 | −2.05 |
- Construa um gráfico exbindo os pontos amostrados e convença-se que um polinômio de grau no máximo 3 parece ser suficiente para ajustá-los.
- Ajuste a esses pontos um polinômio de grau no máximo 3, no sentido de quadrados mı́nimos.
- Qual o resı́duo quadrático desse ajuste?
O polinômio de melhor ajuste é $p(x) \approx 0.623 - 0.533x - 0.017x^2 + 0.0048x^3.$ O resíduo do ajuste é $4.1\cdot 10^{-3}.$
2. Se no exercício anterior, ao invés de ajustar um polinômio de grau 3, ajustássemos um polinômio de grau 4, o resíduo do ajuste ótimo reduziria, permaneceria o mesmo, ou aumentaria? Responda sem resolver explicitamente.
O resíduo pode permanecer o mesmo (apesar de improvável) ou diminuir (mais provável). Isto porque o conjunto dos polinômios de grau no máximo 4 contém o conjunto dos polinômios de grau no máximo 3. Assim, buscar o mínimo em um conjunto maior só pode melhorar a estimativa.
3. Exiba como ficaria o sistema normal no caso de um ajuste de um polinômio de grau no máximo 1, ao conjunto de pontos $\{(x_1,y_1),\ldots,(x_n,y_n)\}$?
$$\left[\begin{array}{cc} n & \sum x_k \\\ \sum x_k & \sum x_k^2 \end{array}\right]\begin{bmatrix}c_1\\\ c_2 \end{bmatrix} =\begin{bmatrix}\sum y_k \\\ \sum x_ky_k \end{bmatrix} $$