La regressione non-lineare

Transcript

La regressione non-lineare
La regressione non-lineare
Andrea Onofri
Dipartimento di Scienze Agrarie ed Ambientali
Università degli Studi di Perugia
Versione on-line: http://www.unipg.it/ onofri/RTutorial/index.html
Indice
1 Introduzione
1.1 Linearizzazione della funzione . . . . . . . . . . . . . . . . . .
1.2 Approssimazione della vera funzione tramite una polinomiale
in X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Adattamento di funzioni curvilinee qualunque . . . . . . . . .
1
2
2 Inferenze statistiche e verifiche delle assunzioni di base
4
3 La regressione non-lineare con R
4
4 Il package drc
7
2
3
5 Ricerca dell’intervallo di confidenza per la X
10
6 Trasformazione del modello
12
7 Per approfondire
13
1
Introduzione
Difficilmente i fenomeni biologici possono essere descritti da funzioni lineari, salvo il caso in cui si consideri un intervallo di variazione della variabile
indipendente piuttosto ristretto. Più comunemente, le relazioni di maggior
interesse agrario e biologico in genere (per esempio la crescita di una coltura, la cinetica degradativa degli erbicidi nel terreno, la risposta produttiva
delle colture a densità crescenti di malerbe o a dosi crescenti di concime,
la risposta fitotossica di una specie infestante alla dose di un erbicida) sono curvilinee, posseggono punti di massimo o minimo, flessi e, soprattutto,
asintoti.
E’ quindi di fondamentale importanza pratica la capacità di adattare ai
dati sperimentali funzioni curvilinee, il che può essere ottenuto in vari modo:
1
1
INTRODUZIONE
2
1. linearizzazione della funzione tramite trasformazione delle variabili;
2. approssimazione della vera funzione curvilinea con una polinomiale in
X;
3. adattamento ai dati sperimentali di funzioni curvilinee, tramite metodiche di regressione non-lineare.
1.1
Linearizzazione della funzione
Alcune funzioni matematiche curvilinee possono essere linearizzate con un
semplice trasformazione dei dati. Per esempio, Una funzione esponenziale
del tipo:
Y = AeX
può essere linearizzata con una trasformazione logaritmica, come segue:
log(Y ) = log(A) + X
I parametri di questo modello possono essere facilmente determinati con
le usuali tecniche di regressione lineare.
Un altro esempio è dato dalla funzione di Michaelis-Menten per la descrizione della cinetica delle reazioni chimiche:
Y =
a·x
b+x
Questa funzione può essere linearizzata trasformando i due termini nel
loro reciproco:
1
1
b 1
= + ·
= a0 + b0 · X
Y
a a X
Le funzioni linearizzabili per semplice trasformazione delle variabili sono
dette lineari per trasformazione (Bates e Watts, 1988) e presentano il vantaggio di semplificare molto i calcoli richiesti per la stima dei parametri. Un
grave svantaggio è dato dal fatto che trasformando la Y si trasforma anche
la distribuzione degli errori; quindi, se è ragionevole assumere che i dati nella
scala originale siano normalmente distribuiti e omoschedastici, la trasformazione introduce distorsioni dal punto di vista delle assunzioni di base per
l’inferenza statistica, alle quali bisogna porre particolare attenzione.
1.2
Approssimazione della vera funzione tramite una polinomiale in X
In generale, relazioni matematiche curvilinee possono essere approssimate
tramite funzioni polinomiali di ordine n. Si tratta di una famiglia di funzioni
1
INTRODUZIONE
3
molto flessibile, che contiene la funzione lineare come caso particolare (n=1)
e che permette di descrivere curvature anche molto complesse semplicemente
aumentando l’ ordine della funzione. In questo modo è possibile ottenere un
adattamento ai dati sperimentali teoricamente anche perfetto.
Le funzioni polinomiali sono un tipico esempio di funzioni non-lineari
nelle variabili, ma lineari nei parametri; esse possono essere trattate ricorrendo alle metodiche di calcolo normalmente utilizzate per la regressione
lineare.
Gli svantaggi delle funzioni polinomiali sono legati al fatto che queste
presentano raramente giustificazione biologica. Per esempio, con le funzioni
polinomiali non è possibile descrivere relazioni asintotiche, che sono invece
molto comuni in biologia.
Inoltre, le polinomiali possono approssimare bene una funzione solo in
un intervallo della X molto ristretto e non consentono nessuna estrapolazione al di fuori di questo, dato che possono portare a stime della risposta
completamente insensate biologicamente.
Per questi motivi l’ uso delle funzioni polinomiali dovrebbe essere limitato ai casi in cui non si abbia nessuna conoscenza a priori dell’ andamento del
fenomeno. Tra l’ altro i moderni supporti informatici consentono di risolvere
il problema dell’ adattamento diretto di funzioni curvilinee qualunque senza
i lunghi calcoli manuali che venivano richiesti fino ad alcuni anni fa.
1.3
Adattamento di funzioni curvilinee qualunque
Per quanto sopra accennato, ogniqualvolta possibile, si preferisce utilizzare
metodologie di regressione non-lineare, che permettono di adattare direttamente funzioni curvilinee di qualunque tipo ai dati sperimentali. La stima
dei parametri, tuttavia, non è immediata come nel caso delle regressioni lineari; il calcolo risulta piuttosto complicato rendendo obbligatorio l’ impiego
del personal computer per ottenere risultati in tempi ragionevolmente brevi.
Per l’esecuzione delle regressioni non-lineari vengono generalmente impiegati metodi iterativi (Gauss-Newton, Steepest Descent, Marquardt, Simplex, si rinvia per ulteriori informazioni alla bibliografia riportata in calce),
nei quali è necessario fissare delle stime iniziali dei parametri, che vengono corrette in ogni iterazione successiva fino ad ottenere la convergenza sui
valori che minimizzano la funzione dei minimi quadrati. Ovviamente, trattandosi di metodi iterativi, le stime ottenute sono solo un’approssimazione
(accettabile!) dei valori reali.
2
2
INFERENZE STATISTICHE E VERIFICHE DELLE ASSUNZIONI DI BASE4
Inferenze statistiche e verifiche delle assunzioni
di base
Le assunzioni parametriche di base relative ai modelli non-lineari sono le
stesse dei modelli lineari e, di conseguenza, gli strumenti diagnostici sono
analoghi. Bisogna tuttavia menzionare il fatto che, dato l’impiego di metodi
iterativi per la ricerca dei valori dei parametri, tutti i risultati a cui si perviene (stima dei parametri, della varianza residua e numero dei gradi di libertà
relativi) sono solo una approssimazione di quelli reali. Per questo motivo,
nel caso non-lineare i metodi grafici (analisi dei residui) sono largamente
preferiti.
Nel caso della regressione non-lineare, è necessario valutare molto attentamente la correlazione tra i parametri, che può essere il sintomo di (sovraparametrizzazione), cioè di aver incluso nell’equazione un numero di parametri
non giustificato dai dati sperimentali.
Per quanto riguarda le trasformazioni stabilizzanti, valgono le stesse considerazioni relative ai modelli lineari ed è possibile ricorrere alla famiglia di
trasformazioni descritta da Box e Cox (1964). L’unica differenza rispetto
alle regressioni lineari è nel fatto che operare la trasformazione della sola
variabile dipendente comporta anche la modifica della scala sulla quale vengono stimati i parametri, che quindi non conservano il loro valore biologico.
Dato che spesso le regressioni non-lineari vengono eseguite proprio perchè
si è interessati all’informazione contenuta nei parametri di un modello, si
preferisce adottare la cosiddetta tecnica della trasformazione di entrambe le
parti, o metodo TBS (”Transform Both Sides”) e trasformare quindi sia i
dati osservati per la variabile dipendente, sia il modello:
Y λ = f (X)λ
In questo modo si ottengono i parametri della funzione sulla scala originale come se la trasformazione non fosse stata eseguita per niente.
3
La regressione non-lineare con R
Immaginiamo di voler determinare la funzione di crescita di una coltura. I
dati osservati sono:
3
LA REGRESSIONE NON-LINEARE CON R
Giorni
dalla semina
35.00
39.00
46.00
53.00
60.00
67.00
74.00
81.00
5
Peso
420.50
1660.70
3195.00
5870.10
7591.30
8784.80
9422.20
10328.10
Vogliamo adattare ai dati anzidetti una funzione di Gompertz, del tipo:
y = a · exp(−b · exp(−c · x))
Per eseguire la regressione non lineare possiamo utilizzare la funzione nls(), che è già implementata nel package di base di R. La sintassi è
abbastanza semplice:
nls(formula, start, trace)
dove formula è la funzione da adattare ai dati, start è la lista dei valori
iniziali, trace (FALSE o TRUE) permette di richiedere la stampa a video
dei risultati delle iterazioni.
> dati
DAS
DW
1 35
420.5
2 39 1660.7
3 46 3195.0
4 53 5870.1
5 60 7591.3
6 67 8784.8
7 74 9422.2
8 81 10328.1
> model<-nls(DW~a*exp(-exp(b*(c-DAS))),
start=list(a=10000, b=0.08, c=47), trace=TRUE, data=dati)
2287456 : 1.0e+04 8.0e-02 4.7e+01
296223.3 : 1.079510e+04 8.320439e-02 4.769160e+01
294817.9 : 1.078999e+04 8.314129e-02 4.761957e+01
294817.7 : 1.078956e+04 8.315383e-02 4.761927e+01
294817.7 : 1.078956e+04 8.315391e-02 4.761925e+01
> summary(model)
3
LA REGRESSIONE NON-LINEARE CON R
6
Formula: DW ~ a * exp(-exp(b * (c - DAS)))
Parameters:
Estimate Std. Error t value Pr(>t|)
a 1.079e+04 3.351e+02
32.20 5.43e-07
b 8.315e-02 6.610e-03
12.58 5.64e-05
c 4.762e+01 6.470e-01
73.60 8.77e-09
--Signif. codes: 0 ’***’ 0.001 ’**’ 0.01
***
***
***
’*’ 0.05 ’.’ 0.1 ’ ’ 1
Residual standard error: 242.8 on 5 degrees of freedom
Correlation of Parameter Estimates:
a
b
b -0.8455
c 0.7618 -0.5558
>
Il vantaggio di nls() è che è molto facile immettere una qualunque
funzione, anche se non è sempre altrettanto facile reperire delle stime iniziali dei parametri accettabili. In questo senso possono tornare utili alcune funzioni di self starting già implementate in R, che si occupano da
sole del reperimento delle stime iniziali dei parametri. Per esempio, la funzione di Gompertz anzidetta può essere richiamata utilizzando la funzione
SSgompertz(X, Asym, b2, b3):
> model<-nls(DW ~ SSgompertz(DAS, Asym, b2, b3), data=dati, trace=T)
294817.7 : 1.078955e+04 5.244305e+01 9.202095e-01
> summary(model)
Formula: DW ~ SSgompertz(DAS, Asym, b2, b3)
Parameters:
Estimate Std. Error t value Pr(>t|)
Asym 1.079e+04 3.351e+02 32.201 5.43e-07 ***
b2
5.244e+01 1.512e+01
3.468
0.0179 *
b3
9.202e-01 6.083e-03 151.280 2.39e-10 ***
--Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
Residual standard error: 242.8 on 5 degrees of freedom
Number of iterations to convergence: 0
4
IL PACKAGE DRC
7
Achieved convergence tolerance: 1.567e-06 |
Ad oggi, esistono funzioni di SelfStarting per nls() relative alle seguenti
funzioni: SSminmen(), SSlogis(), SSweibull(). Per queste e per altre
funzioni può essere reperito l’help all’interno di R.
All’interno del package aomisc è possibile reperire: decrescita esponenziale (NLSexpoDecay()), equazione di Freundlich (NLSpowerCurve()), regressione logaritmica (NLSlogReg), esponenziale negativa (NLSnegExp()),
crescita monomolecolare (NLSmonoGrowth()), regressione asintotica (NLSasymReg()),
crescita logistica a tre parametri (NLSlogiGrowth()), funzione di Hill (NLShillCurve()),
Weibull (NLSweibull()).
4
Il package drc
Oltre alla funzione nls() in R esiste un package molto comodo, che si chiama
drc(), che implementa tutte le funzioni necessarie per l’analisi di regressione
non-lineare.
Dopo aver caricato il package con il comando:
library(drc)
possiamo utilizzare il dataset (incluso nel package) beetGrowth:
> beetGrowth
DAE weightInf
1
21
0.06000
2
21
0.06000
3
21
0.11000
4
27
0.20000
5
27
0.20000
6
27
0.21000
7
38
2.13000
8
38
3.03000
9
38
1.27000
10 49
6.13000
11 49
5.76000
12 49
7.78000
13 65 17.05000
14 65 22.48000
15 65 12.66000
16 186 21.51010
17 186 26.25887
18 186 27.67733
>
weightFree
0.0715091
0.0662547
0.0747931
0.3368074
0.3952256
0.2520960
2.3225072
1.7163224
1.2189231
11.7761096
13.6191507
12.1462931
33.1067720
24.9648226
34.6577561
38.8329912
27.8375016
37.7165427
4
IL PACKAGE DRC
8
Si tratta della crescita di una coltura di barbabietola da zucchero in
presenza ed in assenza di piante infestanti. Ai dati è possibile adattare una
funzione di Gompertz, in modo molto semplice:
model <- drm(weightFree ~ DAE, data=beetGrowth,
fct=gompGrowth.1(), adjust="bc1")
notare l’argomento fct che permette di specificare una funzione (scelta
tra quelle disponibili), mentre l’argomento adjust imlementa la procedura
di Box e Cox, che sceglie automaticamente il valore di lambda più opportuno
per la trasformazione.
La funzione summary() restituisce le stime, indicando il valore lambda
utilizzato per la correzione:
> summary(model)
Model fitted: Gompertz Growth Model (3 parms)
Parameter estimates:
Estimate Std. Error
t-value
p-value
c:(Intercept)
0.0507220 0.0040974 12.3790341 2.823e-09
m:(Intercept)
0.9681277 0.1598079 6.0580709 2.191e-05
plateau:(Intercept) 44.2395691 8.0757317 5.4780880
1e-04
Residual standard error: 0.3730283 (15 degrees of freedom)
Non-normality/heterogeneity adjustment through optimal Box-Cox
transformation
Estimated lambda: 0
Confidence interval for lambda: [-0.176,0.195]
La funzione anova() esegue un test di lack of fit:
> anova(model)
Lack-of-fit test
One-way ANOVA
DRC model
>
ModelDf
RSS Df F value p value
12 0.46231
15 2.08725 3 14.0593 0.0003
Vediamo che, in questo caso il test è significativo. La funzione plot()
permette di ottenere un grafico dei dati e della funzione. Per default, viene
4
IL PACKAGE DRC
9
plottato il logaritmo della x, se ciò non corrisponde alla propria volontà è
necessario indicarlo, utilizzando l’argomento log:
> plot(model)
Osserviamo che la funzione di Gompertz è poco adatta, in quanto non
permette una buona stima dell’asintoto superiore. Si può quindi provare
ad utilizzare una funzione logistica, caricando il package aomisc, che la
contiene:
> library(aomisc)
> model <- drm(weightFree ~ DAE, data=beetGrowth,
+
fct=logiGrowth.1(), adjust="bc1")
> summary(model)
Model fitted: Logistic Growth Model (3 parms)
Parameter estimates:
Estimate Std. Error
t-value
p-value
init:(Intercept)
1.7457e-03 1.0406e-04 1.6776e+01 3.963e-11
m:(Intercept)
1.8568e-01 2.9883e-03 6.2138e+01 8.205e-20
plateau:(Intercept) 3.5417e+01 3.5683e+00 9.9253e+00 5.515e-08
5
RICERCA DELL’INTERVALLO DI CONFIDENZA PER LA X
10
Residual standard error: 0.234448 (15 degrees of freedom)
Non-normality/heterogeneity adjustment through optimal Box-Cox
transformation
Estimated lambda: 0
Confidence interval for lambda: [-0.176,0.195]
> anova(model)
Lack-of-fit test
One-way ANOVA
DRC model
>
ModelDf
RSS Df F value p value
12 0.46231
15 0.82449 3 3.1336 0.0656
In questo caso possiamo osservare che il fitting è migliorato notevolmente. Il package drc è estremamente comodo, perchè contiene tutte le funzioni
necessarie per eseguire analisi di regressione adeguate. Le funzioni disponibili (coni relativi self-starter ) sono log-logistica a due tre e quattro parametri (LL.2(), LL.3(), LL.4()), weibull a due, tre, quattro parametri
(W1.2(), W1.3(), W1.4()), sigmoidale con picco iniziale (b3(), b4() e b5()),
Gompertz (tre parametrizzazioni alternative: gompGrowth.1(), gompGrowth.2(), gompGrowth.3()
decrescita esponenziale (expDecay()). Nella library aomisc sono contenute altre funzioni quali: allometrica (allometric.1()), crescita esponenziale
(expoGrowth()), degradazione del primo ordine (firstOrder()), iperbole
rettangolare (hyperbolic.1()), crescita logistica (tre parametrizzazioni alternative logiGrowth.1(), logiGrowth.2(), logiGrowth.3()), crescita
monomolecolare (monGrowth()), equazione di Freundlich (DRCpowerCurve()),
loglineare (DRClogCurve()), esponenziale negativa a due parametri (DRCnegExp()),
regressione asintotica (DRCasymReg()), valori estremi (DRCextremeValue()),
funzione di Hill (DRChill()), Chapman-Richard (DRCchapman()).
E’possibile definire funzioni personalizzate, anche se non in modo semplice come con nls().
5
Ricerca dell’intervallo di confidenza per la X
In taluni casi, abbastanza frequenti per la verità, l’ analisi di regressione
viene eseguita per stimare o predire il valore della X corrispondente ad un
dato Y0 . Per esempio, la concentrazione di un erbicida nel terreno può essere determinata misurando lo sviluppo di una pianta-test allevata su di
esso. In questo caso è necessario in primo luogo determinare la curva standard di risposta della pianta test allevata su terreno a concentrazione nota
5
RICERCA DELL’INTERVALLO DI CONFIDENZA PER LA X
11
e successivamente utilizzare l’ inversa della funzione di calibrazione per prevedere il valore di concentrazione di un terreno conoscendo lo sviluppo della
pianta-test.
Mentre è facile (con l’approssimazione lineare) stimare il limite di confidenza della Y per una data X, il problema contrario non è di facile soluzione.
Esistono due strade praticabili: la riparametrizzazione del modello e l’uso
della banda d’inferenza per la risposta attesa.
La riparametrizzazione del modello è una scelta utile; immaginiamo un
modello di cinetica del primo ordine (esponenziale decrescente):
Y = a · e−k·t
dove Y è la concentrazione di una sostanza, t è il tempo, a è la concentrazione iniziale mentre k è il tasso di degradazione. Nella gran parte
dei casi, questo modello viene utilizzato per prevedere la ’semivita’, cioè il
tempo richiesto per avere una concentrazione pari alla metà di quella iniziale
(a/2 )
Se t1/2 è la semivita, si può notare che:
a · exp(−k · t1/2 ) = a2
exp(−k · t1/2 ) = 12 (−k · t1/2 ) = log 12
k · t1/2 = log (2)
k = log(2)
t
1/2
Si può quindi pensare di riparametrizzare il modello esponenziale in
questo modo:
Y = a · exp(−
log (2)
· t)
t1/2
Si possono quindi ottenere i limiti di confidenza della semivita direttamente tramite l’analisi di regressione non-lineare.
La seconda strada percorribile è quella di utilizzare la banda d’inferenza
della risposta attesa per un dato X (Snedecor e Cochran, 1991). La procedura è illustrata in figura e, dal punto di vista geometrico, il calcolo è chiaro:
data una curva e la banda di confidenza per la Y attesa (linee tratteggiate),
i limiti di confidenza per la X corrispondente ad Y = 60 sono dati dai valori corrispondenti ai punti in cui la linea orizzontale passante per Y = 60
incontra le curve che delimitano la banda d’ inferenza (0,17 e 0,21).
6
TRASFORMAZIONE DEL MODELLO
12
La soluzione numerica, immediata nel caso di regressioni lineari (vedi
Bliss, 1967), non è altrettanto semplice nel caso di regressioni non lineari;
una soluzione esplicita non è riportata in letteratura ed occorre quindi utilizzare metodi numerici di calcolo. Lo svantaggio di questa procedura è che
i limiti di confidenza cosı̀ ottenuti non sono simmetrici.
6
Trasformazione del modello
La trasformazione del modello dalla sua forma originaria in una forma
alternativa può rendersi necessaria per diversi motivi:
1. il modello iniziale non presenta un buon adattamento ai dati sperimentali e l’ analisi dei residui suggerisce deviazioni sistematiche che
fanno pensare alla possibilità di includere un ulteriore parametro. Per
esempio nel caso in cui in una curva dose-risposta i residui sono prevalentemente positivi nella parte iniziale, facendo pensare all’ esistenza
di un effetto stimolante dell’ erbicida a basse dosi.
2. Alcuni parametri non sono significativi. In questo caso è bene eliminare i parametri dal modello. Talvolta l’ eliminazione dei parametri non è
possibile e quindi può essere presa in considerazione la possibilità di sostituire il parametro con un valore arbitrario determinato per esso sulla
base dell’ andamento dei dati sperimentali e di conoscenze pregresse di
carattere biologico. Quest’ ultima soluzione è tuttavia da considerare
con attenzione e da valutare con molto buon senso; l’ inclusione di
vincoli nel modello, in quanto operazione arbitraria, dovrebbe essere
eseguita solo se non esistono ulteriori alternative (Streibig, 1980).
3. Alta correlazione tra i parametri. Anche in questo caso i parametri
troppo correlati dovrebbero essere eliminati dal modello, considerando
7
PER APPROFONDIRE
13
che è sempre necessario utilizzare il modello più semplice tra quelli
capaci di descrivere i dati in una certa situazione.
Una volta che il modello è stato modificato, o in tutte le situazioni in
cui più modelli possono essere impiegati per descrivere i dati sperimentali,
può rendersi necessario un confronto, con il fine di valutare quale modello è
preferibile adottare.
In questo caso, è necessario distinguere tra modelli annidati (nested ) e
non. I modelli annidati sono quelli in cui l’ uno si riduce all’ altro semplicemente uguagliando a zero uno o più parametri. In questo caso il confronto si
esegue sulla base di un test di probabilità, quale un test F. Infatti, l’ esclusione di un parametro dal modello comporterà certamente un più o meno
elevato incremento della devianza residua. Se RSSc è la devianza residua
del modello più complesso associata a DFc gradi di libertà e se RSSi è il
residuo del modello semplificato, associato a DFi gradi di libertà, l’ incremento della devianza residua dovuto all’ eliminazione dei parametri è dato
da RSSi − RSSc con DFi − DFc gradi di libertà. Il rapporto tra:
F(DFi −DFc );α =
(RSSi −RSSc )
(DFi −DFc )
RSSc
DFc
ha una distribuzione F e può essere confrontato con i valori tabulati, per
il prescelto livello di probabilità. Se il test non risulta significativo il modello
semplificato può essere ragionevolmente accettato.
Da tener presente che anche in questo caso l’ analisi risulta solamente
approssimata, a causa della non-linearità intrinseca dei parametri stimati.
Nel caso di modelli non nidificati, la scelta dovrebbe essere basata su
considerazioni di natura biologica ed il modello più significativo in tal senso
dovrebbe essere accettato. Se non esistono buone ragioni biologiche per
preferire un modello all’ altro è bene scegliere il modello con la minore
devianza residua e con la migliore distribuzione dei residui.
7
Per approfondire
Bates D. M. e Watts D. G., 1988. Nonlinear regression analysis and its
applications. John Wiley and Sons, Inc., New York, pp.365
Bliss C. I., 1967. Statistics in biology. McGraw-Hill Inc., Carrol R. J. e
Ruppert D., 1988. Transformation and weighting in regression. Chapman
and Hall, London
Draper N. R. e Smith H., 1981. Applied regression. John Wiley and
Sons, Inc., New York, 2nd ed.
Gunther P., 1991. Biotests mit hoheren Pflanzen zur Untersuchung
und Bewertung des Verhaltens von Sulfonylharnstoff-Herbiziden un anderen Xenobiotika im Boden. Dissertation fur des akademischen Grades eines
Doktors der Gartenbauwissenschaften, University of Hannover, Hannover
7
PER APPROFONDIRE
14
Mead R. e Pike D. J., 1975. A review of response surface methodology
from a biometric viewpoint. Biometrics 31, 803-851.
Ratkowsky D.A., 1990. Handobook of nonlinear regression models. Marcell Dekker Inc., New York, 241 pp.
Ruppert D., Cressie N. e Carrol R. J., 1989. A trasformation/weighting
model for estimating Michaelis-Menten parameters. Biometrics 45, 637.
Snedecor G. W. e Cochran W. G., 1991. Statistical methods. IOWA
State University Press, AMES (Iowa), pp.503
Streibig J. C., 1980. Models for curve-fitting herbicide dose response
data. Acta Agricolturae Scandinavica 30, 59-64.