Mínimos Quadrados: mudanças entre as edições
Sem resumo de edição |
(pequeno erro de grafia mas com significado) |
||
(7 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 17: | Linha 17: | ||
Sendo que um experimento foi realizado e temos <math>N</math> pontos, como descrito acima, e consideramos que um ajuste linear é coerente, uma reta deve ser construída para melhor representar estes pontos. Como mostrado na figura a baixo, para cada ponto, teremos um erro <math>\epsilon_i</math>, que é definido como a distância entre o ponto experimental e a curva (reta neste caso) teórica que desejamos ajustar, ou seja, | Sendo que um experimento foi realizado e temos <math>N</math> pontos, como descrito acima, e consideramos que um ajuste linear é coerente, uma reta deve ser construída para melhor representar estes pontos. Como mostrado na figura a baixo, para cada ponto, teremos um erro <math>\epsilon_i</math>, que é definido como a distância entre o ponto experimental e a curva (reta neste caso) teórica que desejamos ajustar, ou seja, | ||
:<math>\epsilon_i = | :<math>\epsilon_i = y_i - f(x_i)</math> , | ||
onde | onde | ||
Linha 33: | Linha 33: | ||
:<math>S = \sum_{i=1}^N \epsilon_i^2</math>, | :<math>S = \sum_{i=1}^N \epsilon_i^2</math>, | ||
assim | assim | ||
:<math>S = \sum_{i=1}^N [ | :<math>S = \sum_{i=1}^N [y_i - f(x_i)]^2 = \sum_{i=1}^N [y_i - f(x_i;\alpha_0,\alpha_1)]^2 </math>. | ||
Para obter a melhor reta que se ajusta aos dados experimentais, temos que minimizar <math>S</math> em relação às constantes da função <math>(\alpha_0,\alpha_1)</math>: | Para obter a melhor reta que se ajusta aos dados experimentais, temos que minimizar <math>S</math> em relação às constantes da função <math>(\alpha_0,\alpha_1)</math>: | ||
Linha 41: | Linha 41: | ||
Como a reta possui apenas dois coeficientes, para o ajuste linear temos duas equações: | Como a reta possui apenas dois coeficientes, para o ajuste linear temos duas equações: | ||
:<math>\frac{\partial S}{\partial \alpha_0} = \frac{\partial}{\partial \alpha_0}\sum_{i=1}^N [ | :<math>\frac{\partial S}{\partial \alpha_0} = \frac{\partial}{\partial \alpha_0}\sum_{i=1}^N [y_i - (\alpha_0 + \alpha_1x_i)]^2 = 0</math> | ||
e | e | ||
:<math>\frac{\partial S}{\partial \alpha_1} = \frac{\partial}{\partial \alpha_1}\sum_{i=1}^N [ | :<math>\frac{\partial S}{\partial \alpha_1} = \frac{\partial}{\partial \alpha_1}\sum_{i=1}^N [y_i - (\alpha_0 + \alpha_1x_i)]^2 = 0</math> . | ||
Derivando as equações acima, temos que | Derivando as equações acima, temos que | ||
:<math>\sum_{i=1}^N | :<math>\sum_{i=1}^N y_i - \sum_{i=1}^N \alpha_0 - \sum_{i=1}^N \alpha_1x_i = 0</math> | ||
e | e | ||
:<math>\sum_{i=1}^N | :<math>\sum_{i=1}^N y_ix_i - \sum_{i=1}^N \alpha_0x_i - \sum_{i=1}^N \alpha_1x_i^2 = 0</math> . | ||
Assim, | Assim, | ||
:<math>\alpha_0\underbrace{\sum_{i=1}^N 1}_N + \alpha_1\underbrace{\sum_{i=1}^N | :<math>\alpha_0\underbrace{\sum_{i=1}^N 1}_N + \alpha_1\underbrace{\sum_{i=1}^N x_i}_X = \underbrace{\sum_{i=1}^N y_i}_Y </math> | ||
e | e | ||
:<math>\alpha_0\underbrace{\sum_{i=1}^N | :<math>\alpha_0\underbrace{\sum_{i=1}^N x_i}_X + \alpha_1\underbrace{\sum_{i=1}^N x_i^2}_{X^2} = \underbrace{\sum_{i=1}^N y_ix_i}_{YX}</math> . | ||
Lembre-se de que os valores <math> | Lembre-se de que os valores <math>x_i</math> e <math>y_i</math> são conhecidos (são dados do problema). Desse modo, terminamos com um sistema linear para resolver, que na notação matricial fica | ||
:<math>\begin{pmatrix}N & X \\ X & X^2\end{pmatrix} \begin{pmatrix} \alpha_0 \\ \alpha_1 \end{pmatrix} = \begin{pmatrix} Y \\ YX \end{pmatrix}</math> . | :<math>\begin{pmatrix}N & X \\ X & X^2\end{pmatrix} \begin{pmatrix} \alpha_0 \\ \alpha_1 \end{pmatrix} = \begin{pmatrix} Y \\ YX \end{pmatrix}</math> . | ||
Linha 63: | Linha 63: | ||
Cuidado com o fato que <math>(X^2 \neq X*X)</math> e <math>(YX \neq Y*X)</math>. Após construir a matriz, resolva com o método que mais lhe agrade (ha diversos métodos de solução de sistemas lineares, tais como a Regra de Cramer ou a eliminação Gaussiana). | Cuidado com o fato que <math>(X^2 \neq X*X)</math> e <math>(YX \neq Y*X)</math>. Após construir a matriz, resolva com o método que mais lhe agrade (ha diversos métodos de solução de sistemas lineares, tais como a Regra de Cramer ou a eliminação Gaussiana). | ||
=Equação quadrática= | =Equação quadrática= | ||
Linha 184: | Linha 181: | ||
</pre> | </pre> | ||
=Ajuste ponderado= | =Ajuste ponderado= | ||
Dependendo da situação, convém fazer um ajuste levando em conta o erro associado a cada ponto, i.e., atribuindo maior peso para pontos com um erro baixo e menor peso para os pontos onde o erro é sabidamente maior.Ou seja, se definirmos <math>w_i</math> como o peso associado ao ponto <math>( | Dependendo da situação, convém fazer um ajuste levando em conta o erro associado a cada ponto, i.e., atribuindo maior peso para pontos com um erro baixo e menor peso para os pontos onde o erro é sabidamente maior. Ou seja, se definirmos <math>w_i</math> como o peso associado ao ponto <math>(x_i,y_i)</math>, gostaríamos que ele seja maior quanto menor for o erro associado a este ponto. | ||
Se <math>S_{y_i}</math> é o erro associado a este ponto, e considerando que o ajuste proposto é tal que minimiza a distância quadrática, podemos definir então <math>w_i</math> como: | Se <math>S_{y_i}</math> é o erro associado a este ponto, e considerando que o ajuste proposto é tal que minimiza a distância quadrática, podemos definir então <math>w_i</math> como: | ||
<math>w_i=S_{y_i}^{-2}</math> | <math>w_i=S_{y_i}^{-2}</math> | ||
E | E o resíduo <math>\chi^2</math>, para o cálculo do ajuste ponderado, será dada por: | ||
<math>\chi = \sum_{i=1}^N ( | <math>\chi^2 = \sum_{i=1}^N (y_i - a - b x_i)^{2}w_i</math> | ||
Aplicando o mesmo procedimento anterior para minimizar <math> \chi </math>, obtemos as equações | Aplicando o mesmo procedimento anterior para minimizar <math> \chi^2 </math>, obtemos as equações | ||
:<math> \begin{bmatrix} | :<math> \begin{bmatrix} | ||
a[w] + b[ | a[w] + b[xw] & = &[yw] \\ | ||
a[ | a[xw] + b[x^2w] & = & [xyw] | ||
\end{bmatrix}</math> | \end{bmatrix}</math> | ||
E, portanto, os valores de <math>a</math> e <math>b</math> são: | E, portanto, os valores de <math>a</math> e <math>b</math> são: | ||
<math> | <math>a = ([yw][x^2w] - [xyw][xw]) / \Delta</math> | ||
<math> | <math>b = ([w][xyw] - [xw][yw]) / \Delta</math> | ||
<math> | com <math>\Delta</math>: | ||
<math>\Delta = [w][x^2w] - [xw]^2</math> | |||
=Erro dos coeficientes= | =Erro dos coeficientes= | ||
Linha 220: | Linha 218: | ||
fonte de erro. Assim para ver como o erro neles propaga-se para os coeficientes, escrevemos: | fonte de erro. Assim para ver como o erro neles propaga-se para os coeficientes, escrevemos: | ||
<math>a = a(y_i) \Rightarrow \frac{\partial a}{\partial y_i} = \frac{1}{\Delta} \frac{\partial }{\partial y_i} \left\{[ | <math>a = a(y_i) \Rightarrow \frac{\partial a}{\partial y_i} = \frac{1}{\Delta} \frac{\partial }{\partial y_i} \left\{[yw][x^2w] - [xyw][xw]\right\}</math> | ||
<math>\frac{\partial a}{\partial y_i} = \frac{1}{\Delta}\left\{ w_i[ | <math>\frac{\partial a}{\partial y_i} = \frac{1}{\Delta}\left\{ w_i[x^2w] - x_i w_i [xw]\right\}</math> | ||
Só os termos com y contribuem para a derivada. Como os <math>y_i</math> aparecem somados, ao derivar respeito do ''i''-esimo | |||
sobra apenas o que multiplica ele | sobra apenas o que multiplica ele | ||
Para incluir o efeito do erro de cada y_i deveriamos somar i de 1 a N, mas como o erro pode ser para mais o menos | Para incluir o efeito do erro de cada <math>y_i</math> deveriamos somar i de 1 a N, mas como o erro pode ser para mais o menos | ||
fazemos uma media quadrática deles: | fazemos uma media quadrática deles: | ||
Linha 233: | Linha 231: | ||
onde: | onde: | ||
<math>\left(\frac{\partial a}{\partial y_i}\Delta y_i \right)^2 = \frac{1}{\Delta^2} \left\{ w_i^2[ | <math>\left(\frac{\partial a}{\partial y_i}\Delta y_i \right)^2 = \frac{1}{\Delta^2} \left\{ w_i^2[x^2w]^2 + x_i^2 w_i^2 [xw]^2 - 2w_i[x^2w] x_i w_i [xw]\right\}w_i^{-1}</math> | ||
o somatório fica: | o somatório fica: | ||
<math>\frac{1}{\Delta^2} \sum_{i=1}^N \left(w_i[ | <math>\frac{1}{\Delta^2} \sum_{i=1}^N \left(w_i[x^2w]^2 + x_i^2 w_i [xw]^2 - 2 [x^2w] x_i w_i [xw]\right) = | ||
\frac{1}{\Delta^2} \left([w][ | \frac{1}{\Delta^2} \left([w][x^2w]^2 + [x^2w][xw]^2 - 2 [x^2w][xw][xw]\right)</math> | ||
e com mais algumas simplificações chegamos a simples relação: | e com mais algumas simplificações chegamos a simples relação: | ||
<math>\Delta a = \sqrt{\frac{[ | <math>\Delta a = \sqrt{\frac{[x^2w]}{\Delta}}</math> | ||
Analogamente para o b (que resulta ser mais fácil), se chega a: | Analogamente para o b (que resulta ser mais fácil), se chega a: | ||
Linha 254: | Linha 252: | ||
<math>w=1/(\Delta y)^2</math> | <math>w=1/(\Delta y)^2</math> | ||
:<math>\Rightarrow \Delta = w^2 (N[ | :<math>\Rightarrow \Delta = w^2 (N[x^2] - [x]^2)= (w N \sigma)^2</math> | ||
onde <math>\sigma^2 = <x^2> - <x>^2</math> | onde <math>\sigma^2 = <x^2> - <x>^2</math> | ||
Linha 260: | Linha 258: | ||
resultando: | resultando: | ||
<math>\Delta a = \Delta y \sqrt | <math>\Delta a = \frac{\Delta y \sqrt{<x^2>}}{\sigma \sqrt{N}}</math> | ||
<math>\Delta b = \frac{\Delta y}{\sigma \sqrt{N}}</math> | |||
Por tanto, três fatores determinam a qualidade do ajuste: | |||
* E erro das medidas (<math>\Delta y</math>) que deve ser minimizado, porem está geralmente limitado pelo instrumento utililizado | |||
* O número de medidas <math>N</math>, quanto maior, melhor, porem vemos que o erro dos coeficientes diminui com a raiz dele | |||
* Por último, a dispersão da viariável independente x (<math>\sigma</math>) também, quanto maior, melhor | |||
Por último, consideremos o caso mais simples, ajuste sem ponderar e sem informação sobre <math>\Delta y</math>, apenas <math>N</math> pares de dados {<math>{x_i, y_i}</math>}. | |||
Nesse caso podemos estimar o valor de <math>\Delta y</math> pelo <math>\chi^2</math> assim: | |||
<math>\Delta | <math>\Delta y \approx \sqrt{\frac{\chi^2}{N-2}}</math> | ||
Pois o resíduo <math>\chi^2</math> pode ser interpretado como o somatório dos erros de cada ponto, tomados como a distancia entre a medida e o ajuste. | |||
O <math>N-2</math> em lugar de <math>N</math>, é pelo fato de que o ajuste já contem dois parâmetros (<math>a</math> e <math>b</math> | |||
obtidos dos dados, então os erros individuais não são todos independentes. |
Edição atual tal como às 11h22min de 27 de julho de 2021
Este o nome que se da ao ajuste ou fitting de uma função (polinômio) a um conjunto de dados.
Se com representam o conjunto de dados (N) obtidos de um experimento (instrumento) ou
de uma observação (por exemplo, em pesquisa de opinião ou censo) ou de uma simulação numérica.
E se suspeitamos que existe uma correlação entre os X (variável independente ou de entrada, controlada pelo experimento)
e os Y (cuja dependência com X queremos testar), primeiro colocamos os pontos num gráfico para ver se o conjunto forma
uma nuvem dispersa (quando não existe correlação aparente, isto é X e Y não conformam uma função), ou se existe
correlação (os pontos parecem estar sobre alguma curva).
Equação linear
Sendo que um experimento foi realizado e temos pontos, como descrito acima, e consideramos que um ajuste linear é coerente, uma reta deve ser construída para melhor representar estes pontos. Como mostrado na figura a baixo, para cada ponto, teremos um erro , que é definido como a distância entre o ponto experimental e a curva (reta neste caso) teórica que desejamos ajustar, ou seja,
- ,
onde
é a função que representa a curva de melhor ajuste.
Para encontrar a reta que melhor se ajusta aos dados experimentais, desejamos minimizar o erro . Como o erro pode ter tanto valores negativos quanto positivos, o que importa é minimizar o valor absoluto de . Isto poderia ser feito minimizando módulo de , mas como a função módulo tem uma descontinuidade, é mais fácil minimizar o quadrado do erro. Para isto, definimos:
- ,
assim
- .
Para obter a melhor reta que se ajusta aos dados experimentais, temos que minimizar em relação às constantes da função :
- .
Como a reta possui apenas dois coeficientes, para o ajuste linear temos duas equações:
e
- .
Derivando as equações acima, temos que
e
- .
Assim,
e
- .
Lembre-se de que os valores e são conhecidos (são dados do problema). Desse modo, terminamos com um sistema linear para resolver, que na notação matricial fica
- .
Cuidado com o fato que e . Após construir a matriz, resolva com o método que mais lhe agrade (ha diversos métodos de solução de sistemas lineares, tais como a Regra de Cramer ou a eliminação Gaussiana).
Equação quadrática
Utilizando o mesmo método descrito para um ajuste linear, considerando que o melhor ajuste para um conjunto de pontos seja uma curva proveniente de função quadrática, temos que a função é dada por
- .
Desse modo, a soma do quadrado do erro fica
- .
Após algumas contas, como feito na seção anterior, temos o sistema linear de 3 equações e 3 incógnitas para resolver:
- .
Fique atento ao fato de que
- .
Polinômio de grau n
Generalizando o procedimento acima, apresentado para polinômios de grau 1 e 2, podemos ajustar um conjunto de pontos com um polinômio de um grau específico . Assim, a função será descrita por
e a soma dos quadrados do erro é dada por
- .
Ao final do procedimento, teremos um sistema linear de equações e incógnitas para resolver. O resultado deste sistema são os coeficientes : que compõem o polinômio que melhor se ajusta aos dados experimentais.
Outros tipos de funções
Dependendo do tipo de experimento, podem haver outras relações entre os pontos, como funções exponenciais.
Exponencial 1
Se os dados de um experimento se ajustarem bem a uma função exponencial do tipo:
- ,
definimos uma nova função :
- .
Assim, recaímos no problema do ajuste linear recém visto:
- , com e .
Exponencial 2
Se a função exponencial for do tipo:
- ,
supondo , definimos:
- .
Assim, como no caso anterior, voltamos para o problema de ajuste linear:
- ,
com e .
Algébrica
Se a função for do tipo:
- ,
com e , definimos:
- .
e assim
- ,
onde e . Note também que os valores de x devem ser transformados em para ajustar os pontos.
Código FORTRAN
A seguir vemos uma possível implementação do método em linguagem F90.
Observem a simplicidade do mesmo:
! programa fortran para ajuste linear de conjunto de dados Implicit none Real :: xi,yi, x,y,xy,x2 Real :: det,a,b n = 0; x = 0; y = 0; xy = 0; x2 = 0 Do Read(*,*,end=100) xi,yi n = n + 1 ! soma do numero de pontosd x = x + xi; y = y + yi ! somatorio dos x e y x2 = x2 + xi**2; xy = xy + xi*y ! somatorio dos x**2 e x*y <- cuidado ha um erro aqui (compila mas ... End Do 100 det = n*x2 - x**2 a = y*x2 - xy*x / det ! <- outro erro aqui b = ... / det ! fica como exercicio print*, 'a=', a, 'b=', b end
Ajuste ponderado
Dependendo da situação, convém fazer um ajuste levando em conta o erro associado a cada ponto, i.e., atribuindo maior peso para pontos com um erro baixo e menor peso para os pontos onde o erro é sabidamente maior. Ou seja, se definirmos como o peso associado ao ponto , gostaríamos que ele seja maior quanto menor for o erro associado a este ponto. Se é o erro associado a este ponto, e considerando que o ajuste proposto é tal que minimiza a distância quadrática, podemos definir então como:
E o resíduo , para o cálculo do ajuste ponderado, será dada por:
Aplicando o mesmo procedimento anterior para minimizar , obtemos as equações
E, portanto, os valores de e são:
com :
Erro dos coeficientes
Vimos como obter os coeficientes (a e b para uma reta) do ajuste de um conjunto de dados.
Também como fazer esse ajuste quando os erros na variável dependente y não são todos iguais.
Mas como saber se esses coeficientes são "bons". Ou seja, que margem de erro eles tem.
Intuitivamente sabemos que quanto maior seja a dispersão dos em volta
da curva do ajuste, maior será nossa incerteza sobre os coeficientes.
Vamos ver como traduzir isso de forma quantitativa. Voltando as expressões dos coeficientes a e b, eles são funções de e , onde só os segundos são considerados como fonte de erro. Assim para ver como o erro neles propaga-se para os coeficientes, escrevemos:
Só os termos com y contribuem para a derivada. Como os aparecem somados, ao derivar respeito do i-esimo sobra apenas o que multiplica ele
Para incluir o efeito do erro de cada deveriamos somar i de 1 a N, mas como o erro pode ser para mais o menos fazemos uma media quadrática deles:
onde:
o somatório fica:
e com mais algumas simplificações chegamos a simples relação:
Analogamente para o b (que resulta ser mais fácil), se chega a:
Podemos interpretar essa expressões no caso sem ponderar, ou seja quando todos os erros são iguais:
onde
resultando:
Por tanto, três fatores determinam a qualidade do ajuste:
- E erro das medidas () que deve ser minimizado, porem está geralmente limitado pelo instrumento utililizado
- O número de medidas , quanto maior, melhor, porem vemos que o erro dos coeficientes diminui com a raiz dele
- Por último, a dispersão da viariável independente x () também, quanto maior, melhor
Por último, consideremos o caso mais simples, ajuste sem ponderar e sem informação sobre , apenas pares de dados {}. Nesse caso podemos estimar o valor de pelo assim:
Pois o resíduo pode ser interpretado como o somatório dos erros de cada ponto, tomados como a distancia entre a medida e o ajuste. O em lugar de , é pelo fato de que o ajuste já contem dois parâmetros ( e obtidos dos dados, então os erros individuais não são todos independentes.