{ "cells": [ { "cell_type": "markdown", "id": "f110e018", "metadata": {}, "source": [ "# Visualising predictions\n", "\n", "Splink contains a variety of tools to help you visualise your predictions.\n", "\n", "The idea is that, by developing an understanding of how your model works, you can gain confidence that the predictions it makes are sensible, or alternatively find examples of where your model isn't working, which may help you improve the model specification and fix these problems.\n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "fb29d421", "metadata": {}, "outputs": [], "source": [ "# Rerun our predictions to we're ready to view the charts\n", "from splink.duckdb.duckdb_linker import DuckDBLinker\n", "import pandas as pd \n", "import altair as alt\n", "alt.renderers.enable('mimetype')\n", "\n", "df = pd.read_csv(\"./data/fake_1000.csv\")\n", "linker = DuckDBLinker(df)\n", "linker.load_settings_from_json(\"./demo_settings/saved_model_from_demo.json\")\n", "df_predictions = linker.predict(threshold_match_probability=0.2)" ] }, { "cell_type": "markdown", "id": "7b0dedd9", "metadata": {}, "source": [ "## Waterfall chart\n", "\n", "The waterfall chart provides a means of visualising individual predictions to understand how Splink computed the final matchweight for a particular pairwise record comparison.\n", "\n", "To plot a waterfall chart, the user chooses one or more records from the results of `linker.predict()`, and provides these records to the [`linker.waterfall_chart()`](https://moj-analytical-services.github.io/splink/linkerqa.html#splink.linker.Linker.waterfall_chart) function.\n", "\n", "For an introduction to waterfall charts and how to interpret them, please see [this](https://www.youtube.com/watch?v=msz3T741KQI&t=507s) video." ] }, { "cell_type": "code", "execution_count": 2, "id": "bbfdc70c", "metadata": {}, "outputs": [ { "data": { "application/vnd.vegalite.v4+json": { "$schema": "https://vega.github.io/schema/vega-lite/v5.2.0.json", "config": { "view": { "continuousHeight": 300, "continuousWidth": 400 } }, "data": { "values": [ { "bar_sort_order": 0, "bayes_factor": 0.009833850927123876, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -6.66802779937637, "m_probability": null, "record_number": 0, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 1, "bayes_factor": 85.5492422084233, "bayes_factor_description": "If comparison level is `exact match` then comparison is 85.55 times more likely to be a match", "column_name": "first_name", "comparison_vector_value": 2, "label_for_charts": "Exact match", "log2_bayes_factor": 6.41868317032687, "m_probability": 0.49563564273680927, "record_number": 0, "sql_condition": "first_name_l = first_name_r", "term_frequency_adjustment": false, "u_probability": 0.0057935713975033705, "value_l": "Grace", "value_r": "Grace" }, { "bar_sort_order": 2, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "surname", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 0, "sql_condition": "surname_l IS NULL OR surname_r IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "nan", "value_r": "Kelly" }, { "bar_sort_order": 3, "bayes_factor": 93.58478813959559, "bayes_factor_description": "If comparison level is `levenshtein <= 1` then comparison is 93.58 times more likely to be a match", "column_name": "dob", "comparison_vector_value": 2, "label_for_charts": "levenshtein <= 1", "log2_bayes_factor": 6.5482021390219165, "m_probability": 0.14988554656992287, "record_number": 0, "sql_condition": "levenshtein(dob_l, dob_r) <= 1", "term_frequency_adjustment": false, "u_probability": 0.0016016016016016017, "value_l": "1997-04-26", "value_r": "1991-04-26" }, { "bar_sort_order": 4, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "city", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 0, "sql_condition": "city_l IS NULL OR city_r IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "Hull", "value_r": "nan" }, { "bar_sort_order": 5, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "tf_city", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 0, "sql_condition": "city_l IS NULL OR city_r IS NULL", "term_frequency_adjustment": true, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 6, "bayes_factor": 255.4199334194977, "bayes_factor_description": "If comparison level is `exact match` then comparison is 255.42 times more likely to be a match", "column_name": "email", "comparison_vector_value": 3, "label_for_charts": "Exact match", "log2_bayes_factor": 7.996727309659809, "m_probability": 0.5603584650366957, "record_number": 0, "sql_condition": "email_l = email_r", "term_frequency_adjustment": false, "u_probability": 0.0021938713143283602, "value_l": "grace.kelly52@jones.com", "value_r": "grace.kelly52@jones.com" }, { "bar_sort_order": 7, "bayes_factor": 20109.43349755392, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": 14.295584819632225, "m_probability": null, "record_number": 0, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 0, "bayes_factor": 0.009833850927123876, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -6.66802779937637, "m_probability": null, "record_number": 1, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 1, "bayes_factor": 85.5492422084233, "bayes_factor_description": "If comparison level is `exact match` then comparison is 85.55 times more likely to be a match", "column_name": "first_name", "comparison_vector_value": 2, "label_for_charts": "Exact match", "log2_bayes_factor": 6.41868317032687, "m_probability": 0.49563564273680927, "record_number": 1, "sql_condition": "first_name_l = first_name_r", "term_frequency_adjustment": false, "u_probability": 0.0057935713975033705, "value_l": "Thomas", "value_r": "Thomas" }, { "bar_sort_order": 2, "bayes_factor": 90.1703772843795, "bayes_factor_description": "If comparison level is `exact match` then comparison is 90.17 times more likely to be a match", "column_name": "surname", "comparison_vector_value": 3, "label_for_charts": "Exact match", "log2_bayes_factor": 6.494581652935134, "m_probability": 0.4409309402659144, "record_number": 1, "sql_condition": "surname_l = surname_r", "term_frequency_adjustment": false, "u_probability": 0.004889975550122249, "value_l": "Gabriel", "value_r": "Gabriel" }, { "bar_sort_order": 3, "bayes_factor": 93.58478813959559, "bayes_factor_description": "If comparison level is `levenshtein <= 1` then comparison is 93.58 times more likely to be a match", "column_name": "dob", "comparison_vector_value": 2, "label_for_charts": "levenshtein <= 1", "log2_bayes_factor": 6.5482021390219165, "m_probability": 0.14988554656992287, "record_number": 1, "sql_condition": "levenshtein(dob_l, dob_r) <= 1", "term_frequency_adjustment": false, "u_probability": 0.0016016016016016017, "value_l": "1976-09-15", "value_r": "1976-08-15" }, { "bar_sort_order": 4, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "city", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 1, "sql_condition": "city_l IS NULL OR city_r IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "Loodon", "value_r": "nan" }, { "bar_sort_order": 5, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "tf_city", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 1, "sql_condition": "city_l IS NULL OR city_r IS NULL", "term_frequency_adjustment": true, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 6, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "email", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 1, "sql_condition": "email_l IS NULL OR email_r IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "gabriel.t54@nnichls.info", "value_r": "nan" }, { "bar_sort_order": 7, "bayes_factor": 7099.19222503078, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": 12.793439162907552, "m_probability": null, "record_number": 1, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 0, "bayes_factor": 0.009833850927123876, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -6.66802779937637, "m_probability": null, "record_number": 2, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 1, "bayes_factor": 85.5492422084233, "bayes_factor_description": "If comparison level is `exact match` then comparison is 85.55 times more likely to be a match", "column_name": "first_name", "comparison_vector_value": 2, "label_for_charts": "Exact match", "log2_bayes_factor": 6.41868317032687, "m_probability": 0.49563564273680927, "record_number": 2, "sql_condition": "first_name_l = first_name_r", "term_frequency_adjustment": false, "u_probability": 0.0057935713975033705, "value_l": "Thomas", "value_r": "Thomas" }, { "bar_sort_order": 2, "bayes_factor": 90.1703772843795, "bayes_factor_description": "If comparison level is `exact match` then comparison is 90.17 times more likely to be a match", "column_name": "surname", "comparison_vector_value": 3, "label_for_charts": "Exact match", "log2_bayes_factor": 6.494581652935134, "m_probability": 0.4409309402659144, "record_number": 2, "sql_condition": "surname_l = surname_r", "term_frequency_adjustment": false, "u_probability": 0.004889975550122249, "value_l": "Gabriel", "value_r": "Gabriel" }, { "bar_sort_order": 3, "bayes_factor": 93.58478813959559, "bayes_factor_description": "If comparison level is `levenshtein <= 1` then comparison is 93.58 times more likely to be a match", "column_name": "dob", "comparison_vector_value": 2, "label_for_charts": "levenshtein <= 1", "log2_bayes_factor": 6.5482021390219165, "m_probability": 0.14988554656992287, "record_number": 2, "sql_condition": "levenshtein(dob_l, dob_r) <= 1", "term_frequency_adjustment": false, "u_probability": 0.0016016016016016017, "value_l": "1976-09-15", "value_r": "1976-08-15" }, { "bar_sort_order": 4, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "city", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 2, "sql_condition": "city_l IS NULL OR city_r IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "London", "value_r": "nan" }, { "bar_sort_order": 5, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "tf_city", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 2, "sql_condition": "city_l IS NULL OR city_r IS NULL", "term_frequency_adjustment": true, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 6, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "email", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 2, "sql_condition": "email_l IS NULL OR email_r IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "gabriel.t54@nichols.info", "value_r": "nan" }, { "bar_sort_order": 7, "bayes_factor": 7099.19222503078, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": 12.793439162907552, "m_probability": null, "record_number": 2, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 0, "bayes_factor": 0.009833850927123876, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -6.66802779937637, "m_probability": null, "record_number": 3, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 1, "bayes_factor": 85.5492422084233, "bayes_factor_description": "If comparison level is `exact match` then comparison is 85.55 times more likely to be a match", "column_name": "first_name", "comparison_vector_value": 2, "label_for_charts": "Exact match", "log2_bayes_factor": 6.41868317032687, "m_probability": 0.49563564273680927, "record_number": 3, "sql_condition": "first_name_l = first_name_r", "term_frequency_adjustment": false, "u_probability": 0.0057935713975033705, "value_l": "Theodore", "value_r": "Theodore" }, { "bar_sort_order": 2, "bayes_factor": 0.26190825137661683, "bayes_factor_description": "If comparison level is `all other comparisons` then comparison is 3.82 times less likely to be a match", "column_name": "surname", "comparison_vector_value": 0, "label_for_charts": "All other comparisons", "log2_bayes_factor": -1.9328665826115932, "m_probability": 0.2586962745289042, "record_number": 3, "sql_condition": "ELSE", "term_frequency_adjustment": false, "u_probability": 0.9877362517949315, "value_l": "Morris", "value_r": "Marshall" }, { "bar_sort_order": 3, "bayes_factor": 0.25561183473710014, "bayes_factor_description": "If comparison level is `all other comparisons` then comparison is 3.91 times less likely to be a match", "column_name": "dob", "comparison_vector_value": 0, "label_for_charts": "All other comparisons", "log2_bayes_factor": -1.9679734607884474, "m_probability": 0.25078924028151967, "record_number": 3, "sql_condition": "ELSE", "term_frequency_adjustment": false, "u_probability": 0.9811331331331331, "value_l": "1978-08-19", "value_r": "1972-07-25" }, { "bar_sort_order": 4, "bayes_factor": 10.257652575272894, "bayes_factor_description": "If comparison level is `exact match` then comparison is 10.26 times more likely to be a match", "column_name": "city", "comparison_vector_value": 1, "label_for_charts": "Exact match", "log2_bayes_factor": 3.3586287083381365, "m_probability": 0.5656846255360627, "record_number": 3, "sql_condition": "city_l = city_r", "term_frequency_adjustment": false, "u_probability": 0.0551475711801453, "value_l": "Birmingham", "value_r": "Birmingham" }, { "bar_sort_order": 5, "bayes_factor": 1.1208743842364532, "bayes_factor_description": "Term frequency adjustment on city makes comparison 1.12 times more likely to be a match", "column_name": "tf_city", "comparison_vector_value": 1, "label_for_charts": "Term freq adjustment on city with weight {cl.tf_adjustment_weight}", "log2_bayes_factor": 0.16462460517844008, "m_probability": null, "record_number": 3, "sql_condition": "city_l = city_r", "term_frequency_adjustment": true, "u_probability": null, "value_l": "Birmingham", "value_r": "Birmingham" }, { "bar_sort_order": 6, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "email", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 3, "sql_condition": "email_l IS NULL OR email_r IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "t.m39@brooks-sawyer.com", "value_r": "nan" }, { "bar_sort_order": 7, "bayes_factor": 0.6475523081724802, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": -0.6269313589329639, "m_probability": null, "record_number": 3, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 0, "bayes_factor": 0.009833850927123876, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -6.66802779937637, "m_probability": null, "record_number": 4, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 1, "bayes_factor": 85.5492422084233, "bayes_factor_description": "If comparison level is `exact match` then comparison is 85.55 times more likely to be a match", "column_name": "first_name", "comparison_vector_value": 2, "label_for_charts": "Exact match", "log2_bayes_factor": 6.41868317032687, "m_probability": 0.49563564273680927, "record_number": 4, "sql_condition": "first_name_l = first_name_r", "term_frequency_adjustment": false, "u_probability": 0.0057935713975033705, "value_l": "Theodore", "value_r": "Theodore" }, { "bar_sort_order": 2, "bayes_factor": 0.26190825137661683, "bayes_factor_description": "If comparison level is `all other comparisons` then comparison is 3.82 times less likely to be a match", "column_name": "surname", "comparison_vector_value": 0, "label_for_charts": "All other comparisons", "log2_bayes_factor": -1.9328665826115932, "m_probability": 0.2586962745289042, "record_number": 4, "sql_condition": "ELSE", "term_frequency_adjustment": false, "u_probability": 0.9877362517949315, "value_l": "Morris", "value_r": "Marshall" }, { "bar_sort_order": 3, "bayes_factor": 0.25561183473710014, "bayes_factor_description": "If comparison level is `all other comparisons` then comparison is 3.91 times less likely to be a match", "column_name": "dob", "comparison_vector_value": 0, "label_for_charts": "All other comparisons", "log2_bayes_factor": -1.9679734607884474, "m_probability": 0.25078924028151967, "record_number": 4, "sql_condition": "ELSE", "term_frequency_adjustment": false, "u_probability": 0.9811331331331331, "value_l": "1978-08-19", "value_r": "1972-07-25" }, { "bar_sort_order": 4, "bayes_factor": 10.257652575272894, "bayes_factor_description": "If comparison level is `exact match` then comparison is 10.26 times more likely to be a match", "column_name": "city", "comparison_vector_value": 1, "label_for_charts": "Exact match", "log2_bayes_factor": 3.3586287083381365, "m_probability": 0.5656846255360627, "record_number": 4, "sql_condition": "city_l = city_r", "term_frequency_adjustment": false, "u_probability": 0.0551475711801453, "value_l": "Birmingham", "value_r": "Birmingham" }, { "bar_sort_order": 5, "bayes_factor": 1.1208743842364532, "bayes_factor_description": "Term frequency adjustment on city makes comparison 1.12 times more likely to be a match", "column_name": "tf_city", "comparison_vector_value": 1, "label_for_charts": "Term freq adjustment on city with weight {cl.tf_adjustment_weight}", "log2_bayes_factor": 0.16462460517844008, "m_probability": null, "record_number": 4, "sql_condition": "city_l = city_r", "term_frequency_adjustment": true, "u_probability": null, "value_l": "Birmingham", "value_r": "Birmingham" }, { "bar_sort_order": 6, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "email", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 4, "sql_condition": "email_l IS NULL OR email_r IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "t.m39@brooks-sawyer.com", "value_r": "nan" }, { "bar_sort_order": 7, "bayes_factor": 0.6475523081724802, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": -0.6269313589329639, "m_probability": null, "record_number": 4, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" } ] }, "height": 450, "layer": [ { "layer": [ { "encoding": { "color": { "value": "black" }, "size": { "value": 0.5 }, "y": { "field": "zero", "type": "quantitative" } }, "mark": "rule" }, { "encoding": { "color": { "condition": { "test": "(datum.log2_bayes_factor < 0)", "value": "red" }, "value": "green" }, "opacity": { "condition": { "test": "datum.column_name == 'Prior match weight' || datum.column_name == 'Final score'", "value": 1 }, "value": 0.5 }, "tooltip": [ { "field": "column_name", "title": "Comparison column", "type": "nominal" }, { "field": "value_l", "title": "Value (L)", "type": "nominal" }, { "field": "value_r", "title": "Value (R)", "type": "nominal" }, { "field": "label_for_charts", "title": "Label", "type": "ordinal" }, { "field": "sql_condition", "title": "SQL condition", "type": "nominal" }, { "field": "comparison_vector_value", "title": "Comparison vector value", "type": "nominal" }, { "field": "bayes_factor", "format": ",.4f", "title": "Bayes factor = m/u", "type": "quantitative" }, { "field": "log2_bayes_factor", "format": ",.4f", "title": "Match weight = log2(m/u)", "type": "quantitative" }, { "field": "prob", "format": ".4f", "title": "Adjusted match score", "type": "quantitative" }, { "field": "bayes_factor_description", "title": "Match weight description", "type": "nominal" } ], "x": { "axis": { "grid": true, "labelAlign": "center", "labelAngle": -20, "labelExpr": "datum.value == 'Prior' || datum.value == 'Final score' ? '' : datum.value", "labelPadding": 10, "tickBand": "extent", "title": "Column" }, "field": "column_name", "sort": { "field": "bar_sort_order", "order": "ascending" }, "type": "nominal" }, "y": { "axis": { "grid": false, "orient": "left", "title": "log2(Bayes factor)" }, "field": "previous_sum", "type": "quantitative" }, "y2": { "field": "sum" } }, "mark": { "type": "bar", "width": 60 } }, { "encoding": { "color": { "value": "white" }, "text": { "condition": { "field": "log2_bayes_factor", "format": ".2f", "test": "abs(datum.log2_bayes_factor) > 1", "type": "nominal" }, "value": "" }, "x": { "axis": { "labelAngle": 0, "title": "Column" }, "field": "column_name", "sort": { "field": "bar_sort_order", "order": "ascending" }, "type": "nominal" }, "y": { "axis": { "orient": "left" }, "field": "center", "type": "quantitative" } }, "mark": { "fontWeight": "bold", "type": "text" } }, { "encoding": { "color": { "value": "black" }, "text": { "field": "column_name", "type": "nominal" }, "x": { "axis": { "labelAngle": 0, "title": "Column" }, "field": "column_name", "sort": { "field": "bar_sort_order", "order": "ascending" }, "type": "nominal" }, "y": { "field": "sum_top", "type": "quantitative" } }, "mark": { "baseline": "bottom", "dy": -25, "fontWeight": "bold", "type": "text" } }, { "encoding": { "color": { "value": "grey" }, "text": { "field": "value_l", "type": "nominal" }, "x": { "axis": { "labelAngle": 0, "title": "Column" }, "field": "column_name", "sort": { "field": "bar_sort_order", "order": "ascending" }, "type": "nominal" }, "y": { "field": "sum_top", "type": "quantitative" } }, "mark": { "baseline": "bottom", "dy": -13, "fontSize": 8, "type": "text" } }, { "encoding": { "color": { "value": "grey" }, "text": { "field": "value_r", "type": "nominal" }, "x": { "axis": { "labelAngle": 0, "title": "Column" }, "field": "column_name", "sort": { "field": "bar_sort_order", "order": "ascending" }, "type": "nominal" }, "y": { "field": "sum_top", "type": "quantitative" } }, "mark": { "baseline": "bottom", "dy": -5, "fontSize": 8, "type": "text" } } ] }, { "encoding": { "x": { "axis": { "labelAngle": 0, "title": "Column" }, "field": "column_name", "sort": { "field": "bar_sort_order", "order": "ascending" }, "type": "nominal" }, "x2": { "field": "lead" }, "y": { "axis": { "labelExpr": "format(1 / (1 + pow(2, -1*datum.value)), '.2r')", "orient": "right", "title": "Probability" }, "field": "sum", "scale": { "zero": false }, "type": "quantitative" } }, "mark": { "color": "black", "strokeWidth": 2, "type": "rule", "x2Offset": 30, "xOffset": -30 } } ], "params": [ { "bind": { "input": "range", "max": 4, "min": 0, "step": 1 }, "description": "Filter by the interation number", "name": "record_number", "value": 0 } ], "resolve": { "axis": { "y": "independent" } }, "title": { "subtitle": "How each comparison contributes to the final match score", "text": "Match weights waterfall chart" }, "transform": [ { "filter": "(datum.record_number == record_number)" }, { "frame": [ null, 0 ], "window": [ { "as": "sum", "field": "log2_bayes_factor", "op": "sum" }, { "as": "lead", "field": "column_name", "op": "lead" } ] }, { "as": "sum", "calculate": "datum.column_name === \"Final score\" ? datum.sum - datum.log2_bayes_factor : datum.sum" }, { "as": "lead", "calculate": "datum.lead === null ? datum.column_name : datum.lead" }, { "as": "previous_sum", "calculate": "datum.column_name === \"Final score\" || datum.column_name === \"Prior match weight\" ? 0 : datum.sum - datum.log2_bayes_factor" }, { "as": "top_label", "calculate": "datum.sum > datum.previous_sum ? datum.column_name : \"\"" }, { "as": "bottom_label", "calculate": "datum.sum < datum.previous_sum ? datum.column_name : \"\"" }, { "as": "sum_top", "calculate": "datum.sum > datum.previous_sum ? datum.sum : datum.previous_sum" }, { "as": "sum_bottom", "calculate": "datum.sum < datum.previous_sum ? datum.sum : datum.previous_sum" }, { "as": "center", "calculate": "(datum.sum + datum.previous_sum) / 2" }, { "as": "text_log2_bayes_factor", "calculate": "(datum.log2_bayes_factor > 0 ? \"+\" : \"\") + datum.log2_bayes_factor" }, { "as": "dy", "calculate": "datum.sum < datum.previous_sum ? 4 : -4" }, { "as": "baseline", "calculate": "datum.sum < datum.previous_sum ? \"top\" : \"bottom\"" }, { "as": "prob", "calculate": "1. / (1 + pow(2, -1.*datum.sum))" }, { "as": "zero", "calculate": "0*datum.sum" } ], "width": { "step": 75 } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAAArkAAAIgCAYAAACBN3E/AAAAAXNSR0IArs4c6QAAIABJREFUeF7snQeYFUX2tw8gKhJUDAiKIOYsCosiAgqyqJgVAwbErKurgNk1IK5ZDGtc02JYEwbWtJgVQVTEhIroHxVFcddMWgT8nrf269nLeO/MqZnbd24Pv/LhAWdOV1f96nT126dPVzX49ddffzUVKSAFpIAUkAJSQApIASlQjxRoIMitR6OprkgBKSAFpIAUkAJSQAoEBQS5cgQpIAWkgBSQAlJACkiBeqeAILfeDak6JAWkgBSQAlJACkgBKSDIlQ9IASkgBaSAFJACUkAK1DsFBLn1bkjVISmwuAK535Y2aNCg4peFfp5V/ebPn29z5861ZZdd1pZZZpmsdiOVdv/000+h3hYtWlRZf+ITiZ/w/7k+k0rjVKkUkAJSICUFBLkpCatqpUC5KLD++uvbRx99FJrzyiuvWNeuXcO/+/TpY08//XT492OPPWa77LJLlU1+55137LXXXrMuXbrYpptuWqXt22+/bVtssYXtueee9tBDD5VEiuuuu87+8Ic/2Pnnn2/nnHNOtefs37+/PfDAA/bGG2/YVltt9Rv7p556yr744ovQh5VWWqna+opt8K9//cseffRRW3PNNcNY1aT8+OOP1r17d2PsDj30ULvjjjsKVjN58mTbZJNNbIcddrBnn33WbrrpJjvmmGPswgsvtDPPPNN9+jTGvq7Hwt15GUoBKVBWCghyy2o41BgpUHwFciH3kksusVNPPdX+85//hIhnUv7xj39Yv379qjz5iBEjbPDgwXbttdcGmKyqTJo0ybbccssAzgB0Kcpzzz1n9957r+26667hT3Vljz32CBA5YcIE+93vfvcb8912283Q5c0337SOHTtWV13Rfw98d+7cuVYPCo888kg4nnqGDx9eJSy/99574eElgdwbb7zRjj322HDcWWed5e5fGmNf12Ph7rwMpYAUKCsFBLllNRxqjBQovgIJ5DZv3ty6detmTzzxhL366qu2zTbbGD/7+eefA8wBuRMnTrQ//elP4e927doF+9NPPz38/0knnRQiwuutt14A5cMPPzxA4mWXXWZTp061nj17GuB4wAEHWAI62223XbCnfuq76KKLrFevXot18sknnww/33777UMU9q9//avdeeedttdee4Vz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gtzfQm5lpQFWNvrieyuir1OmTAkmd955p7344ot2yy23VBzCz4YOHWo777yzjRo1yjbYYIPwpp7jW7RoETYKu+6662zMmDG29dZb+we1yJbVQu73338fKJyo61lnnRVOT5rBXnvtZW+++WbIwfCWwYMH2zLLLBPon0JYG7BdZ5118lahdIXCysZc3N7xqa920so/sjFaCXIFuV7PivErb5311U5a+Uc2RitBrj+Sy8dmBDD5gIwg5IgRI8KgnHzyyYsNDhFfGI70hpdffjmkM6y77rphJRlydYnq8g3WlVde6R/UIltWC7lJbsbBBx8cKJ782YsvvjikK3z00UehQ94C+f/1r38N+RpffPGFbbPNNjZjxgzl5HoFzLGLubhrUH29OkRa+YczRitBriDX61kxfuWts77aSSv/yMZoJcj1Qy4jQCSW76fIrf39738fgJUo7eTJk61z58623377hT977LGHDRo0KKSv7r///sbGJu+++661a9fOjjrqqBAIZVOxuirVQi4NI3H4tttuC21kSQh2OyN14b777otqNx+tkcBMugJPCYiGKIWKIrmF5Y25uKMGqR4aSyv/oMZoJcgV5Ho9K8avvHXWVztp5R/ZGK0EuXGQywoJBx10UBiMXXbZJeTZAq+ALosQPPnkkxUbhK299tphRQXWDWeVhT/96U9hgYL27dvbvffeW+PFCvyeUNjSBbmErh955JEAtYSeAVMgt6bLQpACQc5GoVUVkuYKcgW5xXDymImwGOfLch0xWglyBbleX4/xK2+d9dVOWvlHNkYrQW4c5DIKpB3AfKyskK/wpv+bb76xNm3aLPZrdsH97rvvQlS3rosLcg855BA74ogjKlZTINWA9AUInbzatIogV5BbDN+KmQiLcb4s1xGjlSBXkOv19Ri/8tZZX+2klX9kY7QS5MZDrn8kyteySshlXVuWjuADM5b8WnXVVUNPIHdAlw0i0lwaQpAryC3GpRMzERbjfFmuI0YrQa4g1+vrMX7lrbO+2kkr/8jGaCXIFeT+xrNGjhwZ8isqQy6GrKEGhKZZBLmC3GL4V8xEWIzzZbmOGK0EuYJcr6/H+JW3zvpqJ638IxujlSBXkFvQs9jEgZ3JttpqK7/3FcFSkCvILYIbaeOMCBFjbhqCXEGu17Vi/MpbZ321k1b+kY3RSpAryC3oWWzYwPpnLAex+uqr27nnnhu+nmPx3zSLIFeQWwz/ipkIi3G+LNcRo5UgV5Dr9fUYv/LWWV/tpJV/ZGO0EuQKcgt6FuugPfroo2GxX76yY/MG8nOBXzZ3SKsIcgW5xfCtmImwGOfLch0xWglyBbleX4/xK2+d9dVOWvlHNkYrQW52IXfhwoU2YcKEgo7RsGHDgruqVbu6QrIZBJHbYcOGhZOwPhpbucXueOZ33f9aCnIFubE+k88+ZiIsxvmyXEeMVoJcQa7X12P8yltnfbWTVv6RjdFKkJtdyGVd3uWXX75Kx/j111/z/r5ayOUo1rTlBERzmzZtGlIX2Nr3448/NhYBTqsIcgW5xfCtmImwGOfLch0xWglyBbleX4/xK2+d9dVOWvlHNkYrQW52IZeNxC6//PLgGKzsdeONN9rAgQNDVgE76L7wwgtWK8hl3+EhQ4Ys5nmsk8vqC2kWQa4gtxj+FTMRFuN8Wa4jNFZIXQAAIABJREFURitBriDX6+sxfuWts77aSSv/yMZoJcjNLuTmesSkSZNsyy23DGDbo0cPGz58ePhGrFaQywm++uqrsB3vl19+aX379rVOnToZeRBpFkGuILcY/hUzERbjfFmuI0YrQa4g1+vrMX7lrbO+2kkr/8jGaCXIrR+QSyS3bdu2dsUVV4RthffZZx975ZVXbObMmXkdx5WuwLa+t99+u02dOjVUsmjRIvvggw/soYcesmbNmvk9MtJSkCvIjXSZvOYxE2ExzpflOmK0EuQKcr2+HuNX3jrrq5208o9sjFaC3PoBuXjHxhtvbO+//741b97cfv75ZzvxxBPDng75igty+/XrZ48//vhvjqdyQa7/giymZczFXczzZrEuaeUftRitBLmCXK9nxfiVt876aiet/CMbo5Ugt/5AListXHTRRfbuu+/agAED7JhjjrE2bdrUDHKT1RWIqo4ePdp22203a9Sokd1zzz32xhtvWIMGDfweGWmpSK4iuZEuo0huLQWLuWkIcgW5XneL8StvnfXVTlr5RzZGK0Fu/YFcv4eYVRvJJTUBqD355JOtSZMmRtIvX7kRLiZlIc0NIQS5gtwYZy5kGzMRFuN8Wa4jRitBriDX6+sxfuWts77aSSv/yMZoJcjNLuTOmjUrb6SWfRumTJlSpcNUC7kcfcghh9idd95pf//73+2AAw6oqFDpCv6LsdiWMRd3sc+dtfqklX/EYrQS5ApyvZ4V41feOuurnbTyj2yMVoLc7ELunDlzwgdmSQFsGfvdd9/dHnnkkdpDLmuUjRkzxnr16mX333+/TZw40fbbbz/r1q2b3xtrYKlIriK5NXCb3xwSMxEW43xZriNGK0GuINfr6zF+5a2zvtpJK//IxmglyM0u5Fb2CJh0zTXXtA4dOtj48eNrBrnz5s2zLl26hGUaLr30Ujv11FOtd+/efu8rgqUgV5BbBDcKT3xcDCrVKxCjlSBXflW9R/3XIsavvHXWVztp5R/ZGK0EufUDclkPl2/B7r33XnvttdcCny611FIFnaZgukKSi5ss0bDqqqv+ZiWFd955J+yAllYR5Apyi+FbMRNhMc6X5TpitBLkCnK9vh7jV94666udtPKPbIxWgtxsQ+6nn34adjq7++67wy68Bx10kB199NHWsmXLmkVyOYodzVgfl50l1ltvPWvVqtVilT311FO23HLL+T0y0lKQK8iNdJm85jETYTHOl+U6YrQS5Apyvb4e41feOuurnbTyj2yMVoLcbENunz597Omnnw67nf3www/h7dCuu+4aVv2qqrg+PDvnnHNszz33tI4dO/q9rwiWglxBbhHcSK9KI0SMuWkIcgW5XteK8StvnfXVTlr5RzZGK0FudiGX9XA322wzu+WWW+zwww8PDjJ48GAbMWKEsVnZsssuW9BpXJDrd7niWgpyBbnF8KiYibAY58tyHTFaCXIFuV5fj/Erb5311U5a+Uc2RitBbvYhl1W+SFOgnHHGGXbxxRfbjz/+GNIXChVBrv96KivLmIu7rBpeB42RVn7RY7QS5ApyvZ4V41feOuurnbTyj2yMVoLc7EIuqymss8469sUXX1jPnj3tp59+sjfffDPsdHbDDTdU6TCCXP/1VFaWMRd3WTW8Dhojrfyix2glyBXkej0rxq+8ddZXO2nlH9kYrQS52YVcPOL999+3q6++OuzXwMZkAwcOtCFDhhiLIlRVXJALNV911VV21lln2XnnnRd2Ohs6dKhtvfXWfm+sgaXSFQqLFnNx10D6enWItPIPZ4xWglxBrtezYvzKW2d9tZNW/pGN0UqQm23ITbxiwYIF1rBhw/DHU1yQu9tuu9k//vEPGzVqlO29996h3jXWWMOmT5/uOUeNbQS5gtwaO0/OgTETYTHOl+U6YrQS5Apyvb4e41feOuurnbTyj2yMVoLc7EIuu+tWlXfLUrcEY/OVaiEXam7cuLHddNNNYdczQJdI7oYbbmgffvihrb/++n6PjLQU5ApyI10mr3nMRFiM82W5jhitBLmCXK+vx/iVt876aiet/CMbo5UgN7uQywoKLGNLTu7vf/97++WXX+y5554LKy5stNFGtswyy9gdd9xRM8hduHChtWnTxo4//ni7/PLLbYcddrBDDz3U9tprL/vqq69stdVW83tkpKUgV5Ab6TKC3FoKFnPTEOQKcr3uFuNX3jrrq5208o9sjFaC3OxC7pw5c8LGY7fddpsddthhwUH22GMPmzp1qk2ePLlKh6k2ksvR5N+yvS/liSeesP3228/WXXddmzhxot8ba2ApyBXk1sBtfnNIzERYjPNluY4YrQS5glyvr8f4lbfO+monrfwjG6OVIDe7kDtlyhTbYIMN7Oyzzw5/CL527tw5fIxGVLdG2/rmuhl7BT///PNhv2CWb7j++uutf//+tsoqq/i9sQaWglxBbg3cRpBbC9FibhqCXEGu19Vi/MpbZ321k1b+kY3RSpCbXcglbXbzzTcPUJtbjj322MCjVRVXJJekX6K5RHHZK5g1y/bdd9+QD1HT8t1334XwM7kUhYogV5BbU//KPS5mIizG+bJcR4xWglxBrtfXY/zKW2d9tZNW/pGN0UqQGw+5ixYtCjuKwWqFCh985fsoDDD9/vvvixYM/fe//22PPPJI4FBWVmBBBNJmmzVrVnvIJWr7wAMPhIrYZWLChAn23nvv2eeff14lpBY682effWabbrqpPfXUU9a1a1dBrv+arrCMubhrUH29OkRa+YczRitBriDX61kxfuWts77aSSv/yMZoJciNg9zbb789LB27+uqrG8B69913Lwasjz/+uGHDmrUwHWvYduzYsWLwWMOW7XhZsKAY5eOPP7aHH37YttxyS9t2222NFAaiu9WVaiO5yeoK559/vs2ePdsaNWpkO+20k3Xv3t3efvvt6Gju/PnzQ6rDtGnTwk4Vgtzqhij/72Mu7pqdof4cJa38YxmjlSBXkOv1rBi/8tZZX+2klX9kY7QS5PohN+G+H374wZZffnk78cQTrXXr1iHImZS2bdvagw8+aF26dAmwSyCUKCtl9OjRduONNwY4Lgbkkj1AeixZBRSWtN11111t8ODBFd+LFfKaaiGXBF+S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", "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/troubleshooting.html\n" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "records_to_view = df_predictions.as_record_dict(limit=5)\n", "linker.waterfall_chart(records_to_view, filter_nulls=False)\n" ] }, { "cell_type": "markdown", "id": "48b76176", "metadata": {}, "source": [ "## Comparison viewer dashboard\n", "\n", "The [comparison viewer dashboard](https://moj-analytical-services.github.io/splink/linkerqa.html#splink.linker.Linker.comparison_viewer_dashboard) takes this one step further by producing an interactive dashboard the contains examples predictions from across the spectrum of match scores.\n", "\n", "An in-depth video describing how to interpret the dashboard can be found [here](https://www.youtube.com/watch?v=DNvCMqjipis).\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "da85169c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "linker.comparison_viewer_dashboard(df_predictions, \"scv.html\", overwrite=True)\n", "\n", "# You can view the scv.html file in your browser, or inline in a notbook as follows\n", "from IPython.display import IFrame\n", "IFrame(\n", " src=\"./scv.html\", width=\"100%\", height=1200\n", ") " ] }, { "cell_type": "markdown", "id": "d34df82c", "metadata": {}, "source": [ "## Cluster studio dashboard\n", "\n", "Cluster studio is an interactive dashboards that visualises the results of clustering your predictions.\n", "\n", "It provides examples of clusters of different sizes. The shape and size of clusters can be indicative of problems with record linkage, so it provides a tool to help you find potential false positive and negative links." ] }, { "cell_type": "code", "execution_count": 4, "id": "e2153d91", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Completed iteration 1, root rows count 14\n", "Completed iteration 2, root rows count 0\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_clusters = linker.cluster_pairwise_predictions_at_threshold(df_predictions, threshold_match_probability=0.5)\n", "\n", "linker.cluster_studio_dashboard(df_predictions, df_clusters, \"cluster_studio.html\", sampling_method=\"by_cluster_size\", overwrite=True)\n", "\n", "# You can view the scv.html file in your browser, or inline in a notbook as follows\n", "from IPython.display import IFrame\n", "IFrame(\n", " src=\"./cluster_studio.html\", width=\"100%\", height=1200\n", ")" ] }, { "cell_type": "markdown", "id": "9516568e", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" }, "vscode": { "interpreter": { "hash": "3b53fa520a31e303a9636a08ff10a3bbc14893ee50cb37445791fa59628fc75b" } } }, "nbformat": 4, "nbformat_minor": 5 }