You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a cross-source linkage problem where I do not think I can estimate m and u probabilities honestly, and I would like to know whether that is a real constraint or a failure of imagination on my part.
The setting
I am linking two public populations that describe the same real-world events: US vehicle-incident reports filed by manufacturers under NHTSA's Standing General Order, and consumer complaints filed independently with NHTSA by members of the public. The two are maintained separately, share almost no schema, and have no identifier in common.
The comparison space is unusually poor:
The only vehicle identifier both sources publish is an 11-character VIN prefix. Characters 12-17, the serial, are not published by either source. So a matching prefix denotes a shared configuration (plant, model year, body) shared by thousands of vehicles, not a shared vehicle.
Incident dates are published to month precision only on the filing side. There is no day.
Entity names are formatted differently between sources and need normalization plus a curated alias table.
So the entire comparison vector is roughly: entity name (fuzzy), configuration prefix (exact), month (within one). That is all of it.
What I built instead, and why I am unsure
A deterministic gate. A pair must share a reporting entity, share a configuration prefix, and fall within one month, or it is never linked regardless of how similar everything else looks. Entity name similarity is banded: at or above 90 links automatically, 80 to 89 is flagged and never linked unattended, below 80 is treated as distinct. No similarity score can override the gate.
The errors are deliberately asymmetric. A missed link inflates a non-match rate that I report openly. A false link fabricates a discrepancy between two unrelated events and attaches it to a named company. So the resolver is biased hard toward not linking, and every link it does produce is marked low confidence.
The questions
1. Does Fellegi-Sunter buy anything here? I have no labelled pairs and no way to obtain any, so m and u would have to come from EM. With a comparison vector this thin, and this correlated (the prefix nearly implies the manufacturer, so those two agreement patterns are close to redundant), is EM going to converge on anything meaningful? Or would putting probabilities on this be manufacturing false precision over what is really just a three-field exact-ish gate?
2. What is the right null model for chance agreement? I have not computed this, and I now think it is the first thing I should do. Given the marginal distributions of manufacturer, configuration prefix, and month across both populations, how many pairs would clear my gate by coincidence alone? If that expected count is comparable to the number of links I actually observe, the links carry no information at all. Is that the right first move? And what null would you use, given that fleet composition is extremely concentrated (a single configuration can account for a large share of one population, so independent marginals feel wrong)?
3. Can the false-negative rate be bounded at all without ground truth? Or is "recall is not estimable here" simply the honest terminal statement?
4. Does a one-month tolerance on month-precision data earn its keep, or is it just inflating the candidate space for no real recall gain?
To be clear about what it does: it produces no score and no match rate for any company, and it makes no claim about anyone's conduct or intent. It reports differences between two documents, with the ordinary explanations for such differences attached to every result. I am asking about linkage soundness only, and I would rather hear that the approach does not hold up than not hear it.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
I have a cross-source linkage problem where I do not think I can estimate m and u probabilities honestly, and I would like to know whether that is a real constraint or a failure of imagination on my part.
The setting
I am linking two public populations that describe the same real-world events: US vehicle-incident reports filed by manufacturers under NHTSA's Standing General Order, and consumer complaints filed independently with NHTSA by members of the public. The two are maintained separately, share almost no schema, and have no identifier in common.
The comparison space is unusually poor:
So the entire comparison vector is roughly: entity name (fuzzy), configuration prefix (exact), month (within one). That is all of it.
What I built instead, and why I am unsure
A deterministic gate. A pair must share a reporting entity, share a configuration prefix, and fall within one month, or it is never linked regardless of how similar everything else looks. Entity name similarity is banded: at or above 90 links automatically, 80 to 89 is flagged and never linked unattended, below 80 is treated as distinct. No similarity score can override the gate.
The errors are deliberately asymmetric. A missed link inflates a non-match rate that I report openly. A false link fabricates a discrepancy between two unrelated events and attaches it to a named company. So the resolver is biased hard toward not linking, and every link it does produce is marked low confidence.
The questions
1. Does Fellegi-Sunter buy anything here? I have no labelled pairs and no way to obtain any, so m and u would have to come from EM. With a comparison vector this thin, and this correlated (the prefix nearly implies the manufacturer, so those two agreement patterns are close to redundant), is EM going to converge on anything meaningful? Or would putting probabilities on this be manufacturing false precision over what is really just a three-field exact-ish gate?
2. What is the right null model for chance agreement? I have not computed this, and I now think it is the first thing I should do. Given the marginal distributions of manufacturer, configuration prefix, and month across both populations, how many pairs would clear my gate by coincidence alone? If that expected count is comparable to the number of links I actually observe, the links carry no information at all. Is that the right first move? And what null would you use, given that fleet composition is extremely concentrated (a single configuration can account for a large share of one population, so independent marginals feel wrong)?
3. Can the false-negative rate be bounded at all without ground truth? Or is "recall is not estimable here" simply the honest terminal statement?
4. Does a one-month tolerance on month-precision data earn its keep, or is it just inflating the candidate space for no real recall gain?
Context, not a pitch
The code and a full methodology write-up are at https://jakpot42.github.io/filing-check/ (repo: https://github.com/JakPot42/filing-check).
To be clear about what it does: it produces no score and no match rate for any company, and it makes no claim about anyone's conduct or intent. It reports differences between two documents, with the ordinary explanations for such differences attached to every result. I am asking about linkage soundness only, and I would rather hear that the approach does not hold up than not hear it.
All reactions