• Aucun résultat trouvé

Com o software de estatística hoje disponível, ajustar uma equação de Gompertz não oferece qualquer dificuldade. Por exemplo, no R pode ser feito recorrendo ao comando nls, no Scilab utilizando os comandos datafit ou lsqrsolve, usando este último o algoritmo Levenberg-Marquardt, tido como dos mais eficientes para ajustar equações a dados experimentais (e.g., Soetaert e Herman, 2009:331).

No entanto, estes procedimentos requerem que sejam propostos valores iniciais de que partem para procurar os valores dos parâmetros associados ao melhor ajustamento. Se os valores iniciais não são adequados, mergulhamos no processo de tentativa e erro que por vezes pode ser demorado e frustrante.

6 Crescimento Dependente da Densidade II: Equação de Gompertz

Vou introduzir duas alternativas que permitem evitar este eventual contratempo: o algoritmo SBFASTG e o método de Khilm.

Se sobre este assunto só lhe interessa ajustar expedita e genericamente uma EGZ, então siga para o Apêndice I, no fim deste capítulo. Verificará que um dos atributos favoráveis da EGZ é poder ser facilmente ajustada a um conjunto de dados.

6.10.1 O Algoritmo Expedito SBFASTG

Há cerca de três décadas, quando comecei a minha inquirição teórica sobre os povoamentos florestais, estabeleci o algoritmo SBFASTG. Este algoritmo usa só três idades to, t1,

t2, e os valores associados da variável v0, v1, v2 para verificar se eles pertencem a uma EGP, e se

tal se verificar calcula c e R. Os passos do algoritmo são dois: 1. Calcular as razões: r1=v0/v1 e r2=v1/v2

2. Procurar os valores de c e R que tornem iguais (dentro da tolerância desejada) as duas seguintes quantidades:

a1 = r1(1 / (1 - exp(-c * (t1 - t0)))) (6.56)

a2 = r2 (1 / (exp(-c * (t1 - t0)) - exp(-c * (t2 - t0)))) (6.57)

Se o algoritmo tenta todos os valores de c do ciclo, sem satisfazer a igualdade das eqs. (6.56) e (6.57), os valores não satisfazem a EGZ.

O emprego deste algoritmo e os bons resultados que produz encontram-se ilustrados adiante, e em Barreto (2010: secção 4.11.3).

6.10.2 O Método de Khilmi

O método de Khilmi (Khilmi, 1962:112-113) é assim descrito: dada uma série de idades t0, t1, ...tm, ... tn e os valores associados de y0, y1,...ym, ... yn estabelecer o seguinte sistema de equações: (6.58)

(6.59)

O valor de c é igual ao valor absoluto de b, e yf é a exponencial do valor absoluto da razão

a/b.

Este método é extremamente preciso no estabelecimento dos parâmetros desejados (Barreto, 2010: secção 4.11.2). Vou apresentar uma ilustração. Para as idades (t) 5, 15, 33, 70, 81, 100, 133, calculei a equação 400*0.04exp(-0.05*t). Apliquei o algoritmo no Scilab, obtendo as seguintes estimativas: c= 0,0504162, yf=399,1388 e R=0.0816995, com t0=5. A equação assumia

t0=0, para passarmos para este valor inicial da idade fazemos 0.0816995exp(-0.5(0-5))=0.0401109. O

gráfico, que comprova a boa qualidade do ajustamento, encontra-se na figura 6.25.

Ricker (1975), publicou o resultado de medições anuais do comprimento do arenque lacustre (Coregonus artedi) medida em milímetros. A série prolonga-se dos 2 aos 11 anos e os seus valores vão dos 172 aos 306 mm. Ajustamos a este dados uma EGZ recorrendo ao método de Khilmi obtendo o ajustamento inserido na figura 6.26.

absoluto percentual médio das estimativas é 0,0004592.

Figura 6.25. Ajustamento da EGZ usando o método de Khilmi. Para mais informação ver o texto

Na utilização do método SBFASTG, usámos as idades 2, 6 e 11 anos e os respetivos comprimentos 172, 280 e 306 mm. Os valores do ajustamento obtidos com este método são c=0,44337, R1=0,560375, donde se obtem yf= 309,33165 (172/0,5560375), sendo igualmente t0=2.

O erro absoluto percentual médio das estimativas é 0.0068242, superior ao obtido com o método de Khilmi.

Na figura 6.27, para mais fácil comparação, insiro o resultado dos dois ajustamentos e os dados de Ricker.

Figura 6.26. Ajustamento da EGZ pelo método de Khilmi, aos dados do comprimento da espécie Coregonus artedii, disponíveis em Ricker (1975)

6 Crescimento Dependente da Densidade II: Equação de Gompertz

Figura 6.27. Comparação dos ajustamentos dos dados de Ricker recorrendo aos métodos SBFASTG e Khilmi

Uma questão legítima é a seguinte: como se ajusta a equação logística aos dados de Ricker? Vou ajustar a EGZ e a logística recorrendo ao R. A listagem utilizada é a seguinte:

Caixa 6.4. Ajustamentos das equações logística e de Gompertz aos dados de Ricker

O bom ajustamento da EGZ é seguinte: Formula: y ~ a * b^exp(-c * (t - 2))

Parameters:

Estimate Std. Error t value Pr(>|t|) a 3.076e+02 1.589e+00 193.63 2.59e-14 *** b 5.563e-01 5.759e-03 96.59 3.36e-12 *** c 4.465e-01 1.730e-02 25.81 3.35e-08 *** ---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.032 on 7 degrees of freedom Number of iterations to convergence: 5

Achieved convergence tolerance: 3.334e-06

O menos adequado ajustamento da logística tem a seguinte expressão: Formula: y ~ d/(1 + ((d - 172)/172) * exp(-f * t))

Parameters:

##comprimento do arenque lacustre de Ricker em mm split.screen(figs=c(1,2)) t<-c(2,3,4,5,6,7,8,9,10,11) y<-c(172, 210, 241, 265, 280, 289, 294, 302, 299, 306) fit<-nls(y~a*b^exp(-c*(t-2)), start=c(a=307, b=0.2, c=0.4)) fit summary(fit) av<-seq(2,11,1) bv<-predict(fit,list(t=av)) screen(1)

plot(y,main='Gompertz', xlab='Idade, anos', ylab='Comprimento, mm') lines(bv) fit2<-nls(y~d/(1+((d-172)/172)*exp(-f*t)), start=c(d=307, f=0.7)) fit2 summary(fit2) bv1<-predict(fit2,list(t=av)) screen(2)

plot(y, main='Logística', xlab='Idade, anos',ylab='Comprimento, mm') lines(bv1)

A<-AIC(fit) A

B<-AIC(fit2) B

6 Crescimento Dependente da Densidade II: Equação de Gompertz

Estimate Std. Error t value Pr(>|t|) d 346.07385 34.19853 10.120 7.77e-06 *** f 0.20692 0.05163 4.008 0.00391 ** ---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 15.57 on 8 degrees of freedom Number of iterations to convergence: 9

Achieved convergence tolerance: 2.88e-06 Os valores de AIC são os seguintes:

> A<-AIC(fit) > A [1] 46.99654 > > B<-AIC(fit2) > B [1] 87.05897

O valor de AIC associado ao ajustamento da EGZ (47) é claramente inferior ao do ajustamento da logística (87), pelo que o padrão de crescimento do comprimento do arenque lacustre é praticamente gompertziano. A listagem também nos proporciona o gráfico da figura 6.28.

Figura 6.28. Ajustamentos da EGZ e da logística aos dados de Ricker (1975)

6.10.3 Ajustar um Modelo Recursivo

Em benefício da completude, vamos também apresentar o ajustamento de um modelo discreto da EGZ. Seja o modelo da equação (6.41) que relembramos:

yt+1=yt exp(c log(yf)-c log(yt)) (6.60)

Vamos dividir ambos os membros da equação por yt e fazer o valor constante c*log(yf)=d

pelo que temos:

(6.61) Logaritmizemos a expressão sendo q=ln(yt+1/yt), para obter:

q=d-c ln yt (6.62)

Transformámos o nosso problema no ajustamento de uma regressão linear. Agora temos de criar as variáveis adequadas às transformações introduzidas.

6 Crescimento Dependente da Densidade II: Equação de Gompertz

Seja uma série temporal de n dados y1, y2,…. yn. Vamos construir duas variáveis auxiliares,

cujos conjuntos de valores são: y1=[y1, y2, y3, ……yn-1]

y2=[y2, y3, ……yn]

pelo que teremos:

q=[y2/y1, y3/y2, ……yn/yn-1]

Fazendo ln y1=yl, a regressão a ajustar será:

q=d-c yl

Obtivemos a trivial regressão linear que até as calculadoras menos caras ajustam.

Aplicando este procedimento aos mesmos dados de Ricker (1975), no Scilab, usando o comando reglin, que escreve a regressão que ajusta como y=a*x+b, este estimou a=-0,3488225, e b=2,0001611, pelo que temos yf=exp (b/-a)=309,21477, c=-a=0,3488225, sendo o erro absoluto

percentual médio igual a 0.4828878. É o ajustamento feito com maior erro. Na figura 6.29, apresentamos o gráfico do ajustamento conseguido.

Figura 6.29. Ajustamento da equação (6.41) aos dados de Ricker

Para maior facilidade de comparação resumo os ajustamentos feitos no quadro 6.3.

Quadro 6.3. Resumos dos ajustamentos obtidos para os dados de Ricker.Erro absoluto percentual médio=eapm

Método c yf R1 eapm

SBFASTG 0,44337 309,33165 0,56037 0,00682

Khilmi 0,44776 307,04940 0,56017 0,00046