Utilizzo dell'algoritmo EM per il collegamento dei record


9

Sono interessato a collegare record tra 2 set di dati per nome, cognome e anno di nascita. Potrebbe essere fattibile con l'algoritmo EM, e se sì, come?

Considera il seguente record nel 1 ° esempio: Carl McCarthy, 1967. Cercherò tutti i record nel secondo set di dati e assegnerò una distanza jaro-winkler tra il 1 ° nome e Carl e una distanza jaro-winkler tra il cognome e McCarthy. Queste distanze sono probabilistiche così come la distanza tra gli anni della nascita. Combiniamo queste 3 probabilità (moltiplicare? Media?) In 1.

Ora arriva la parte della regola decisionale. Classifichiamo tutte le probabilità dal più alto al più basso. Innanzitutto, vogliamo P (il primo colpo è match)> = soglia. In secondo luogo, vogliamo anche P (il primo colpo è match) / P (il secondo colpo è match)> = soglia se P (il secondo colpo è match) esiste. Terzo, vogliamo che il primo hit in questo secondo set di dati corrisponda a non più di 1 persona nel 1 ° set di dati con Carl McCarthy, 1967.

Come possono essere determinate queste soglie?

Preferisco approcci in Stata e / o Perl.

Vedi, ad esempio:

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1479910/pdf/amia2003_0259.pdf

(Anche se con ciò, non seguo ancora completamente il perché o il come, e quali sono gli input e gli output, così come le ipotesi e quanto siano restrittive).


Hai pensato di usare il reclink in Stata?
Dimitriy V. Masterov,

Risposte:


4

Assolutamente, l'algoritmo EM è stato utilizzato per il collegamento probabilistico. Ci sono molti articoli sull'argomento, i seguenti di Winkler possono essere utili per quanto riguarda i dettagli teorici:

http://www.census.gov.edgekey.net/srd/papers/pdf/rr2000-05.pdf

Inoltre è già disponibile qui un software di collegamento dati sviluppato da Kevin Campbell:

http://the-link-king.com/

Il software può essere scaricato gratuitamente e Kevin Campbell offre supporto a pagamento. Il codice è scritto in SAS, quindi avrai bisogno del pacchetto SAS di base.


Grazie! Ho letto 2 articoli di Winkler ma non li ho compresi appieno. Ho raccolto EM da quel foglio. Inoltre, non so come usare SAS. So che perl ha un modulo EM, che vorrei usare, ma non sono sicuro del perché EM sia appropriato o come usarlo. Concettualmente, come fa EM a rispondere alle domande precedenti?
user1690130,

La mia comprensione è che l'algoritmo EM è utile per modellare la probabilità di una corrispondenza positiva perché tiene conto delle probabilità sconosciute (o "latenti") di collegare erroneamente due record diversi o non collegare erroneamente due record corrispondenti. Le stime di queste probabilità vengono perfezionate durante ogni fase dell'algoritmo al fine di massimizzare la funzione di probabilità.
RobertF,

Quali input offro? La prob univariata e un'etichetta? E sputa la corrispondenza ottimale?
user1690130,

0

Esiste un software RELAIS che registra collegamenti con:

6) Collegamento probabilistico dei record (stima dei parametri del modello Fellegi e Sunter tramite EM (Expectation-Maximization).

RELAIS è stato implementato in Java e R e ha un'architettura di database (MySQL).

È disponibile altra documentazione sul collegamento dei record disponibile dal progetto ESSnet Data Integration .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.