{ "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.0033430420247643373, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -8.224622793739668, "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.5485223719195, "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.4186710310150925, "m_probability": 0.49563147231263005, "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.58522958762835, "bayes_factor_description": "If comparison level is `levenshtein <= 1` then comparison is 93.59 times more likely to be a match", "column_name": "dob", "comparison_vector_value": 2, "label_for_charts": "levenshtein <= 1", "log2_bayes_factor": 6.548208944330752, "m_probability": 0.14988625359379917, "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.41995286654844, "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.9967274195030855, "m_probability": 0.5603585077010225, "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": 6836.2270630146295, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": 12.738984601109264, "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.0033430420247643373, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -8.224622793739668, "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.5485223719195, "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.4186710310150925, "m_probability": 0.49563147231263005, "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.16953460720651, "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.494568170327033, "m_probability": 0.4409268195951419, "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.58522958762835, "bayes_factor_description": "If comparison level is `levenshtein <= 1` then comparison is 93.59 times more likely to be a match", "column_name": "dob", "comparison_vector_value": 2, "label_for_charts": "levenshtein <= 1", "log2_bayes_factor": 6.548208944330752, "m_probability": 0.14988625359379917, "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": 2413.356536258096, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": 11.236825351933211, "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.0033430420247643373, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -8.224622793739668, "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.5485223719195, "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.4186710310150925, "m_probability": 0.49563147231263005, "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.16953460720651, "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.494568170327033, "m_probability": 0.4409268195951419, "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.58522958762835, "bayes_factor_description": "If comparison level is `levenshtein <= 1` then comparison is 93.59 times more likely to be a match", "column_name": "dob", "comparison_vector_value": 2, "label_for_charts": "levenshtein <= 1", "log2_bayes_factor": 6.548208944330752, "m_probability": 0.14988625359379917, "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": 2413.356536258096, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": 11.236825351933211, "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.0033430420247643373, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -8.224622793739668, "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.5485223719195, "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.4186710310150925, "m_probability": 0.49563147231263005, "record_number": 3, "sql_condition": "\"first_name_l\" = \"first_name_r\"", "term_frequency_adjustment": false, "u_probability": 0.0057935713975033705, "value_l": "Erin", "value_r": "Erin" }, { "bar_sort_order": 2, "bayes_factor": 79.14940905778622, "bayes_factor_description": "If comparison level is `levenshtein <= 1` then comparison is 79.15 times more likely to be a match", "column_name": "surname", "comparison_vector_value": 2, "label_for_charts": "levenshtein <= 1", "log2_bayes_factor": 6.306506673896895, "m_probability": 0.1871395791688435, "record_number": 3, "sql_condition": "levenshtein(\"surname_l\", \"surname_r\") <= 1", "term_frequency_adjustment": false, "u_probability": 0.002364383782476692, "value_l": "Rogers", "value_r": "Roers" }, { "bar_sort_order": 3, "bayes_factor": 13.323346076010694, "bayes_factor_description": "If comparison level is `levenshtein <= 2` then comparison is 13.32 times more likely to be a match", "column_name": "dob", "comparison_vector_value": 1, "label_for_charts": "levenshtein <= 2", "log2_bayes_factor": 3.7358845467435784, "m_probability": 0.20674525612644423, "record_number": 3, "sql_condition": "levenshtein(\"dob_l\", \"dob_r\") <= 2", "term_frequency_adjustment": false, "u_probability": 0.015517517517517518, "value_l": "2010-01-02", "value_r": "2010-03-03" }, { "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": 3, "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": 3, "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": 3, "sql_condition": "\"email_l\" IS NULL OR \"email_r\" IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "e.rogers3@hopkins.org", "value_r": "nan" }, { "bar_sort_order": 7, "bayes_factor": 301.5888868398943, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": 8.2364394579159, "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.0033430420247643373, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -8.224622793739668, "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.5485223719195, "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.4186710310150925, "m_probability": 0.49563147231263005, "record_number": 4, "sql_condition": "\"first_name_l\" = \"first_name_r\"", "term_frequency_adjustment": false, "u_probability": 0.0057935713975033705, "value_l": "Erin", "value_r": "Erin" }, { "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": 4, "sql_condition": "\"surname_l\" IS NULL OR \"surname_r\" IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "nan", "value_r": "Roers" }, { "bar_sort_order": 3, "bayes_factor": 93.58522958762835, "bayes_factor_description": "If comparison level is `levenshtein <= 1` then comparison is 93.59 times more likely to be a match", "column_name": "dob", "comparison_vector_value": 2, "label_for_charts": "levenshtein <= 1", "log2_bayes_factor": 6.548208944330752, "m_probability": 0.14988625359379917, "record_number": 4, "sql_condition": "levenshtein(\"dob_l\", \"dob_r\") <= 1", "term_frequency_adjustment": false, "u_probability": 0.0016016016016016017, "value_l": "2010-03-01", "value_r": "2010-03-03" }, { "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": 4, "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": 4, "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": 4, "sql_condition": "\"email_l\" IS NULL OR \"email_r\" IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "e.rogers3@honkips.org", "value_r": "nan" }, { "bar_sort_order": 7, "bayes_factor": 26.76465556544211, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": 4.742257181606178, "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": "iVBORw0KGgoAAAANSUhEUgAAAsQAAAIoCAYAAABu0/16AAAAAXNSR0IArs4c6QAAIABJREFUeF7snQeYFUX2tw9IlKAigqAIZjEHWBQVUVnEnCMGzGl1VVDMghnFHDGvOeEqa1rMSlgU1EVBEVkDKoKrKCoignzPW/v1/C/jvTOn7tw70/fyKx8ecOZ0ddWvTne/ffpUVb1FixYtMhUpIAWkgBSQAlJACkgBKbCEKlBPQLyEjry6LQWkgBSQAlJACkgBKRAUEBDLEaSAFJACUkAKSAEpIAWWaAUExEv08KvzUkAKSAEpIAWkgBSQAgJi+YAUkAJSQApIASkgBaTAEq2AgHiJHn51XgpIASkgBaSAFJACUkBALB+QAkugApmLy9SrV69CgVw/L1WJ5s+fb7/88os1adLEGjduXKrdKEq758yZE+pt2bJllfUnPpH4Cf+f6TNFaZwqlQJSQArUsgIC4loWXKeTAmlQYO2117aPPvooNGX06NHWvXv38O/evXvbCy+8EP799NNP284771xlcydOnGhvvvmmdevWzTbYYIMqbf/973/bxhtvbHvuuac98cQTtSLDTTfdZH/5y19s8ODBdv7551d7zv32288ee+wxGz9+vG222WZ/sH/++eftiy++CH1Yfvnlq62v0AbffPONPfXUU7bKKquEscqn/PDDD9ajRw9j7A477DC75557clYzadIkW3/99W277bazl156yYYNG2bHHXecXXLJJXb22We7T1+Msa/rsXB3XoZSQAqUhAIC4pIYJjVSChRWgUwgHjJkiJ1xxhn266+/hkhqUv7xj3/YLrvsUuWJr7nmGjvttNPshhtuCOBZVXnnnXds0003DZANbNdGefnll+3hhx+2XXfdNfypruyxxx4BOMeNG2d/+tOf/mC+2267Gbq8/fbbtskmm1RXXcF/D6h37dq1Ri8VTz75ZDieei6++OIqwfr9998PLzoJEN966612/PHHh+POOeccd/+KMfZ1PRbuzstQCkiBklBAQFwSw6RGSoHCKpAAcYsWLWyrrbayZ5991v71r3/ZFltsYfzsxx9/DOAHEE+YMMHOO++88HfHjh2D/Zlnnhn+/5RTTgmR5rXWWitA9ZFHHhmA8sorr7SpU6daz549Dcg88MADLYGirbfeOthTP/Vddtlltv322y/Wweeeey78fNtttw3R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yuWll16ypZdeuiD9YjWLDTbYwJ5//nnr3r27gDgPVWNuBHlUX1aHSCv/cMZoJSAWEHs9K8avvHWWq5208o9sjFYC4jggvvvuu+3aa6+tWGDhgQceWAxun3nmGcOGnRZhOhZc2GSTTSoGr3///vbee+/ZyJEj/QNai5YuIE7aA/X/+uuvBad7cpD3228/++STT+yWW24REOfpADE3gjxPUTaHSSv/UMZoJSAWEHs9K8avvHWWq5208o9sjFYCYj8QE91t2LChff/99yF19uSTTw6LLZx11lkVg9OhQwd7/PHHrVu3bgGMH3vsMXv22WfD70eMGGG33nprWKmspIEYBzvzzDND5yisP3zuuedajx49/F5aheVpp51m22+/vd1www12/vnnC4jzVDXmRpDnKcrmMGnlH8oYrQTEAmKvZ8X4lbfOcrWTVv6RjdFKQOwHYgKWrDw2bdq0MBjw2rvvvmt33nlnxeDAhJdddpltueWWYQWyYcOGBXvG5LjjjgvcePHFF5c2EBO9BYb5u3nz5hVg/PXXX9c4ZWL48OH21FNP2b333mt9+vRZDIhHjRplo0eP/sOVMHDgwIqfxTi//5IqTUtp4R83aVUcrQTEAmKvZ+ka9CqljYT8SsVpJSD+IxBX1hq4ZSM25oztu+++NmXKlGBy33332WuvvWZ33HFHxSH8bMCAAbbTTjsZbLfOOuuEBRmYhwY4E10eNGhQ6QIxCdCtWrUKVH/OOeeEjv/973+3vfbay95+++3F8kNinDax3WKLLcImH8svv7y99dZbttZaaxl5KV26dMlanSbV5VZZDxi/B0qr4mglIBYQez1L16BXqTjI89danpYxfiUg9keImUjHnDEm1dWrV8+uueaa4ECnnnrqYo5EJJlAJqkRb7zxhu2///62ww47WNeuXe2HH36wjz76yI455pgQPU5bqTaHOMkbOeSQQ8KbwFJLLWWXX355CH3TsTXXXLNGfWIpt3nz5oU6jjzySDvhhBNst912yxl5FhALiGvkcP//4JibZiHOV8p1xGglIBYQe309xq+8dZarnbTyj2yMVgJiPxAzAhtttJHdfPPNYQEEIHfw4MEhejxp0qQAvMAvf/bYYw874ogjQlrtAQccYF9++WUYQFIsrr766pBlsPLKK/sHtZYsqwXiBFTvuuuu0KQWLVoYu9SRPvHII48UtJms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D6Mut3fv3qjuN2DAACfTlStXdiPCTz/9tFtPmzZt7KGHHnJ+mDt3bps2bVpsdjrRWmIuxBhOf/jhh8/Z0DfeeMMNs58txM8995wBIoz/xIkTdt5557kh+ZQerot8QHJD/DGnFfIVigXfQWIlVjwBPlJ5JVY8AT5SeSVWPAE+0ievUMaAUlY88IZBTZS+onXt2jXhA+vUqeN+f91119mSJUsMfjdx4sSoy6FcIin3w6jypk2b3OgyRoY///xzu/zyy92ECpHlIlUG/N6mHBlzIU75I88cIZ46dar99a9/daPK7777rr322mu2YMECZjUuxqdD6ZVm0kCx4DtOrMSKJ8BHKq/EiifARyqvxIonwEf65lW1atVs2LBhrq4Xd/379evnRo9XrlxpNWrUcGUMxYsXt549e7paYswI0b9/f4u2HKoJznY/jDijRAJlFxgchVhPmTLFjQZjxHno0KHuYb0bbrjBNm/e7CZjiGXLMCHGjBMolMZVx+23326rVq1y//3JJ5+4nWWbb4ey682McWLB95pYiRVPgI9UXokVT4CPVF6JFU+Aj/TNKwxgtm7d2n1A06ZNbcKECYa6X0gxSiBQX4waYLSiRYu6wc1ixYpZtOUgxNHcDwL93nvvuUkWOnfu7OqHMRp8xx132NatW926+/bt62adiHXLECGOthMYHr/gggvc04g+zbdDfdad2WLFgu8xsRIrngAfqbwSK54AH6m8EiueAB8ZJK8OHjxoe/bscXXC0Rpmo9iyZYt7sC7xuyaSWi6a+6EsAuvBKHHihvViINXXE1kioRFidoPPjsODd7g6UTP3EKJYcJkgVhwnRImVWPEE+EjllVjxBPhI5ZVY8QTOjMz0Qhx0x7WcCIiACIiACIiACIiACICAhFh5IAIiIAIiIAIiIAIikKUJSIizdPdr50VABERABERABERABCTEygEREAEREAEREAEREIEsTUBCnKW7Pz52Hk+e4u2Fl1xySXzskPZCBERABERABEQgXQlIiNMVtz4s1gQmT57s3oaDCboxzQvmL4z1ZN2x3matTwREQAREQAREIFwEJMTh6g9tTTIEMI/hmDFj3Gsg27Ztaz/++KM1btzYvfd8//797u05ePMN3reuZu6d8o8++qh9++23blJzvGEI74BXEwEREIGMJDB27Fhr0qSJlSpVKiM3Q58tAmcQkBArIUJN4NSpU/bPf/7TTfT92WefufeZ422Gjz32mF122WXWqlUr98pIvPkQ/42/N2zYMNT7lFYbt3v3blu+fLl702OePHncay+fffZZ94pNXCTgDUJPPfVUWn281isCImBmCxcutKuvvtpduKv9jwAGNO677z53F69r167uWI3juJoIhIWAhDgsPaHtOIfAyJEjbebMmZYjRw4nvBC+pUuXuhdFPPzwwzZv3jy76KKL7M0337T/+7//sw8++MDGjRtnkyZNyjI08TafxYsXu9dkYhS4bNmyjhe4YTT47bfftn/84x+uxvrBBx9MeO1mvAPC++4LFixo559/frzvqvYvHQnge7Rhwwa78sor7W9/+5vVrVvXqlSpYpC9iABj1BMXphr9PLdj8Apf3NX76quvnAzjeK4mAmEhICEOS09oO+zIkSP27rvvOvl95JFHnNi2b9/eTp486d6R/pvf/MZ+/fVXy549u5UvX969H/2XX35xB9YWLVoYBPrjjz+2a6+9Nu5p4tWWM2bMsOHDhzs+s2bNsnfeecd+97vfuZM1SkvatGljNWvWNLwbHhcOkGW8Ez4rtD/+8Y9WuHBh69GjhyupwUUCRu3UkieAC6wFCxbYzTffLFRRCCxZssQGDRpk48ePtwEDBhj+/5ZbbrEXXnjBSR6+Y5UqVXIX6xdccIEY/pcAjlE4buP4/K9//ctdTFSuXNkdw3G8UhOBMBCQEIehF7QNdujQIatevbo1a9bM/TdKJCC4eJc5RoaLFCniXkvdt29fa9SokXuQDqM1eBf7ihUr7IcffrBatWrF9agM5B91wbgwwAmmQIEC9uKLL7oyiAYNGljHjh3t3nvvtVdeecX+85//uNFgXFC8/vrrNnr0aMdmyJAhWSLbVq5caXfddZfVq1fPvv/+e1dvjrsIYJOVG0Y3//3vfzs2N954oys/woXD4cOHLV++fC5vUNuJPFOLTgAlEcWLF3f1+eCHXPvwww9daRcuTPH9/PTTT6106dJZHiEu0p955hnbsWOHTZgwweXcxRdf7I7vgwcPdoMguGBXE4EwEJAQh6EXsuA2rF271nr27OlOxHgQDtL76quv2qhRo5y0YIRv8+bN1q1bNyfJ999/v/vb7Nmz7a233nIH1J07d2aZUT/s+8CBA13dNC4EcCLGKDrq8J588kk3OowRdZyUN23a5EZdMNL+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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 that contains example 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 10\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", ")" ] } ], "metadata": { "kernelspec": { "display_name": "splink_demos", "language": "python", "name": "splink_demos" }, "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 }