7. Le correzioni tramite donatore

Sintesi: viene descritto il metodo e le varie fasi, da eseguire in modo gerarchico dall'utente, per la correzione effettuata secondo il metodo del donatore

Le funzioni di CONCORD, nell'approccio di correzione tramite donatore, sono uguali a quelle di RIDA (Ricostruzione delle Informazioni con Donazione Automatica).
Con questo metodo si ottiene la correzione di un file di dati, sempre registrato in ASCII, tramite la tecnica del donatore.

Verranno di seguito descritti sia i principi su cui la tecnica si basa, che i passi che l’utente deve eseguire per rendere operativo il sistema.

Rappresentazione dei dati.

Sia data una matrice di dati X, formata da n unità e k variabili di tipo qualsiasi. Le unità rappresentano i vettori-riga, le variabili i vettori-colonna. Le variabili sono di tipo qualsiasi.
Dal punto di vista della archiviazione elettronica della informazione, la matrice dei dati X è contenuta in un file, costituito da un insieme di record, ognuno rappresentante una unità, e contenente un numero di campi pari al numero di variabili (da ora in poi useremo il termine record o unità come sinonimi). Un insieme di campi al limite anche uno solo, consente di identificare in modo univoco il record-unità ed è detto chiave o identificativo del record.

Dividiamo in due gruppi le variabili:

- variabili affette da errore (in numero di h<k);
- variabili esatte (in numero di k-h).

Supponiamo di sottoporre ad un processo di controllo ogni record, in modo che ognuno degli h campi corrispondenti alle variabili affette da errore contenga o un flag di errore o un valore esatto. Il file risulta diviso in due:

- insieme dei record totalmente esatti;
- insieme dei record che presentano almeno un flag di errore.

Costruzione della metrica delle distanze.

Proponiamoci ora di misurare la distanza tra due unità, rispetto alle variabili esatte. A questo scopo è necessario introdurre una metrica per ogni tipologia di variabile (si veda Abbate 1996).
Sia quindi d la distanza tra due unità, misurata rispetto ai seguenti tipi di variabile:

a) Variabile qualitativa sconnessa.
Si pone:
d=0 se le unità presentano la stessa modalità,
d=1 se la modalità è diversa.

Formalmente: X1 = X2Þd=0, X1 ¹X2Þd=1

b) Variabile ordinata con m modalità.
Si pone:
d=0 se sulle due unità è stata rilevata la stessa modalità;
d=1 se le modalità sono adiacenti;
d=2 se tra di esse ce n’è una sola, e così via fino a d=m-1, se le due modalità sono agli estremi opposti.
Per rendere d variabile tra 0 ed 1, essa viene divisa per il suo massimo m-1.

Formalmente: X1 = X2Þd=0, X1 =r, X2=s (r¹ s)Þ d=

c) Variabile qualitativa telescopica.
Tali variabili sono rappresentabili tramite un insieme di gruppi primari di livello 1, contenenti ognuno più sottogruppi di livello 2.
Ogni sottogruppo di livello 2 contiene più sottogruppi di livello 3 e così via fino ad un sottogruppo di livello j, contenente modalità non ulteriormente scomponibili in sottogruppi, che sono al livello più basso j+1.
Una modalità siffatta può essere codificata con g gruppi di bit, ognuno dei quali è dimensionato in modo da poter rappresentare tutti i sottogruppi relativi a quel livello.
Poniamo:
d=0 se le due unità presentano stessa modalità,
d=1 se le due modalità diverse sono nello stesso sottogruppo di livello j,
d=2 se esse sono in gruppi differenti di livello j, ma nello stesso sottogruppo di livello j-1,
d=3 se sono in gruppi differenti di livello j-1, ma nello stesso sottogruppo di livello j-2 e così via fino ad un massimo di d=j+1 se le due modalità sono in gruppi primari diversi di livello 1.

Rendiamo la distanza variabile tra 0 ed 1 dividendola per il suo massimo pari a j+1. Sia r il livello più alto a partire dal quale si riscontra una differenza tra X1 ed X2, r assume quindi valori tra 1 e j+1.

Formalmente: X1 = X2Þd=0, X1 ¹X2Þd=

In CONCORD, come in RIDA, questo tipo di distanza è utilizzato nel caso particolare che sia sufficiente una sola cifra per rappresentare ogni livello. Date quindi due generiche modalità di una variabile di tipo telescopico, esse distano 0 se tutte le cifre sono uguali, 1 se solo l’ultima è diversa, 2 se sono diverse soltanto l’ultima e la penultima e così via;

d) Variabile quantitativa.
Sia X1 il valore assunto dalla variabile X nella prima unità, X2 nella seconda. Poniamo d=½ X1- X2½. La distanza può essere resa variabile tra 0 e 1 dividendola per il suo massimo, pari alla differenza tra i valori massimo (Xmax) e minimo (Xmin) della variabile X presenti nel file.

Formalmente: X1 = X2Þd=0, X1 ¹X2Þd=

Nella versione attuale, il valore assoluto della differenza tra X1 e X2 è diviso per X1+1, misurando uno scostamento relativo rispetto ad X1 ( la scelta di X1+1 serve per evitare un denominatore degenere, nel caso che sia X1=0). E’ evidente che la scelta di una distanza siffatta privilegia l’importanza della variabile quantitativa, in particolare se il valore di X2 risultasse molto distante da quello di X1.

Formalizzazione della funzione di distanza mista ponderata.

Assegnata una matrice di dati, presentante k-h variabili non affette da errore, definiamo distanza mista ponderata D tra due generiche unità una espressione del tipo:

,

dove Di è la distanza tra le due unità rispetto alla variabile i, misurata con una delle espressioni di cui sopra e Wi è un numero reale positivo che rappresenta l’importanza assegnata alla variabile i nel calcolo della distanza. Le r variabili sono scelte tra le k-h quelle non affette da errore. L’attuale versione accetta solo numeri naturali per Wi. Chiamiamo variabili di accoppiamento o di matching le r variabili scelte per il calcolo della distanza.

Scelta dell’unità donatrice.

Data un’unità affetta da errore nella variabile k si vuole trovare l’unità esatta posta alla distanza minima. Essa è detta unità donatrice, perché il valore della variabile k relativo ad essa è "donato" all’unità affetta da errore. L’insieme della unità tra le quali è scelta l’unità donatrice è detto serbatoio dei donatori. Il serbatoio dei donatori può essere costruito in due modi:

- selezionando le unità esatte rispetto alla sola variabile k;
- selezionando le unità esatte rispetto a tutte le variabili.

Nel primo caso si usa un diverso serbatoio per ogni variabile errata; nel secondo caso si utilizza un serbatoio unico per tutte le variabili affette da errore. La prima procedura è utile quando si desidera disporre di serbatoi di donatori relativamente numerosi per ogni variabile da correggere. Questa scelta deve essere effettuata e realizzata prima di utilizzare CONCORD. La scelta dell’unità donatrice è ulteriormente affinabile scegliendo, nell’insieme delle variabili non affette da errore e non usate come variabili di accoppiamento, delle variabili dette di strato. Dopo aver formato il serbatoio dei donatori in uno dei due modi di cui sopra, si seleziona l’unità donatrice tra quelle che inoltre, rispetto alle variabili di strato, presentano le stesse modalità dell’unità affetta da errore. L’uso di variabili di strato implica l’accettazione della possibilità di non avere donatori idonei per quell’unità.

Funzione di distanza mista ponderata corretta.

Possiamo introdurre un perfezionamento alla distanza mista ponderata sopra introdotta, per penalizzare l’unità del serbatoio che è già stata utilizzata nella donazione. Ridefiniamo la distanza D come:

dove k è il numero di volte per cui l’unità è stata precedentemente utilizzata, p è un fattore di penalità. Questa espressione più completa è adottata da CONCORD (RIDA), che richiede che p sia un numero intero.

Ponderazione delle variabili di matching.

Sono molte le tecniche possibili di ponderazione delle variabili di matching. Le applicazioni finora realizzate nell’interno dell’istituto hanno utilizzato il criterio del . Esso si applica nel seguente modo (Abbate 1996):

> 1) si misura la connessione tra la variabile affetta da errore e quelle esatte tramite l’indice. Il valore dell’indice dipende dal numero di celle della tabella di contingenza. Poiché bisogna confrontare il valore dei ottenuti, per renderli confrontabili occorre o riclassificare in modo opportuno almeno la variabile da correggere, se di tipo quantitativo, in modo da ottenere tabelle di contingenza di dimensioni omogenee, oppure dividere direttamente il valore del per il numero di gradi di libertà, che è pari al prodotto tra il numero delle righe e delle colonne della tabella di contingenza diminuiti entrambi di uno;

2) l’utilizzatore del metodo deve esaminare criticamente i valori di così ottenuti, eventualmente divisi per il numero dei gradi di libertà: le variabili non affette da errore che presentano il valore più alto sono le migliori candidate ad essere variabili di strato, quelle con valore immediatamente inferiore possono diventare variabili di matching. L’utilizzatore del metodo deve usare i valori come supporto a una decisione che tiene anche conto della sua conoscenza dell’indagine.

La scelta delle variabili di strato deve tenere conto anche del fatto che all’aumentare del loro numero, aumenterà la selettività nell’ambito del serbatoio dei donatori, ma aumenterà anche la probabilità di non trovare il donatore. Nelle applicazioni finora realizzate è stata sempre impiegata una sola variabile di strato.

Modalità di utilizzo.

L’utente deve preparare i seguenti file:

1. File contenente i record errati. In esso le variabili affette da errore debbono contenere un carattere di errore ripetuto per tutta la lunghezza del campo.

2. File contenente i record esatti, costituenti il serbatoio dei potenziali donatori.

3. File dei parametri. Viene generato automaticamente da CONCORD dopo aver definito le variabili da correggere con il carattere di errore, particolarmente importante perché solo i campi in cui esso è presente sono soggetti a correzione, le variabili di strato e di matching. Per ogni variabile occorre specificare la posizione iniziale, la lunghezza, il tipo (obbligatorio per le variabili di matching, al fine della scelta della funzione di distanza da adottare) e il peso. Le variabili quantitative possono essere riclassificate, specificando l’estremo superiore di ogni classe. Si possono poi inserire i parametri U,R,L. Essi sono, rispettivamente, il numero massimo di volte che la stessa unità può essere utilizzata come donatrice, il fattore moltiplicativo che penalizza l’uso ripetuto dello stesso donatore e la massima distanza a cui può essere considerato un donatore. Vale la stessa avvertenza formulata a proposito dell’uso degli strati: l’uso dei parametri U e L implica la possibilità di non riuscire a trovare il donatore. I parametri U, R, L possono mancare: questo implica che non si pone alcun limite alla possibilità di riutilizzare lo stesso donatore ed esso può essere scelto anche molto distante rispetto all’unità donatrice.

Dopo la corretta esecuzione dei vari passi, l’utente dovrà provvedere a fondere in un file unico il file dei record esatti, quello dei corretti e quello eventuale degli incorretti.
Se è stato prodotto il file dei record incorretti, nel file unico creato dall’utente i record non corretti conterranno ancora il carattere di errore: essi debbono essere corretti con una tecnica alternativa.

7.1. La fase di definizione

La prima funzione possibile, una volta scelto in Concord il metodo di correzione tramite donatore, è quella di definizione. Bisogna definire le variabili di correzione, di strato, di match e infine i parametri di esecuzione.

Fig. 7.1 La gestione delle variabili per donatore 7.1.1. Definizione delle variabili di correzione

Le variabili di correzione sono quelle che individuano i valori da correggere sui record errati e sono dette anche variabili di tipo "A". Tra i record errati vengono selezionati quelli che hanno un campo, determinato dalla posizione e lunghezza della variabile, contenente gli stessi caratteri di individuazione della variabile di correzione e questi caratteri vengono sostituiti, con diverse modalità, con dati presi dai record donatori.

Esempio:
desideriamo correggere la variabile alfanumerica A01 posizione 30, lunghezza 3 individuata nei record errati dai caratteri BBB, sostituendovi il valore del campo corrispondente di un record donatore individuato in funzione della distanza.

Deve esistere almeno una variabile di tipo "A".
Utilizzando l'integrazione tra i metodi, è' possibile scegliere le variabili da correggere tra quelle mostrate nella listbox "variabili" con un doppio click sul tasto sinistro del mouse; in questo caso il programma numera automaticamente la variabile, ne definisce la posizione, la lunghezza, il tipo (alfanumerico) e la correzione (1 - spostamento), lascia vuoto il carattere di correzione, che deve essere inserito poi dall'utente nella tabella, e indica la variabile di provenienza associata.

Per inserire o modificare variabili nella tabella posizionare il cursore sulla relativa tabella e utilizzare il tasto destro del mouse.
Per inserire un variabile:
scegliere "Add row" e riempire i campi della riga "new";
ripetere "Add row" per una seconda variabile, e così via.
Alla fine "Commit new row".
Per modificare una variabile:
posizionare il cursore sul nimero della riga della tabella da modificare e premere due volte il tasto sinistro del mouse fino ad evidenziare tutta la riga;
spostarsi poi sulla cella da modificare e variarla;
così via per tutte le modifiche.
Alla fine delle modifiche, per assicurarsi che anche l'ultima modifica sia stata memorizzata, con il tasto destro del mouse scegliere "Add row" e poi "Cancel row edit".

In alternativa, per ogni variabile e' necessario indicare:

- Numero: Axx - il numero univoco deve iniziare sempre con la lettera A e xx deve assumere i valori nel range 01-99 per un massimo di 24 (esempio A01,A12,A40…);
- Posizione: indica la colonna del tracciato record dove inizia la variabile;
- Lunghezza: indica la lunghezza della variabile e per le variabili numeriche (tipo N e C) può essere nella forma "i.d" dove i è la parte intera e d il numero dei decimali;
- Tipo: il tipo della variabile che può essere:

X variabile alfanumerica;
N variabile numerica;
T variabile telescopica (es.: una variabile che indica l'attività economica);
C variabile di classificazione.

- Correzione: il tipo di correzione da effettuare:

1 la correzione consiste nello spostamento della corrispondente variabile del record donatore e, in questo caso, la variabile non può essere di classificazione (tipo C);
2 la correzione è il risultato di un calcolo (definito dalle variabili "F" ed "E" ) e in questo caso il tipo della variabile deve essere numerico (tipo N) o di classificazione (tipo C); se è di classificazione il risultato del calcolo viene sostituito con il valore della classe secondo i parametri della variabile "C" corrispondente con la lunghezza della variabile di imputazione "A".

- Carattere: rappresenta un singolo carattere, che verrà automaticamente esteso per tutta la lunghezza della variabile, che individua nei record errati la variabile sulla quale effettuare la correzione. Se il carattere manca viene assunto per default blank. Se il carattere è "*" la correzione della variabile viene effettuata su tutti i record.

Esempio: desideriamo correggere la variabile di classificazione A01 posizione 30, lunghezza 3 individuata nei record errati dai caratteri BBB, sostituendovi il valore della terza classe descritta nella variabile "C" e ottenuto dal calcolo, descritto nella variabile "F", sui dati del record esatto determinato in funzione della distanza.
viene generato il seguente record nel file "dvardom.dat" nella cartella di progetto:

.V A01 P=30 L=3 T=C X=2 B

Se la variabile di correzione è di tipo C (classificata) deve esistere almeno una variabile associata di classificazione come sotto descritta.

VARIABILI "C" DI CLASSIFICAZIONE

Queste variabili devono essere inserite manualmente nella tabella .
Per ogni variabile bisogna indicare:

- Riferimento: deve essere uguale alla variabile di imputazione con tipo "C" (esempio C01, C06 ecc.);
- Classi: fino a 7 valori che rappresentano l'estremo superiore delle classi. Se i valori sono più di 7 scriverli su un'altra riga con stesso riferimento.

Esempio (riferito alla variabile "A" precedente):
A01 1 9.99 50 99 499 999 5000
A01 100000
vengono generati i seguenti due record nel file "dvardom.dat" nella cartella di progetto: .C A01 1 9 50 99 499 999 5000
.C A01 100000 Se nella variabile da correggere "A" il tipo di correzione è 2, ossia calcolo, deve esistere almeno una variabile associata per formula di calcolo con le seguenti caratteristiche:

VARIABILI "F" PER FORMULE DI CALCOLO

Queste variabili devono essere inserite manualmente nella tabella.
Per ogni variabile indicare:

- Riferimento: deve essere uguale alla variabile di imputazione con tipo correzione 2 (esempio A01, A06, ecc.);
- Formula: formula di calcolo del valore da imputare nella variabile Axx:
può contenere gli operatori aritmetici;
l'ordine di esecuzione delle operazioni è:
( ) ^ per elevamento a potenza- / * + -
gli operandi possono essere costanti o variabili identificate dal riferimento;
possono essere usate parentesi per modificare l'ordine di esecuzione delle operazioni.

Esempio:

> E01/(D01+D02)

Che significa che una volta determinato il record esatto in funzione della distanza, verrà calcolata prima la somma delle variabili D01 e D02 e poi il rapporto. Viene generato il seguente record nel file "dvardom.dat" nella cartella di progetto: .F A01 E01/(D01+D02) La variabile Exx e Dxx sono variabili di calcolo sotto descritte: VARIABILI "E" PER IL CALCOLO.

Queste variabili devono essere inserite manualmente nella tabella.
Indicano le variabili che sono utilizzate per la correzione di variabili Axx con tipo correzione 2 nelle formule di calcolo descritte nelle variabili di tipo "F".

Per ogni variabile e' necessario indicare:

- Numero che può essere:

Exx - il numero, univoco e riferito a quello della formula descritta nella variabile "F", deve iniziare sempre con la lettera E se il valore è da cercare sul record errato e xx deve assumere i valori nel range 01-99;

Dxx - il numero, univoco e riferito a quello della formula descritta nella variabile "F", deve iniziare sempre con la lettera D se il valore è da cercare sul record donatore e xx deve assumere i valori nel range 01-99.

- Posizione: indica la colonna del tracciato record dove inizia la variabile.
- Lunghezza: indica la lunghezza della variabile e per le variabili numeriche (tipo N) può essere nella forma "i.d" dove i è la parte intera e d il numero dei decimali.
- Tipo: tipo della variabile: N per numeri, C per le classificazioni e in questo caso la lunghezza deve essere un numero intero.

Anche per le variabili di calcolo di tipo C dovranno essere scritte le relative variabili di classificazione (vedi variabili tipo "C" di classificazione).

"Import" permette di importare da un file esterno formattato del tipo "dvardom.dat" variabili precedentemente definite.

Alla fine delle operazioni di definizione delle variabili da correggere, dal menu a tendina "File" è possibile scegliere: "Save and exit" per memorizzare le operazioni effettuate nel relativo dataset;
"Exit" per uscire senza salvare.

Fig. 7.2 La gestione delle variabili da correggere "A" per donatore

7.1.2. Definizione variabili di strato

Indicano le variabili di stratificazione che si utilizzano per individuare gruppi di record donatori simili fra loro e sono chiamate variabili "S".
Lo strato è importante perché definisce la parte del serbatoio dei record donatori ove effettuare la ricerca del record esatto con distanza minima rispetto al record con variabili da correggere.
Deve essere presente almeno uno strato.
Sfruttando l'integrazione tra i metodi, è possibile scegliere la variabile di strato tra quelle mostrate nella listbox "variabili" con un doppio click sul tasto sinistro del mouse; in questo caso il programma numera automaticamente la variabile, ne definisce la posizione, la lunghezza, il tipo (alfanumerico) e la variabile di provenienza associata.

Per ogni variabile bisogna indicare:

- Numero: Sxx - il numero univoco deve iniziare sempre con la lettera S e xx deve assumere i valori nel range 01-99 per un massimo di 24 variabili (esempio S01,S12,…S83…).
- Posizione: indica la colonna del tracciato record dove inizia la variabile.
- Lunghezza: indica la lunghezza della variabile; per le variabili di tipo C può essere nella forma "i.d" dove "i" è la parte intera e "d" il numero dei decimali e sia per i che d la lunghezza massima è 15.
- Tipo: tipo della variabile:

X variabile alfanumerica;
T variabile telescopica (es.: una variabile che indica l'attività economica);
C variabile di classificazione. Esempio: S01 posizione 30 lunghezza 3 tipo C : viene generato il seguente record nel file "dvardom.dat" nella cartella di progetto:
.V S01 P=30 L=3 T=C Se il tipo della variabile è C (classificata) deve esistere almeno una variabile associata di classificazione con le seguenti caratteristiche:

VARIABILI "C" DI CLASSIFICAZIONE

Queste variabili devono essere inserite manualmente nella tabella.

Per ogni variabile bisogna indicare:

- Riferimento: deve essere uguale alla variabile di strato con tipo "S" (esempio S01, S06 ecc);
- Classi: fino a 7 valori che rappresentano l'estremo superiore delle classi. Se i valori sono più di 7 scriverli su un'altra variabile con stesso riferimento.

Esempio (riferito alla variabile "A" precedente):

> S01 1 9.99 50 99 499 999 5000
> S01 100000
> vengono generati i seguenti due record nel file "dvardom.dat" nella cartella di progetto:
> .C S01 1 9 50 99 499 999 5000
> .C S01 100000

"Import" permette di importare da un file esterno formattato variabili precedentemente definite.

Alla fine delle operazioni di definizione delle variabili di strato, dal menu a tendina "File" è possibile scegliere: "Save and exit" per memorizzare le operazioni effettuate sul relativo dataset.
"Exit" per uscire senza salvare. 7.1.3. Definizione variabili di match

Le variabili di match sono utilizzate per calcolare la distanza tra il record da correggere e i record che fanno parte del serbatoio dei donatori.
Le variabili di match sono dette variabili di tipo "M". Le variabili di match possono mancare; in questo caso il serbatoio dei donatori deve essere mirato alle correzioni da effettuare poiché ogni record si trova, almeno inizialmente, alla distanza minima.

Per ogni variabile di match e' necessario indicare:

- Numero: Mxx - il numero, univoco, deve iniziare sempre con la lettera M e xx deve assumere i valori nel range 01-24 (esempio M01, M02, M03…).
- Posizione: indica la colonna del tracciato record dove inizia la variabile.
- Lunghezza: indica la lunghezza della variabile; per le variabili di tipo C,N può essere nella forma "i.d" dove i è la parte intera e d il numero dei decimali e sia per i che d la lunghezza massima è 15.
- Tipo: tipo della variabile:

X variabile alfanumerica.
N variabile numerica.
T variabile telescopica (es.: una variabile che indica l'attività economica).
C variabile di classificazione.

- Peso con il quale considerare la variabile di match rispetto alle altre; se non specificato si assume 1.

Esempio: M01 posizione 30, lunghezza 3, tipo C peso 5: viene generato il seguente record nel file "dvardom.dat" nella cartella di progetto: .V M01 P=30 L=3 T=C W=5 Se il tipo della variabile è C (classificata) deve esistere almeno una variabile associata di classificazione con le seguenti caratteristiche:

VARIABILI "C" DI CLASSIFICAZIONE

Queste variabili devono essere inserite manualmente nella tabella.

Indicare per ogni variabile di classificazione:

- Riferimento: deve essere uguale alla variabile di match con tipo "C" (esempio M01, M06 ecc.);
- Classi: fino a 7 valori che rappresentano l'estremo superiore delle classi. Se i valori sono più di 7 scriverli su un'altra variabile con stesso riferimento.

Esempio (riferito alla variabile "M" precedente):

> M01 1 9.99 50 99 499 999 5000
> M01 100000
> vengono generati i seguenti due record nel file "dvardom.dat" nella cartella di progetto:
> .C M01 1 9 50 99 499 5000
> .C M01 100000

"Import" permette di importare da un file esterno formattato variabili precedentemente definite.

Alla fine delle operazioni di definizione delle variabili di match, dal menu a tendina "File" è possibile scegliere: "Save and exit" per memorizzare le operazioni effettuate sul file relativo dataset;
"Exit" per uscire senza salvare. 7.1.4. Definizione parametri di impostazione per donatore

Queste variabili devono essere inserite manualmente nella tabella.
La definizione dei parametri di impostazione serve a condizionare, con parametri specifici, la fase di imputazione per tutti i record da correggere.
Vediamo in dettaglio i vari parametri:

PARAMETRO "U".

Rappresenta il fattore di penalizzazione per i record donatore già utilizzati, in modo che detti record, rientrino nella donazione solo se non esistono altri record con distanza calcolata più bassa.
Il valore deve essere intero.
Se non esiste si assume 0.

PARAMETRO "R"

Rappresenta il numero massimo di volte in cui uno stesso record donatore può essere utilizzato.
Se non esiste si assume 0 ovvero riutilizzo illimitato.
Il valore deve essere intero.

PARAMETRO "L"

Rappresenta il limite massimo della distanza tra il record donatore e il record da correggere.
Il valore deve essere intero.
Se non esiste si assume 0 ossia qualsiasi distanza .

PARAMETRO "D".

Rappresenta la distanza minima di accettazione per un donatore.
Il valore deve essere intero.
Se non esiste si assume 0 ossia la distanza accettabile è sempre uguale a zero.

Il calcolo della distanza (D) tra due variabili X,Y dipende dal tipo di variabile:

- se tipo X allora D(X,Y)=0 se X=Y, D(X,Y)=1 se X?Y;
- se tipo C allora D(X,Y)= |Classe(X) - Classe(Y)| / Numero delle classi - 1;
- se tipo N allora

D(X,Y)= |(X - Y) / MAX (|MIN(Errati) - MAX(Esatti)| , |MAX(Errati) - MIN(Esatti)|);

- se tipo T allora

D(X,Y)=la posizione del primo carattere diverso a partire da sinistra / lunghezza della variabile. La distanza (D) tra due record K,L è definita:

D<K,L> = (Somma(P(I) * D(I)<K,L>)) + R<L> * U

in cui P(I) rappresenta il peso della variabile(I), R<L> rappresenta il numero delle volte in cui è stato utilizzato il donatore L, e U è il fattore di penalizzazione.

"Import" permette di importare da un file esterno formattato variabili precedentemente definite.

Alla fine delle definizioni dei parametri dal menu a tendina "File" è possibile scegliere: "Save and exit" per memorizzare le operazioni effettuate sul relativo dataset;
"Exit" per uscire senza salvare. 7.2. Le funzioni

7.2.1. Controllo delle variabili per donatore

Scegliendo questa funzione si esegue la fase di controllo delle variabili di strato, match, correzione e dei parametri definiti dall'utente tramite le apposite funzioni.

Viene prima registrato nella cartella di progetto il file "dvardom.dat" dai dataset specifici, contenente le variabili come definite dall'utente, e successivamente eseguito il programma di controllo.

Se durante la fase di controllo vengono rilevati errori di definizione delle variabili, o lacune nelle definizioni, verrà mostrato un messaggio di avvertimento ed evidenziata la lista delle variabili errate con gli errori relativi.

Se il controllo non rileva errori viene resa possibile la funzione di correzione.

7.2.2. Correzione

Con questa funzione si eseguono i passi di correzione tramite donatore.

Selezionando la funzione viene mostrata una maschera dalla quale, cliccando sull'icona relativa, è possibile selezionare il file di input contenente i record corretti donatori.

Selezionare poi il file degli errati da correggere cliccando sull'icona relativa.

Scegliere infine il tipo di messaggistica che verrà visualizzata durante l'elaborazione:

- Per singolo step di elaborazione: all'esecuzione di ogni programma viene mostrato un messaggio di informazione;
- Solo se si verifica un errore e in questo caso viene mostrato il codice e il tipo di errore.

Con il bottone "Esegui" o con "Save and exit", dal menu a tendina, vengono eseguiti i passi di elaborazione.

I file generati, nella cartella di progetto, dai vari programmi durante la correzione tramite donatore sono individuabili dal nome "donax.ttt" ove "x" è il passo eseguito e "ttt" e il tipo di file.

Il primo passo è l'esecuzione del programma dona2 per la creazione di un file dei record da correggere o dei record esatti con le sole variabili di interesse: estrae le variabili dal file degli errati o dei donatori utilizzando le schede parametro di tipo strato e match mettendo nel file di output prima le variabili di strato e poi le variabili di match; se le variabili sono di tipo t=c al valore delle variabili sostituisce la classe di appartenenza.

Input:

- file dei record errati o esatti;
- schede parametro.

Output:

- file dei record errati o esatti secondo il seguente tracciato:

01-08 progressivo record;
09-- valore delle variabili di strato;
-- -- valore delle variabili di match;

- scheda parametro contenente le informazioni:

01-08 lunghezza record input;
09-17 numero record errati/esatti;
18 blank;
19-26 lunghezza complessiva delle variabili di strato. Il secondo passo consiste nell'esecuzione del programma dona3 per il calcolo delle distanze: il programma calcola a parità di strato, la cui lunghezza sulla quale fare il confronto è riportata sul file dei parametri tipo record "i", la distanza di ogni record errato con tutti i record donatori tenendo presente i parametri: limite del riutilizzo, dal parametro R se esiste;
fattore di penalizzazione, dal parametro U se esiste; e sceglie come donatore il record con distanza minima, sempre tenendo conto del limite della distanza dal parametro L, se detto parametro esiste.

Input:

- file ridotto dei record errati ordinato per il valore delle variabili di strato;
- file ridotto dei record esatti ordinato per il valore delle variabili di strato;
- file dei parametri tipo record "m";
- file dei parametri tipo record "i".

Output:

- file di associazioni tra record errati e donatori contenente:

01-08 numero progressivo record errato;
09-16 numero progressivo record esatto o 0 (donatore non trovato);
17 -- distanza tra i due record.

- file per le statistiche sull'esito della correzione che riporta per ogni strato le seguenti informazioni:

-- -- valore dello strato;
-- -- numero di record da correggere;
-- -- numero di donatori disponibili nello strato;
-- -- numero di donatori utilizzati 1 volta;
-- -- numero di donatori utilizzati 2 volte;
-- -- numero di donatori utilizzati 3 volte;
-- -- numero di donatori utilizzati 4-9 volte;
-- -- numero di donatori utilizzati 10-99 volte;
-- -- numero di donatori utilizzati 100o+ volte;
-- -- numero di donatori con distanza d=0;
-- -- numero di donatori con 0 < d < 1;
-- -- numero di donatori con 1 <= d < 10;
-- -- numero di donatori con 10<= d < 100;
-- -- numero di donatori con 100<= d < 1000;
-- -- numero di donatori con 1000<= d < 10000;
-- -- numero di donatori con 10000<= d;
-- -- numero di record non corretti per limite della distanza;
-- -- numero di record non corretti per limite del riutilizzo. Il terzo passo consiste nell'esecuzione del programma dona4 che esegue la correzione.

Input:

- file dei record esatti;
- file dei record errati;
- file delle associazioni "dista.ord" tra i record errati e i record donatori, ordinato per numero progressivo del record errato;
- file parametri tipi record "a" e "d";
- file delle schede parametro "scheda.ord" contenente la lunghezza record e numero dei record errati ed esatti.

Output:

- file "dona4.cor" con i record corretti;
- file "dona4.noc" con i record non corretti, cioè i record per i quali, nel file delle associazioni, il numero progressivo del donatore è uguale a 0;
- file "dona4.wrg" con eventuali errori di esecuzione.

il file "dona4.prm" contiene l'elenco di tutti i file.

Viene infine eseguito il programma dona5 per le statistiche di correzione.

Input:

- il file di statistiche prodotto dal programma dona3.

Output:

- il file "report.lst" tabulato a livello di strato con le seguenti informazioni:

distribuzione per strato / totale;
valore dello strato xxxxxxxxxx;

donatori utilizzati:
1 volta, 2 volte, 3 volte, 4-9 volte, 10-99 volte, 100 o più volte, totale;
donatori utilizzati a distanza:
d=0 0<d<1 1<=d<10 10<=d<100 100<=d<1000 1000<=d=10000 d>=10000;
totale correzioni xxxxxxxx ;
donatore non trovato xxxxxxxx di cui non nello strato s1;
per limite distanza xxxxxxx;
per limite riutilizzo xxxxxxx;
donatori utilizzati xxxxxxxx;
rapporto di utilizzo xx.xxx ;

Con il bottone "Annulla" o con "Exit", dal menu a tendina, si abbandona l'elaborazione.