Linearização
E se eu quiser ajustar uma função mais complicada?
Vamos lá?
Depois de ter visto um exemplo simples de ajuste e o passo a passo geral, vamos ver o como lidar com casos em que a função buscada no ajuste não é tão simples.
- 1
- 2
- 3
Quando falamos sobre o ajuste de funções mais complicada, estamos nos referindo a...
Das funções abaixo, quais podem ser usadas em um problema de ajuste por quadrados mínimos lineares, sem precisar de qualquer manipulação?
Quais das afirmações abaixo são verdadeiras?
- A. Se a função $\phi$ é linear em seus coeficientes então $\phi$ é uma função linear.
- B. Se $\phi$ é uma função não linear de $x$ então não é possível usar a técnica de ajuste por quadrado mínimos linear.
- C. $\phi$ pode ser não linear em $x$, mas linear em seus coeficientes.
- D. Mesmo que $\phi$ seja não linear, exite uma transformação adequada que a linearize.
Na técnica de ajuste de curva pelo método de quadrados mínimos lineares, buscamos determinar os coeficientes de uma função $\phi$, que seja escrita como \begin{equation}\label{qm07:cl} \phi(x) = c_1\phi_1(x) + c_2\phi_2(x) + \cdots + c_n\phi_n(x), \end{equation} onde $\phi_1,\ldots,\phi_n$ são conhecidas e $c_1,\ldots, c_n$ são os coeficientes a determinar. Por exemplo, $$ \phi(x) = c_1 \cdot \underbrace{x^2}_{\phi_1(x)} + c_2 \underbrace{\sqrt{x^3 + 1}}_{\phi_2(x)}. $$ Repare que a função $\phi$ não precisa ser linear em $x$ (e raramente o será).
Porém, nem sempre funções montadas como em \eqref{qm07:cl} são suficientes. Um modelo clássico para descrever o crescimento populacional foi proposto por Thomas Malthus , em 1798 e ainda usado até hoje, dentro de certos limites. No modelo de Malthus, caso não haja limitação de recursos que impeçam o crescimento da população, a taxa de crescimento populacional é proporcional à população atual. Em termos matemáticos, se $p(t)$ é a população no instante $t$ e $\alpha$ é a taxa de natalidade líquida (natalidade menos a mortalidade), então $$ {dp\over dt} = \alpha p(t). $$ Esta equação diferencial tem como solução \begin{equation}\label{malthus} p(t) = p_0 e^{\alpha t}. \end{equation} Se quisermos descobrir $p_0$ e $\alpha$ que melhor ajustam a curva em \eqref{malthus} a dados de população, não poderemos usar o método de quadrados mínimos como vimos nas aulas passadas pois a função $p$ não se encaixa no padrão de \eqref{qm07:cl} (combinação linear de funções conhecidas).
Como vimos no vídeo, podemos tentar aplicar uma transformação que linearize o problema de ajuste.
Para o exemplo acima, $$ y \approx p(t) = p_0 e^{\alpha t} \quad \Rightarrow \quad z \equiv \ln(y) \approx \ln p(t) = \ln(p_0) + \alpha t, $$
Observe que nas variáveis $(t,z)$ o problema de ajuste passa a ser linear. Precisamos determinar $c_1 \equiv \ln(p_0)$ e $c_2 \equiv \alpha$ tal que $z$ seja aproximado no sentido de quadrados mínimos por $c_1 + c_2 t$.
Vejamos como lidar com isso, usando o Octave. Para começar, para o Brazil, temos os seguintes dados aferidos pelo IBGE.
Ano | População (milhões) |   | Ano | População (milhões) |
---|---|---|---|---|
1872 | 9.9 | 1960 | 70.8 | |
1890 | 14.3 | 1970 | 94.5 | |
1900 | 17.4 | 1980 | 121.2 | |
1920 | 30.6 | 1991 | 146.9 | |
1940 | 41.2 | 2000 | 169.6 | |
1950 | 51.9 | 2010 | 190.8 |
No Octave, entraremos com os dados fazendo:
# Dados da tabela: t = [1872 1890 1900 1920 1940:10:1980 1991 2000 2010]'; y = [9.9 14.3 17.4 30.6 41.2 51.9 70.8 94.5 121.2 146.9 169.6 190.8]'; # Nova variável dependente, computada a partir de y z = log(y);
Uma vez definidos os vetores que representam os valores tabelados e o vetor $z$ que representa a transformação de $y$, podemos construir o sistema normal e resolvê-lo.
# Matriz do sistema sobredeterminado P = [ones(12,1) t]; # Sistema normal A = P'*P; b = P'*z; # Repare que estamos usando a variável z, ao invés de y c = A\b c = -3.9671e+01 2.2406e-02
Descobertos os coeficientes da solução de quadrados mínimos para o problema linearizado, precisamos retornar aos coeficientes do problema original e, por fim, exibir a solução.
p0 = exp(c(1)); alpha = c(2); # Função ajustada p = @(t) p0 * exp(alpha * t); # Vetor denso para poder exibir o gráfico T = linspace(1872,2010); plot(t,y,'o',T,p(T))
Por fim, precisamos destacar que nem sempre é possível linearizar um problema de quadrados mínimos. No vídeo, vimos um exemplo de função que não poderia ser linearizada. Quando isto ocorre, o problema de quadrados mínimos continua fazendo sentindo, mas sua resolução não recai em um sistema linear, mas sim em um sistema não linear. Mesmo no caso em que uma linearização é possível, fica a pergunta: existe diferença entre a solução de quadrados mínimos do problema linearizado e a solução de quadrados mínimos do problema não linear? Que tal ver um exemplo antes de tirar conclusões?
1. Exiba, se possível, a transformação que lineariza as funções abaixo, com respeito aos coeficientes, ou seja, as transforma em uma combinação linear de funções conhecidas.
- $\phi(x) = \sin(a + bx)$
- $\phi(x) = a+\cos(bx)$
- $\phi(x) = \sqrt{ax+b}$
- $\phi(x) = 2^{(a+bx)}$
- $\phi(x) = \displaystyle{x+1\over ax^3+bx^2 + 1}$
(a) $z \equiv \arcsin(y)$; (b) não é possível linearizar; (c) $z\equiv y^2$; (d) $z\equiv \log_2 y$; (e) $z \equiv (x+1)/y-1.$