Comments (1)
Disclaimer: I am a fastLink
user, not a fastLink
developer
The accuracy of the linkage results will greatly improve if you have more and better linkage variables such as Social Security Number. But I would like to focus my reply comments on fastLink
.
I am not aware of an always-best answer. The fastLink
article (2019, page 362) found no distinguishable difference between a one-to-one match and a one-to-many match. Therefore, personally, I almost always use a one-to-one match. But in some other cases it is better to de-duplicate before doing a record linkage. It depends on the context, for example what you know about the data, how much time you have for doing the record linkage, including a manual ("clerical") review of uncertain record pairs, and what is an acceptable threshold matching probability.
Regardless, I recommend to pay attention to the de-duplication results -- especially if you main concern is wrong matches (false positives) rather than missed matches (false negatives). The default is dedupe.matches = TRUE
, which has two algorithms: one default "greedy" (faster but simple) and one optional "linear programming" (slower but recommended for accuracy). If you have a large linkage, then the default de-duplication algorithm might not be accurate enough and the optional algorithm might be too slow. In that situation, you can still get good results by running fastLink
a second time by changing to dedupe.matches = FALSE
. This will give you two different results with the only difference being the de-duplication. Then, you can do a manual review of those uncertain record pairs.
Also, fastLink
does not require exact matching of an individual linkage variable. In fact, you are encouraged to try out different and more flexible matching options depending on the data and what you know about the data. A few examples are "Jaro-Winkler" and "Double Metaphone" of name, and using age
instead of dob
.
In summary, the fastLink
defaults are usually good enough that there is nothing special that you have to do -- except maybe if you need blocking and a confusion table. If you will have any such issues, see my comment in issue #63. The fastLink
developers are working on updating fastLink
for easier, faster, and more accurate results, so stay tuned!
from fastlink.
Related Issues (20)
- Blocking strategy with millions of rows HOT 6
- Running time HOT 5
- Guidance on improving chances EM algorithm will converge? HOT 9
- Using reweight.names in fastlink() returns only completely NA rows HOT 5
- Extracting matches when using blocking HOT 4
- The documentation for return.all does not seem to match the function default? HOT 2
- Q: Database size limit for duplicate removal? HOT 15
- Looking for a way to feed threshold cutoffs to individual variables HOT 5
- Seemingly odd partial matching behavior HOT 5
- How to return multiple matches HOT 2
- aggconfusion development update HOT 2
- window blocking performance HOT 1
- cut.a for stringdist.method == "lv" HOT 4
- blockData – Error: Vector memory exhausted (limit reached?) HOT 10
- Use of gc() creates a constant overhead to calling fastLink() HOT 3
- Performance (gamma*() functions) HOT 3
- dedupeMatches does not consider exact matches HOT 2
- NA handling Issue in expectation maximization function HOT 1
- Window blocking errors when the variable in `window.block` is integer
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fastlink.