Manuale di Gretl: Gnu Regression, Econometrics and Time-series Library
Indietro | Capitolo 9. Minimi quadrati non lineari | Avanti

# Accuratezza numerica

La Tabella 9-1 mostra i risultati dell'uso della procedura NLS di `gretl` sui 27 "Statistical Reference Dataset" forniti dal National Institute of Standards and Technology (NIST) statunitense, per il test del software di regressione non lineare [1]. Per ogni dataset, il file di test indicano due valori iniziali per i parametri, quindi il test completo riporta 54 stime. Sono stati eseguiti due test completi, uno usando derivate analitiche e uno usando approssimazioni numeriche; in entrambi casi si è usata la tolleranza predefinita[2]

Sulle 54 stime, `gretl` non riesce a produrre una soluzione in 4 casi, se vengono usate le derivate analitiche, e in 5 casi se vengono usate le approssimazioni numeriche. Dei quattro fallimenti in modalità derivate analitiche, due sono dovuti alla non convergenza dell'algoritmo Levenberg–Marquandt dopo il numero massimo di iterazioni (su `MGH09` e `Bennett5`, entrambi descritti dal NIST come di "alta difficoltà") e due sono dovuti ad errori di intervallo (valori in virgola mobile al di fuori dei limiti) occorsi durante il calcolo del Jacobiano (su `BoxBOD` e `MGH17`, rispettivamente descritti come di "alta difficoltà" e di "media difficoltà"). In modalità approssimazione numerica, l'ulteriore caso di fallimento è rappresentato da `MGH10` ("alta difficoltà", massimo numero di iterazioni raggiunto).

La tabella mostra informazioni su vari aspetti dei test: numero di fallimenti, numero medio di iterazioni richieste per produrre una soluzione, e due tipi di misura dell'accuratezza dei risultati per i parametri e per i loro errori standard.

Per ognuno dei 54 test eseguiti in ogni modalità, se è stata prodotta una soluzione, sono state confrontate le stime dei parametri ottenute da `gretl` con i valori certificati dal NIST. È stata definita la variabile "numero minimo di cifre corrette" per una data stima come il numero di cifre significative per cui la meno accurata delle stime di `gretl` coincide con il valore certificato. La tabella mostra i valori medio e minimo di questa variabile, calcolati sulle stime che hanno prodotto una soluzione; la stessa informazione è fornita per gli errori standard stimati [3]

La seconda misura di accuratezza mostrata è la percentuale di casi, tenendo conto di tutti i parametri di tutte le stime giunte a buon fine, in cui la stima di `gretl` concorda con il valore certificato per almeno 6 cifre significative, che sono mostrate in modo predefinito nei risultati delle regressioni di `gretl`.

Tabella 9-1. Regressione non lineare: i test NIST

| Derivate analitiche | Derivate numeriche
--- | --- | ---
Falimenti in 54 test | 4 | 5
Iterazioni medie | 32 | 127
Media del "numero minimo di cifre corrette", stima dei parametri | 8.120 | 6.980
Valore minimo del "numero minimo di cifre corrette", stima dei parametri | 4 | 3
Media del "numero minimo di cifre corrette", stima degli errori standard | 8.000 | 5.673
Valore minimo del "numero minimo di cifre corrette", stima degli errori standard | 5 | 2
Percentuale delle stime corrette a 6 cifre, stima dei parametri | 96.5 | 91.9
Percentuale delle stime corrette a 6 cifre, stima degli errori standard | 97.7 | 77.3

Usando derivate analitiche, i valori dei casi peggiori sia per le stime dei parametri che per gli errori standard sono stati migliorati a 6 cifre corrette restringendo il valore di tolleranza a 1.0e−14. Usando derivate numeriche, la stessa modifica del limite di tolleranza ha innalzato la precisione dei valori peggiori a 5 cifre corrette per i parametri e 3 cifre per gli errori standard, al costo di un fallimento in più nella convergenza.

Si noti la tendenziale superiorità delle derivate analitiche: in media le soluzioni ai problemi dei test sono state ottenute con molte meno iterazioni e i risultati sono più accurati (in modo evidente per gli errori standard stimati). Si noti anche che i risultati a 6 cifre mostrati da `gretl` non sono affidabili al 100 per cento per i problemi non lineari difficili (in particolare se si usano derivate numeriche). Tenendo presente questi limiti, la percentuale dei casi in cui i risultati sono accurati alla sesta cifra o più sembra sufficiente per giustificarne l'utilizzo in questa forma.

### Note

[1] | Per una discussione dell'accuratezza di `gretl` nella stima di modelli lineari, si veda Appendice C
[2] | I dati mostrati nella tabella derivano da una versione di `gretl` 1.0.9, compilata con `gcc` 3.3, collegata a `glibc` 2.3.2 ed eseguita in Linux su un PC i686 (IBM ThinkPad A21m).

[3]

Per gli errori standard, dalle statistiche mostrate nella tabella, è stato escluso l'outlier costituito da `Lanczos1`, che rappresenta un caso strano, composto da dati generati con un adattamento quasi esatto; gli errori standard sono di 9 o 10 ordini di grandezza più piccoli dei coefficienti. In questo caso `gretl` riesce a riprodurre gli errori standard solo per 3 cifre (con derivate analitiche) e per 2 cifre (con derivate numeriche).

Indietro | Partenza | Avanti
Dettagli sul codice | Risali | Costrutti loop