SMAC – 1: Statistical Methods in Analytical Chemistry vol. 1
© 2003 – gian piero luciani
Email : gianpiero@mac.com homepage: http://homepage.mac.com/gianpiero

Premessa:

Questo set di programmi consente di eseguire i test statistici ed i calcoli necessari a valutare la precisione (ripetibilità stretta) di un metodo di analisi chimica (in particolare) e di una serie di misure (in generale).
Questo programma nasce dalla necessità di eseguire verifiche secondo le procedure previste dal Manuale Unichim 179/01 (edizione 2001): Linee guida per la validazione di metodi analitici nei laboratori chimici – “Valutazione della precisione (ripetibilità stretta) di un metodo analitico eseguito in unico laboratorio da un solo operatore su di un unico strumento in un breve intervallo di tempo.”
Sono stati aggiunti alcuni test proposti dal Professor Giovanni Mori – Dipartimento di Chimica Generale ed Inorganica, Chimica Analitica, Chimica Fisica - Università di Parma, illustrati nel corso “Qualità del dato analitico e validazione dei metodi di analisi chimica” organizzato da CIMACQ (Consorzio Interuniversitario di Ricerca Metodologie Analitiche e Controllo di Qualità) presso l’Università di Ferrara 15-16 aprile 2003.
Fonte di ispirazione ed elemento fondamentale nell’impostazione del programma è stato il volume monografico Peter C. Meier – Richard E. Zünd “Statistical Methods in Analytical Chemistry” editore Wiley Interscience Pubblication, da cui deriva il titolo di questo software.

Licenza:


Installazione:

Questo programma è stato sviluppato su di un calcolatore (calcolatrice grafica programmabile) Hewlett Packard 48GX, il programma dovrebbe funzionare correttamente anche sui modelli HP48G, HP48G+ e HP 49; il programma non dovrebbe funzionare sui calcolatori della serie precedente HP 48S e HP 48SX.
Il programma è distribuito in forma di directory e in forma di library installabile in qualunque porta.
L’utente può utilizzare una forma o l’altra a seconda delle proprie preferenze, non ci sono differenze tra le 2 implementazioni.

File:

SMAC.dir dimensione: 16601,5
  CRC: # 33302d
SMAC.lib dimensione: 16807
  CRC: # 35075d
  numero: 1701

Descrizione ed uso:

Le nozioni che seguono servono a spiegare l’utilizzo di questo software ed a fornire uno schema logico-procedurale da seguire quando si valuta la precisione stretta di un metodo di analisi.
Non sono scritte a scopo didattico, ma come promemoria per l’utilizzatore (ed anche per l’autore) che si suppone abbia dato almeno una veloce lettura ai metodi citati.

Il programma si avvia con il comando SMAC



Viene proposto un elenco dei test e dei calcoli disponibili; i test sono nell’ordine logico in cui andrebbero eseguiti.
Per eseguire un programma si seleziona con le frecce e si preme “OK” o “ENTER”.

SWtest
Test di normalità di Shapiro-Wilk



Supponiamo di aver realizzato una serie di misure di una certa grandezza ripetute n volte, avremo allora una serie di dati che possiamo rappresentare così:

x1,x2,x3,…xn

La prima operazione da fare sarebbe quella di verificare se i dati sono distribuiti normalmente, infatti tutte le successive elaborazioni partono dal presupposto che la serie dei dati ubbidisca ad una distribuzione normale (o gaussiana).
Le misure in campo chimico soddisfano la distribuzione normale praticamente sempre, se questo test non viene superato è pertanto necessario verificare l’intera procedura analitica per comprenderne il motivo poiché è molto probabile che l’anomalia sia dovuta a gravi errori sistematici.

L’algoritmo per il test di Shapiro-Wilk è il seguente:


si mettono in ordine crescente le misure: x1<x2<x3<…<xn
Si calcola la somma dei quadrati:  
si calcola il parametro b: dove i coefficienti ai sono tabulati in funzione di n numero dei dati  
Si calcola il parametro W:  
Si trasforma il parametro W in kp: Dove gamma, eta d epsilon sono tabulati in funzione di n numero dei dati.  

Il valore kp si confronta con il valore tabulato per alfa=0.05 e per alfa=0.01, quando si verifica la condizione allora si può ritenere che i dati ottenuti seguono una distribuzione normale o di Gauss.

Importante:
Questo test si applica per serie di dati compresi tra 3 e 50 misure.
kp,alfa=0.05= 1,960
kp,alfa=0.01= 2,576

Il programma richiede di inserire i dati sotto forma di matrice, ogni serie di dati dovrà comporre una colonna della matrice, il test viene quindi eseguito per ogni colonna della matrice.
Come output il programma fornisce una lista composta da “-” quando il test viene superato (distribuzione normale), da “*” quando il test non viene superato per alfa=0.01 ma viene superato per alfa=0.05 e da “**” quando il test non viene superato per alfa=0.05 (e ovviamente alfa=0.01).

1:SWtest: { “-” “-” “-” “*” “**” “*”}

Verificato che i dati soddisfino la condizione di “normalità” si prosegue cercando i dati “anomali”.
I dati “anomali” sono dati significativamente diversi dal valore medio, talmente diversi da poter essere considerati frutto di errori grossolani; è opportuno identificarli in modo da potere valutare criticamente (su base statistica e non arbitrariamente) la possibilità di scartarli per le successive elaborazioni (calcolo del valor medio, dell’intervallo di confidenza, etc…).

I test considerati sono 4, sarebbero da applicare tutti e 4 e ciascuno fornisce dati indipendenti, non tutti sono egualmente potenti.
Ogni test segnalerà nessuno, uno, due o più dati con uno o due asterischi.
I dati contrassegnati da 2 asterischi ** sono anomali con probabilità >99%
I dati contrassegnati da 1 asterisco * sono anomali con probabilità >95%
Gli altri dati non sono anomali.

DXtest
Test di anomalia di Dixon



Il test di Dixon serve ad individuare 1 solo dato anomalo che sarà il più grande o il più piccolo della serie.
L’algoritmo per il test di Dixon è il seguente:


si mettono in ordine crescente le misure: x1<x2<x3<…<xn  
si calcolano in funzione di n numero dei dati i seguenti rapporti:    
per    
per
per


Il valore maggiore dei due R calcolati si confronta con un valore di R tabulato ai livelli di confidenza alfa=0.05 e alfa=0.01, si hanno le 3 possibilità:

Rcalcolato<Ralfa=0.05 Il dato non è anomalo  
Ralfa=0.05<Rcalcolato<Ralfa=0.01 Il dato è anomalo 1 asterisco *
Rcalcolato>Ralfa=0.01 Il dato è anomalo 2 asterischi **

Il programma richiede di inserire i dati sotto forma di matrice, ogni serie di dati dovrà comporre una colonna della matrice, il test viene quindi eseguito per ogni colonna della matrice.
Quindi viene prodotto il seguente output:

1:DXtest: { “-” “7,7**”}

G1test
Test di Grubbs per un dato anomalo.



Il test di Grubbs a 1 dato serve ad individuare 1 solo dato anomalo che sarà il più grande o il più piccolo della serie.
L’algoritmo per il test di Grubbs è il seguente:

si mettono in ordine crescente le misure: x1<x2<x3<…<xn
Si calcola il valore medio e la deviazione standard s con le seguenti formule:  
Si calcolano:  

Il valore maggiore dei due G calcolati si confronta con un valore di G tabulato ai livelli di confidenza alfa=0.05 e alfa=0.01, si hanno le 3 possibilità:

Gcalcolato<Galfa=0.05 Il dato non è anomalo  
Galfa=0.05<Gcalcolato<Galfa=0.01 Il dato è anomalo 1 asterisco *
Gcalcolato>Galfa=0.01 Il dato è anomalo 2 asterischi **

Il programma richiede di inserire i dati sotto forma di matrice, ogni serie di dati dovrà comporre una colonna della matrice, il test viene quindi eseguito per ogni colonna della matrice.
Quindi viene prodotto il seguente output:

1:G1test: { “-” “7,7**”}

G2test
Test di Grubbs per 2 dati anomali



Il test di Grubbs a 2 dati serve ad individuare 2 dati anomali che saranno i due più grandi o i due più piccoli della serie.
Questo test è particolarmente utile ad individuare i dati anomali in quei casi in cui due valori troppo grandi o troppo piccoli esercitano un effetto di “mascheramento” reciproco impedendo ai test precedenti di essere individuati.
L’algoritmo per il test di Grubbs a 2 dati è il seguente:


si mettono in ordine crescente le misure: x1_x2_x3_…_xn
Si calcola  
Dove:  
Si calcola  
Dove:  

Il valore minore dei due G calcolati si confronta con un valore di G tabulato (diverso dal precedente) ai livelli di confidenza alfa=0.05 e alfa=0.01, si hanno le 3 possibilità:

Gcalcolato>Galfa=0.05 Il dato non è anomalo  
Galfa=0.05>Gcalcolato>Galfa=0.01 Il dato è anomalo 1 asterisco *
Gcalcolato<Galfa=0.01 Il dato è anomalo 2 asterischi **

Il programma richiede di inserire i dati sotto forma di matrice, ogni serie di dati dovrà comporre una colonna della matrice, il test viene quindi eseguito per ogni colonna della matrice.
Quindi viene prodotto il seguente output:

1:G2test: { “-” “2** 2**”}

Htest
Test di anomalia di Huber



Il test di Huber, al contrario dei test precedenti, serve ad individuare un numero di dati anomali fino al 50% dei dati totali della serie di misure; il buon senso suggerisce di controllare il metodo quando i dati da scartare sono molti.
L’algoritmo per il test di Huber è il seguente:

si mettono in ordine crescente le misure: x1<x2<x3<…<xn
si individua la mediana xmed  
si calcolano i residui ri  
si mettono in ordine crescente i valori assoluti di ri  
si individua la mediana dei residui rmed  
Si confrontano i residui con il fatto 3,8rmed e con 4,5rmed  

Si esegue il test

Il dato non è anomalo
Il dato è anomalo 1 asterisco *
Il dato è anomalo 2 asterischi **

Il programma richiede di inserire i dati sotto forma di matrice, ogni serie di dati dovrà comporre una colonna della matrice, il test viene quindi eseguito per ogni colonna della matrice.
Quindi viene prodotto il seguente output:

1:Htest: { “,64* ,63** 7,7**” “1,5** 2** 2**”}

Eseguiti questi test e valutati i risultati, qualora si siano scartati dei dati considerati anomali sarebbe necessario procedere nuovamente con un test di normalità si Shapiro-Wilk.
Alla fine si possono eseguire i calcoli statistici ad “un livello”.

CMONO – VMONO
Calcolo e visualizzazione dei risultati.



Il programma CMONO esegue i calcoli e li memorizza nella variabile statistica ∑SIGMA, il programma VMONO si occupa della loro visualizzazione.
Si descrivono di seguito i calcoli eseguiti:

Simbolo Descrizione Formula
Valore medio
med Mediana si pone: x1<x2<x3<…<xn per n dispari med=x(n+1)/2 per n pari med=(xn/2+xn/2+1)/2
range Dispersione dei dati xmax-xmin
s-d Deviazione standard
CV% Coefficiente di variazione %
Deviazione standard della media
If Intervallo di fiducia
If Intervallo di fiducia della media

Il programma richiede di inserire i dati sotto forma di matrice, ogni serie di dati dovrà comporre una colonna della matrice, il programma richiede di inserire anche il livello di probabilità desiderato (0.95 per p = 95% per _ = 0.05).
Quindi esegue i calcoli e per la loro visualizzazione richiama il programma VMONO
Quest’ultimo consente di scorrere i dati di ogni singola colonna con i tasti frecci SU e freccia GIU'e di passare da una colonna e l’altra con i tasti programmati > e <.
Premendo “OK” o “ENTER” una copia del valore evidenziato viene riportata nello STACK dell’hp, premendo “CANCL” si esce dal programma.

Con questo si esaurisce lo studio del caso ad un unico livello; il tipico esempio di è il calcolo della esattezza e della precisione di un metodo di analisi eseguendo un certo numero di misure su di una miscela (standard) certificata. Seguendo i passaggi sino a questo punto si è in grado di verificare se il metodo è esatto e qual è la sua precisione.
Questi test sono utili anche per verificare se la precisione del metodo al livello di concentrazione analizzato è conforme ai limiti (di legge, richiesti dagli standard interni, etc.) desiderati.

Esiste però anche il caso in cui è necessario verificare se la deviazione standard è o meno costante all’interno dell’intero intervallo di misura omoschedasticità), qualora la deviazione standard dipendesse dalla concentrazione sarebbe utile calcolare una espressione per esprimerla in funzione della concentrazione.
Per fare questo è necessario applicare i test che saranno argomento del programma “SMAC –2” in fase di realizzazione.

gian piero luciani
Comacchio 4 giugno 2003