Logo

MCNEMAR_TV

Updated 2023-11-06 16:39:38.717000

Syntax

SELECT * FROM [westclintech].[wct].[MCNEMAR_TV](
  <@InputData_RangeQuery, nvarchar(max),>
 ,<@Correct, bit,>)

Description

Use the table-valued function MCNEMAR_TV to perform McNemar’s chi-squared test for symmetry of rows and columns in a two-dimensional contingency table.

Arguments

@InputData_RangeQuery

a T-SQL statement, as a string, that specifies the test 1- and test 2-values.

@Correct

a bit value identifying whether or not to apply continuity correction when computing the test statistic.

Return Type

table

{"columns": [{"field": "colName", "headerName": "Name", "header": "name"}, {"field": "colDatatype", "headerName": "Type", "header": "type"}, {"field": "colDesc", "headerName": "Description", "header": "description", "minWidth": 1000}], "rows": [{"id": "fd483b47-7211-42f2-ac53-7bae61bf2f8c", "colName": "X", "colDatatype": "float", "colDesc": "the test statistic"}, {"id": "b6ffa38c-d8f1-4717-b1f5-182881dd3e98", "colName": "P", "colDatatype": "float", "colDesc": "the p-value"}]}

Remarks

The function is insensitive to order; it does not matter what order the test 1- and test 2-values are passed in.

Test 1- and test 2-values are passed in as pairs.

MCNEMAR_TV only works with 2 test results.

For more than 2 test results, consider using KAPPA_COHEN_TV or KAPPA_FLEISS_TV.

Examples

SELECT *
INTO #m
FROM
(
    SELECT 1,
           'B',
           'A'
    UNION ALL
    SELECT 2,
           'B',
           'B'
    UNION ALL
    SELECT 3,
           'A',
           'A'
    UNION ALL
    SELECT 4,
           'B',
           'A'
    UNION ALL
    SELECT 5,
           'A',
           'A'
    UNION ALL
    SELECT 6,
           'A',
           'A'
    UNION ALL
    SELECT 7,
           'B',
           'A'
    UNION ALL
    SELECT 8,
           'B',
           'A'
    UNION ALL
    SELECT 9,
           'A',
           'B'
    UNION ALL
    SELECT 10,
           'B',
           'A'
    UNION ALL
    SELECT 11,
           'B',
           'B'
    UNION ALL
    SELECT 12,
           'A',
           'A'
    UNION ALL
    SELECT 13,
           'A',
           'B'
    UNION ALL
    SELECT 14,
           'A',
           'A'
    UNION ALL
    SELECT 15,
           'B',
           'B'
    UNION ALL
    SELECT 16,
           'A',
           'A'
    UNION ALL
    SELECT 17,
           'A',
           'A'
    UNION ALL
    SELECT 18,
           'B',
           'B'
    UNION ALL
    SELECT 19,
           'B',
           'A'
    UNION ALL
    SELECT 20,
           'B',
           'A'
    UNION ALL
    SELECT 21,
           'B',
           'A'
    UNION ALL
    SELECT 22,
           'B',
           'A'
    UNION ALL
    SELECT 23,
           'A',
           'A'
    UNION ALL
    SELECT 24,
           'B',
           'A'
    UNION ALL
    SELECT 25,
           'A',
           'A'
    UNION ALL
    SELECT 26,
           'A',
           'A'
    UNION ALL
    SELECT 27,
           'B',
           'A'
    UNION ALL
    SELECT 28,
           'B',
           'B'
    UNION ALL
    SELECT 29,
           'A',
           'B'
    UNION ALL
    SELECT 30,
           'B',
           'B'
    UNION ALL
    SELECT 31,
           'B',
           'B'
    UNION ALL
    SELECT 32,
           'B',
           'A'
    UNION ALL
    SELECT 33,
           'A',
           'B'
    UNION ALL
    SELECT 34,
           'A',
           'B'
    UNION ALL
    SELECT 35,
           'B',
           'A'
    UNION ALL
    SELECT 36,
           'B',
           'A'
    UNION ALL
    SELECT 37,
           'A',
           'A'
    UNION ALL
    SELECT 38,
           'A',
           'A'
    UNION ALL
    SELECT 39,
           'B',
           'B'
    UNION ALL
    SELECT 40,
           'A',
           'A'
    UNION ALL
    SELECT 41,
           'B',
           'A'
    UNION ALL
    SELECT 42,
           'A',
           'B'
    UNION ALL
    SELECT 43,
           'B',
           'B'
    UNION ALL
    SELECT 44,
           'B',
           'A'
    UNION ALL
    SELECT 45,
           'B',
           'B'
    UNION ALL
    SELECT 46,
           'A',
           'B'
    UNION ALL
    SELECT 47,
           'A',
           'A'
    UNION ALL
    SELECT 48,
           'A',
           'A'
    UNION ALL
    SELECT 49,
           'B',
           'B'
    UNION ALL
    SELECT 50,
           'B',
           'B'
    UNION ALL
    SELECT 51,
           'B',
           'A'
    UNION ALL
    SELECT 52,
           'A',
           'B'
    UNION ALL
    SELECT 53,
           'A',
           'A'
    UNION ALL
    SELECT 54,
           'A',
           'B'
    UNION ALL
    SELECT 55,
           'A',
           'B'
    UNION ALL
    SELECT 56,
           'B',
           'A'
    UNION ALL
    SELECT 57,
           'B',
           'B'
    UNION ALL
    SELECT 58,
           'A',
           'A'
    UNION ALL
    SELECT 59,
           'B',
           'B'
    UNION ALL
    SELECT 60,
           'B',
           'A'
    UNION ALL
    SELECT 61,
           'B',
           'A'
    UNION ALL
    SELECT 62,
           'A',
           'B'
    UNION ALL
    SELECT 63,
           'B',
           'B'
    UNION ALL
    SELECT 64,
           'B',
           'A'
    UNION ALL
    SELECT 65,
           'B',
           'B'
    UNION ALL
    SELECT 66,
           'B',
           'A'
    UNION ALL
    SELECT 67,
           'B',
           'A'
    UNION ALL
    SELECT 68,
           'B',
           'A'
    UNION ALL
    SELECT 69,
           'B',
           'A'
    UNION ALL
    SELECT 70,
           'B',
           'A'
    UNION ALL
    SELECT 71,
           'B',
           'A'
    UNION ALL
    SELECT 72,
           'B',
           'A'
    UNION ALL
    SELECT 73,
           'B',
           'B'
    UNION ALL
    SELECT 74,
           'A',
           'A'
    UNION ALL
    SELECT 75,
           'B',
           'A'
    UNION ALL
    SELECT 76,
           'B',
           'B'
    UNION ALL
    SELECT 77,
           'A',
           'A'
    UNION ALL
    SELECT 78,
           'A',
           'B'
    UNION ALL
    SELECT 79,
           'B',
           'A'
    UNION ALL
    SELECT 80,
           'A',
           'A'
    UNION ALL
    SELECT 81,
           'B',
           'A'
    UNION ALL
    SELECT 82,
           'B',
           'A'
    UNION ALL
    SELECT 83,
           'A',
           'B'
    UNION ALL
    SELECT 84,
           'B',
           'B'
    UNION ALL
    SELECT 85,
           'A',
           'B'
    UNION ALL
    SELECT 86,
           'A',
           'A'
    UNION ALL
    SELECT 87,
           'A',
           'B'
    UNION ALL
    SELECT 88,
           'B',
           'A'
    UNION ALL
    SELECT 89,
           'B',
           'B'
    UNION ALL
    SELECT 90,
           'A',
           'B'
    UNION ALL
    SELECT 91,
           'A',
           'A'
    UNION ALL
    SELECT 92,
           'B',
           'B'
    UNION ALL
    SELECT 93,
           'A',
           'B'
    UNION ALL
    SELECT 94,
           'A',
           'A'
    UNION ALL
    SELECT 95,
           'B',
           'A'
    UNION ALL
    SELECT 96,
           'A',
           'A'
    UNION ALL
    SELECT 97,
           'B',
           'B'
    UNION ALL
    SELECT 98,
           'B',
           'B'
    UNION ALL
    SELECT 99,
           'B',
           'A'
    UNION ALL
    SELECT 100,
           'A',
           'B'
) n(rn, x, y);
SELECT k.*
FROM wct.MCNEMAR_TV('SELECT x,y FROM #m', 'True') k;
DROP TABLE #m;

This produces the following result.

{"columns":[{"field":"stat"},{"field":"stat_value","headerClass":"ag-right-aligned-header","cellClass":"ag-right-aligned-cell"}],"rows":[{"stat":"X","stat_value":"4.83018867924528"},{"stat":"P","stat_value":"0.027965569965861"}]}