{"id":37368,"date":"2026-08-23T13:25:27","date_gmt":"2026-08-23T07:55:27","guid":{"rendered":"https:\/\/atsixty.com\/?p=37368"},"modified":"2026-08-23T19:25:36","modified_gmt":"2026-08-23T13:55:36","slug":"biostatistics-sensitivity-specificity","status":"publish","type":"post","link":"https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/","title":{"rendered":"Biostatistics &#8211; Sensitivity &amp; Specificity"},"content":{"rendered":"\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Morning Rounds \u00b7 PSM Numericals \u00b7 Round 02<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&#038;family=Source+Serif+4:ital,wght@0,300;0,400;0,600;1,400&#038;display=swap\" rel=\"stylesheet\">\n<style>\n#nps02 *,#nps02 *::before,#nps02 *::after{box-sizing:border-box;margin:0;padding:0}\n#nps02{\n  --ob:#1A5F7A;--ob-light:#236E8C;--ob-pale:#E6F3F7;--ob-dark:#114455;\n  --correct:#2D6B47;--correct-bg:#EAF6EF;--correct-border:#3A9960;\n  --wrong:#B83232;--wrong-bg:#FDF0F0;--wrong-border:#E53935;\n  --ink:#0F2A35;--ink-mid:#2A4D5A;--ink-soft:#5A7D8A;\n  --line:#B8D8E3;--cream:#F2F8FA;--warm:#F8FCFD;\n  font-family:'Source Serif 4',Georgia,serif;\n  font-size:16px;color:var(--ink);background:var(--cream);\n  line-height:1.7;padding:0 0 64px;\n}\n#nps02 .mr-header{background:linear-gradient(135deg,var(--ob-dark) 0%,var(--ob) 60%,var(--ob-light) 100%);color:#E4F4F9;padding:36px 24px 30px;text-align:center;position:relative;overflow:hidden;}\n#nps02 .mr-header::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 18px,rgba(255,255,255,0.03) 18px,rgba(255,255,255,0.03) 19px);}\n#nps02 .mr-eyebrow{font-size:0.66rem;letter-spacing:0.22em;text-transform:uppercase;font-weight:700;opacity:0.6;margin-bottom:10px;position:relative;}\n#nps02 .mr-series-tag{display:inline-block;background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.2);border-radius:4px;padding:2px 10px;font-size:0.64rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:700;margin-bottom:14px;position:relative;}\n#nps02 .mr-title{font-family:'Playfair Display',serif;font-size:1.8rem;font-weight:700;line-height:1.2;margin-bottom:6px;position:relative;}\n#nps02 .mr-title em{font-style:italic;font-weight:400;opacity:0.85}\n#nps02 .mr-subtitle{font-size:0.82rem;opacity:0.65;margin-top:8px;font-style:italic;position:relative;}\n#nps02 .mr-chips{display:flex;justify-content:center;gap:10px;margin-top:18px;flex-wrap:wrap;position:relative;}\n#nps02 .mr-chip{background:rgba(255,255,255,0.13);border:1px solid rgba(255,255,255,0.22);border-radius:20px;padding:4px 13px;font-size:0.72rem;}\n#nps02 .mr-sentinel{height:1px}\n#nps02 .mr-progress{position:fixed;top:0;left:0;right:0;z-index:9999;background:var(--warm);border-bottom:1px solid var(--line);box-shadow:0 2px 12px rgba(15,42,53,0.1);padding:9px 16px;display:none;}\n#nps02 .mr-progress.visible{display:block}\n#nps02 .mr-prog-inner{max-width:720px;margin:0 auto;display:flex;align-items:center;justify-content:center}\n#nps02 .mr-pips{display:flex;align-items:center;justify-content:center}\n#nps02 .mr-pip-wrap{display:flex;align-items:center}\n#nps02 .mr-pip-line{width:28px;height:2px;background:var(--line);transition:background 0.35s}\n#nps02 .mr-pip-line.done{background:var(--ob)}\n#nps02 .mr-pip{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);background:var(--warm);display:flex;align-items:center;justify-content:center;font-size:0.63rem;font-weight:700;color:var(--ink-soft);transition:all 0.3s;flex-shrink:0;}\n#nps02 .mr-pip.correct{background:var(--correct-border);border-color:var(--correct-border);color:#fff}\n#nps02 .mr-pip.wrong{background:var(--wrong-border);border-color:var(--wrong-border);color:#fff}\n#nps02 .mr-body{max-width:720px;margin:0 auto;padding:0 16px}\n#nps02 .mr-case{background:var(--warm);border:1px solid var(--line);border-left:4px solid var(--ob);border-radius:10px;margin:28px 0;overflow:hidden;box-shadow:0 1px 8px rgba(15,42,53,0.07);}\n#nps02 .mr-case-top{padding:16px 20px 14px;display:flex;gap:14px;align-items:flex-start}\n#nps02 .mr-num{font-family:'Playfair Display',serif;font-size:2.2rem;font-weight:700;color:var(--ob);opacity:0.14;line-height:1;margin-top:-2px;flex-shrink:0;}\n#nps02 .mr-meta{flex:1}\n#nps02 .mr-tag{font-size:0.61rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--ob);opacity:0.8;margin-bottom:5px;}\n#nps02 .mr-stem{font-size:0.94rem;color:var(--ink);line-height:1.72}\n#nps02 .mr-stem strong{font-weight:600}\n#nps02 .mr-stem em{font-style:italic}\n#nps02 .mr-rule{height:1px;background:var(--line);margin:0 20px}\n#nps02 .mr-opts{padding:12px 20px 16px;display:flex;flex-direction:column;gap:8px}\n#nps02 .mr-opt{display:flex;align-items:flex-start;gap:11px;padding:10px 14px;border:1.5px solid var(--line);border-radius:8px;cursor:pointer;background:var(--warm);transition:border-color 0.15s,background 0.15s;-webkit-tap-highlight-color:transparent;}\n#nps02 .mr-opt:hover{border-color:var(--ob);background:var(--ob-pale)}\n#nps02 .mr-opt.locked{cursor:default}\n#nps02 .mr-opt.locked:hover{border-color:var(--line);background:var(--warm)}\n#nps02 .mr-opt.correct{border-color:var(--correct-border);background:var(--correct-bg);cursor:default}\n#nps02 .mr-opt.correct:hover{border-color:var(--correct-border);background:var(--correct-bg)}\n#nps02 .mr-opt.wrong{border-color:var(--wrong-border);background:var(--wrong-bg);cursor:default}\n#nps02 .mr-opt.wrong:hover{border-color:var(--wrong-border);background:var(--wrong-bg)}\n#nps02 .mr-opt.dimmed{opacity:0.35;cursor:default}\n#nps02 .mr-opt.dimmed:hover{border-color:var(--line);background:var(--warm)}\n#nps02 .mr-ltr{flex-shrink:0;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:0.62rem;font-weight:700;color:var(--ink-soft);margin-top:2px;transition:all 0.15s;}\n#nps02 .mr-opt.correct .mr-ltr{background:var(--correct-border);border-color:var(--correct-border);color:#fff}\n#nps02 .mr-opt.wrong .mr-ltr{background:var(--wrong-border);border-color:var(--wrong-border);color:#fff}\n#nps02 .mr-opt-text{font-size:0.9rem;color:var(--ink-mid);line-height:1.58}\n#nps02 .mr-opt.correct .mr-opt-text{color:var(--correct);font-weight:600}\n#nps02 .mr-opt.wrong .mr-opt-text{color:var(--wrong)}\n#nps02 .mr-exp{display:none;border-top:1px solid #9CCFDF;background:linear-gradient(180deg,#D4EEF7 0%,#EAF5FA 100%);padding:13px 20px 15px;}\n#nps02 .mr-exp-lbl{font-size:0.61rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--ob-dark);margin-bottom:6px;}\n#nps02 .mr-exp-text{font-size:0.86rem;color:#0F2A35;line-height:1.7}\n#nps02 .mr-exp-text strong{font-weight:600}\n#nps02 .mr-exp-text em{font-style:italic}\n#nps02 .mr-exp-text .calc{display:block;background:rgba(26,95,122,0.08);border-left:3px solid var(--ob);border-radius:0 4px 4px 0;padding:6px 10px;margin:8px 0;font-family:Georgia,serif;font-size:0.84rem;color:var(--ob-dark);}\n#nps02 .mr-submit-wrap{text-align:center;padding:28px 16px 8px}\n#nps02 .mr-btn{background:var(--ob);color:#E4F4F9;border:none;border-radius:8px;padding:13px 44px;font-family:'Playfair Display',serif;font-size:1rem;font-weight:700;cursor:pointer;box-shadow:0 2px 10px rgba(26,95,122,0.32);}\n#nps02 .mr-btn:hover{background:var(--ob-dark)}\n#nps02 .mr-score{display:none;background:var(--warm);border:1px solid var(--line);border-top:4px solid var(--ob);border-radius:10px;margin:24px 0 0;box-shadow:0 2px 12px rgba(15,42,53,0.08);overflow:hidden;}\n#nps02 .mr-score-in{padding:28px 24px;text-align:center}\n#nps02 .mr-score-ey{font-size:0.66rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:12px;font-weight:600;}\n#nps02 .mr-ring{width:98px;height:98px;border-radius:50%;background:conic-gradient(var(--ob) 0%,var(--line) 0%);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;position:relative;}\n#nps02 .mr-ring::before{content:'';position:absolute;width:76px;height:76px;border-radius:50%;background:var(--warm);}\n#nps02 .mr-ring-in{position:relative;display:flex;flex-direction:column;align-items:center;line-height:1.2}\n#nps02 .mr-ring-pct{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:700;color:var(--ob)}\n#nps02 .mr-ring-sub{font-size:0.54rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:0.06em}\n#nps02 .mr-score-title{font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:700;color:var(--ink);margin-bottom:4px}\n#nps02 .mr-score-net{font-size:0.9rem;color:var(--ob);font-weight:600;margin-bottom:4px}\n#nps02 .mr-verdict{font-size:0.83rem;color:var(--ink-soft);font-style:italic;margin-bottom:18px;padding:0 12px}\n#nps02 .mr-bands{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}\n#nps02 .mr-band{padding:5px 13px;border-radius:16px;font-size:0.78rem;font-weight:600}\n#nps02 .mr-band-c{background:var(--correct-bg);color:var(--correct)}\n#nps02 .mr-band-w{background:var(--wrong-bg);color:var(--wrong)}\n#nps02 .mr-band-s{background:var(--ob-pale);color:var(--ob)}\n#nps02 .mr-retry{display:block;margin:18px auto 4px;background:transparent;border:2px solid var(--ob);color:var(--ob);border-radius:8px;padding:9px 28px;font-family:'Playfair Display',serif;font-size:0.92rem;font-weight:700;cursor:pointer;}\n#nps02 .mr-retry:hover{background:var(--ob);color:#E4F4F9}\n@media(max-width:480px){\n  #nps02 .mr-title{font-size:1.4rem}\n  #nps02 .mr-num{font-size:1.7rem}\n  #nps02 .mr-stem{font-size:0.9rem}\n  #nps02 .mr-opt-text{font-size:0.86rem}\n}\n<\/style>\n\n<div id=\"nps02\">\n\n  <div class=\"mr-header\">\n    <div class=\"mr-series-tag\">Numerical Series &middot; PSM Biostatistics<\/div>\n    <div class=\"mr-eyebrow\">Morning Rounds &middot; Round 02 of 07<\/div>\n    <div class=\"mr-title\">Sensitivity, Specificity<br><em>&amp; the False Rates<\/em><\/div>\n    <div class=\"mr-subtitle\">Five questions &middot; Calculation, clinical meaning &amp; what prevalence does and does not change<\/div>\n    <div class=\"mr-chips\">\n      <span class=\"mr-chip\">5 Questions<\/span>\n      <span class=\"mr-chip\">+4 \/ &minus;1 scoring<\/span>\n      <span class=\"mr-chip\">Options reshuffled<\/span>\n    <\/div>\n  <\/div>\n\n  <div class=\"mr-sentinel\" id=\"nps02-sentinel\"><\/div>\n\n  <div class=\"mr-progress\" id=\"nps02-progress\">\n    <div class=\"mr-prog-inner\">\n      <div class=\"mr-pips\" id=\"nps02-pips\"><\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"mr-body\">\n    <div id=\"nps02-cases\"><\/div>\n    <div class=\"mr-submit-wrap\">\n      <button class=\"mr-btn\" id=\"nps02-submit\">Submit for Debrief<\/button>\n    <\/div>\n    <div class=\"mr-score\" id=\"nps02-score\">\n      <div class=\"mr-score-in\">\n        <div class=\"mr-score-ey\">Round Complete<\/div>\n        <div class=\"mr-ring\" id=\"nps02-ring\">\n          <div class=\"mr-ring-in\">\n            <span class=\"mr-ring-pct\" id=\"nps02-pct\">0%<\/span>\n            <span class=\"mr-ring-sub\">net<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"mr-score-title\">Your Debrief<\/div>\n        <div class=\"mr-score-net\" id=\"nps02-net\"><\/div>\n        <div class=\"mr-verdict\" id=\"nps02-verdict\"><\/div>\n        <div class=\"mr-bands\">\n          <span class=\"mr-band mr-band-c\" id=\"nps02-ct-c\"><\/span>\n          <span class=\"mr-band mr-band-w\" id=\"nps02-ct-w\"><\/span>\n          <span class=\"mr-band mr-band-s\" id=\"nps02-ct-s\"><\/span>\n        <\/div>\n        <button class=\"mr-retry\" id=\"nps02-retry\">&#8635; New Round<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<script>\n(function () {\n  'use strict';\n\n  var NS    = 'nps02';\n  var TOTAL = 5;\n  var MAX   = 20;\n  var LTRS  = ['A','B','C','D'];\n\n  var QS = [\n\n    {\n      id: 1,\n      tag: 'Sensitivity &mdash; Calculation from the Table',\n      stem: 'A TB screening test is applied to 400 patients. <strong>100 have confirmed TB<\/strong>. The test is positive in <strong>85 of these 100<\/strong>, and positive in <strong>60 of the 300 without TB<\/strong>. What is the <strong>sensitivity<\/strong> of the test?',\n      correct: '85%',\n      opts: [\n        '85%',\n        '80%',\n        '75%',\n        '88%'\n      ],\n      exp: 'Sensitivity = <strong>TP &divide; (TP + FN)<\/strong> \u2014 the proportion of truly diseased people the test correctly identifies.<span class=\"calc\">TP = 85 (test positive, TB present)<br>FN = 100 &minus; 85 = 15 (test negative, TB present)<br>Sensitivity = 85 &divide; 100 = <strong>0.85 = 85%<\/strong><\/span>The FP figure (60) and TN figure (240) play no role in sensitivity \u2014 sensitivity is calculated entirely within the <strong>disease-present column<\/strong>. This is why sensitivity is independent of prevalence: it only looks at people who have the disease.<br><br>The trap options 80% and 75% arise from using wrong denominators (total positives, or total population). 88% would require TP=88, which is not the case here. Always anchor: sensitivity denominator = all truly diseased = TP + FN.'\n    },\n\n    {\n      id: 2,\n      tag: 'Specificity &mdash; Calculation from the Table',\n      stem: 'Using the same TB study (TP=85, FN=15, FP=60, TN=240), what is the <strong>specificity<\/strong> of the test, and which cells determine it?',\n      correct: '80%; determined by TN and FP \u2014 the disease-absent column only',\n      opts: [\n        '80%; determined by TN and FP \u2014 the disease-absent column only',\n        '75%; determined by TP and TN \u2014 the diagonal cells of the table',\n        '80%; determined by all four cells weighted by disease prevalence',\n        '85%; specificity mirrors sensitivity when the test is well-calibrated'\n      ],\n      exp: 'Specificity = <strong>TN &divide; (TN + FP)<\/strong> \u2014 the proportion of truly disease-free people the test correctly clears.<span class=\"calc\">TN = 240 &nbsp; FP = 60<br>Specificity = 240 &divide; (240 + 60) = 240 &divide; 300 = <strong>0.80 = 80%<\/strong><\/span>Like sensitivity, specificity is calculated from <strong>one column only<\/strong> \u2014 the disease-absent column. It is entirely independent of what happens to diseased people, and independent of prevalence.<br><br>Trap B (diagonal cells) is a common misconception \u2014 accuracy uses the diagonal, not specificity. Trap C (weighted by prevalence) describes positive predictive value logic, not specificity. Trap D mirrors sensitivity numerically \u2014 a coincidence in some tables, never a rule. Know your denominator: sensitivity = TP+FN; specificity = TN+FP.'\n    },\n\n    {\n      id: 3,\n      tag: 'Prevalence Independence &mdash; The Critical Property',\n      stem: 'The same TB test (sensitivity 85%, specificity 80%) is now applied in <strong>two different settings<\/strong>: a high-prevalence clinic (prevalence 40%) and a low-prevalence community survey (prevalence 5%). Which statement is correct?',\n      correct: 'Sensitivity and specificity remain 85% and 80% in both settings; they are fixed properties of the test, not of the population',\n      opts: [\n        'Sensitivity and specificity remain 85% and 80% in both settings; they are fixed properties of the test, not of the population',\n        'Sensitivity rises in the high-prevalence setting because more true cases are present for the test to detect correctly',\n        'Specificity falls in the low-prevalence setting because a higher proportion of positives are false, diluting the true negative rate',\n        'Both sensitivity and specificity shift with prevalence; only likelihood ratios remain stable across populations'\n      ],\n      exp: 'This is the most important property of sensitivity and specificity: <strong>they do not change with prevalence<\/strong>.<br><br>Why? Because they are calculated within fixed disease-status columns. Sensitivity looks only at diseased people; changing the ratio of diseased to non-diseased does not alter what proportion of diseased people test positive. Specificity looks only at non-diseased people; same logic applies.<span class=\"calc\">High-prevalence (40%): sensitivity still = TP &divide; (TP+FN) within diseased group<br>Low-prevalence (5%): same formula, same result<br>The <em>numbers<\/em> in each cell change; the <em>proportions<\/em> within each column do not.<\/span>What <em>does<\/em> change with prevalence: <strong>PPV and NPV<\/strong> \u2014 because they are calculated across rows (all positives, all negatives), mixing diseased and non-diseased people. That is Round 03. Trap D inverts the truth: likelihood ratios are derived from sensitivity and specificity and are equally stable.'\n    },\n\n    {\n      id: 4,\n      tag: 'Screening vs Confirmation &mdash; Which Metric to Prioritise',\n      stem: 'A programme director must choose between two tests for <strong>cervical cancer screening<\/strong>. Test A: sensitivity 95%, specificity 70%. Test B: sensitivity 75%, specificity 95%. Which test is more suitable for screening, and what is the deciding reason?',\n      correct: 'Test A; high sensitivity minimises false negatives, ensuring few cases are missed in a population-level screening programme',\n      opts: [\n        'Test A; high sensitivity minimises false negatives, ensuring few cases are missed in a population-level screening programme',\n        'Test B; high specificity reduces false positives, protecting healthy women from unnecessary follow-up procedures',\n        'Test A; a specificity of 70% is acceptable because confirmatory colposcopy will resolve all equivocal results downstream',\n        'Test B; in low-prevalence populations, specificity dominates screening performance and sensitivity becomes secondary'\n      ],\n      exp: 'The cardinal rule of screening: <strong>use a high-sensitivity test to cast the widest net<\/strong> \u2014 miss as few cases as possible.<br><br>Rationale: a missed cancer (false negative) means delayed diagnosis and worse outcome. A false positive means an extra colposcopy \u2014 inconvenient and anxiety-provoking, but not a missed cancer. The harm of a false negative is categorically greater than the harm of a false positive in a cancer screening context.<span class=\"calc\">Test A: 95% sensitivity &rarr; only 5% of cases missed (FNR = 5%)<br>Test B: 75% sensitivity &rarr; 25% of cases missed (FNR = 25%)<\/span>The mnemonic: <strong>SnNout<\/strong> \u2014 a high-<em>Sn<\/em>sitivity test, when <em>N<\/em>egative, rules <em>out<\/em> disease. Conversely, <strong>SpPin<\/strong> \u2014 a high-<em>Sp<\/em>ecificity test, when <em>P<\/em>ositive, rules <em>in<\/em> disease (confirmation). Trap B describes a valid concern but not the primary screening priority. Trap D correctly notes that prevalence affects PPV, not that it makes specificity more important than sensitivity for screening.'\n    },\n\n    {\n      id: 5,\n      tag: 'Sensitivity &amp; Specificity &mdash; Reading a Clinical Scenario',\n      stem: 'A rapid antigen test for dengue is evaluated. Among 200 confirmed dengue cases, <strong>170 test positive<\/strong>. Among 500 confirmed non-dengue fevers, <strong>450 test negative<\/strong>. What are the sensitivity and specificity, and what do the false rates tell you about this test\\'s weaknesses?',\n      correct: 'Sensitivity 85%, specificity 90%; FNR 15% means 1 in 7 dengue cases is missed; FPR 10% means 1 in 10 non-dengue cases triggers a false alarm',\n      opts: [\n        'Sensitivity 85%, specificity 90%; FNR 15% means 1 in 7 dengue cases is missed; FPR 10% means 1 in 10 non-dengue cases triggers a false alarm',\n        'Sensitivity 85%, specificity 90%; FNR 15% is clinically negligible; FPR 10% is the dominant concern driving unnecessary treatment',\n        'Sensitivity 90%, specificity 85%; the test performs better at ruling in than ruling out dengue in febrile patients',\n        'Sensitivity 85%, specificity 90%; both false rates are acceptable for a point-of-care test and require no further qualification'\n      ],\n      exp: '<span class=\"calc\">Sensitivity = TP &divide; (TP+FN) = 170 &divide; 200 = <strong>85%<\/strong><br>FNR = 1 &minus; 0.85 = <strong>15%<\/strong> (30 dengue cases missed)<br><br>Specificity = TN &divide; (TN+FP) = 450 &divide; 500 = <strong>90%<\/strong><br>FPR = 1 &minus; 0.90 = <strong>10%<\/strong> (50 non-dengue cases falsely positive)<\/span>What the false rates mean clinically:<br>&bull; <strong>FNR 15%<\/strong>: 30 of 200 dengue patients go home with a \"negative\" result \u2014 untreated, potentially worsening<br>&bull; <strong>FPR 10%<\/strong>: 50 non-dengue patients receive unnecessary dengue-directed management<br><br>Trap B dismisses the FNR as negligible \u2014 incorrect, 15% missed dengue is a significant public health failure. Trap C swaps the numbers. Trap D calls both rates \"acceptable\" without any clinical reasoning \u2014 option length is matched to the correct answer but the substance is absent. Always translate false rates into absolute patient numbers for clinical meaning.'\n    }\n\n  ];\n\n  var answers = {}, answered = 0, shuffled = {}, done = false;\n\n  function gid(s) { return document.getElementById(NS + '-' + s); }\n  function byId(s) { return document.getElementById(s); }\n\n  function shuffleArr(arr) {\n    var a = arr.slice(), i, j, t;\n    for (i = a.length - 1; i > 0; i--) {\n      j = Math.floor(Math.random() * (i + 1));\n      t = a[i]; a[i] = a[j]; a[j] = t;\n    }\n    return a;\n  }\n\n  function countVal(v) {\n    var n = 0, k;\n    for (k in answers) { if (answers[k] === v) n++; }\n    return n;\n  }\n\n  function buildPips() {\n    var cont = gid('pips'), i, q, wLine, wPip, line, pip;\n    cont.innerHTML = '';\n    for (i = 0; i < QS.length; i++) {\n      q = QS[i];\n      if (i > 0) {\n        wLine = document.createElement('div');\n        wLine.className = 'mr-pip-wrap';\n        line = document.createElement('div');\n        line.className = 'mr-pip-line';\n        line.id = NS + '-pl' + q.id;\n        wLine.appendChild(line);\n        cont.appendChild(wLine);\n      }\n      wPip = document.createElement('div');\n      wPip.className = 'mr-pip-wrap';\n      pip = document.createElement('div');\n      pip.className = 'mr-pip';\n      pip.id = NS + '-pip' + q.id;\n      pip.textContent = String(q.id);\n      wPip.appendChild(pip);\n      cont.appendChild(wPip);\n    }\n  }\n\n  function build() {\n    var cont, i, q, opts, card, top, numDiv, meta, tag, stem,\n        rule, optsDiv, expDiv, lbl, txt, j, optEl, ltrSpan, txtSpan;\n\n    cont = gid('cases');\n    cont.innerHTML = '';\n    answers = {}; answered = 0; shuffled = {}; done = false;\n    gid('score').style.display = 'none';\n    buildPips();\n\n    for (i = 0; i < QS.length; i++) {\n      q = QS[i];\n      opts = shuffleArr(q.opts);\n      shuffled[q.id] = opts;\n\n      card = document.createElement('div');\n      card.className = 'mr-case';\n\n      top = document.createElement('div');\n      top.className = 'mr-case-top';\n\n      numDiv = document.createElement('div');\n      numDiv.className = 'mr-num';\n      numDiv.textContent = q.id < 10 ? '0' + q.id : String(q.id);\n\n      meta = document.createElement('div');\n      meta.className = 'mr-meta';\n\n      tag = document.createElement('div');\n      tag.className = 'mr-tag';\n      tag.innerHTML = q.tag;\n\n      stem = document.createElement('div');\n      stem.className = 'mr-stem';\n      stem.innerHTML = q.stem;\n\n      meta.appendChild(tag);\n      meta.appendChild(stem);\n      top.appendChild(numDiv);\n      top.appendChild(meta);\n      card.appendChild(top);\n\n      rule = document.createElement('div');\n      rule.className = 'mr-rule';\n      card.appendChild(rule);\n\n      optsDiv = document.createElement('div');\n      optsDiv.className = 'mr-opts';\n\n      for (j = 0; j < opts.length; j++) {\n        optEl = document.createElement('div');\n        optEl.className = 'mr-opt';\n        optEl.id = NS + '-o' + q.id + '-' + j;\n        optEl.setAttribute('role', 'button');\n        optEl.setAttribute('tabindex', '0');\n\n        ltrSpan = document.createElement('span');\n        ltrSpan.className = 'mr-ltr';\n        ltrSpan.textContent = LTRS[j];\n\n        txtSpan = document.createElement('span');\n        txtSpan.className = 'mr-opt-text';\n        txtSpan.innerHTML = opts[j];\n\n        optEl.appendChild(ltrSpan);\n        optEl.appendChild(txtSpan);\n        optsDiv.appendChild(optEl);\n\n        (function (qid, oi) {\n          optEl.addEventListener('click', function () { pick(qid, oi); });\n        }(q.id, j));\n      }\n      card.appendChild(optsDiv);\n\n      expDiv = document.createElement('div');\n      expDiv.className = 'mr-exp';\n      expDiv.id = NS + '-exp' + q.id;\n\n      lbl = document.createElement('div');\n      lbl.className = 'mr-exp-lbl';\n      lbl.textContent = 'Debrief';\n\n      txt = document.createElement('div');\n      txt.className = 'mr-exp-text';\n      txt.innerHTML = q.exp;\n\n      expDiv.appendChild(lbl);\n      expDiv.appendChild(txt);\n      card.appendChild(expDiv);\n      cont.appendChild(card);\n    }\n  }\n\n  function pick(qid, oi) {\n    var q, opts, i, el, correct;\n    if (answers[qid] !== undefined || done) return;\n\n    q = null;\n    for (i = 0; i < QS.length; i++) {\n      if (QS[i].id === qid) { q = QS[i]; break; }\n    }\n    if (!q) return;\n\n    opts = shuffled[qid];\n    correct = (opts[oi] === q.correct);\n    answers[qid] = correct ? 'c' : 'w';\n    answered++;\n\n    for (i = 0; i < opts.length; i++) {\n      el = byId(NS + '-o' + qid + '-' + i);\n      if (opts[i] === q.correct) {\n        el.className = 'mr-opt correct locked';\n      } else if (i === oi) {\n        el.className = 'mr-opt wrong locked';\n      } else {\n        el.className = 'mr-opt dimmed locked';\n      }\n    }\n\n    byId(NS + '-exp' + qid).style.display = 'block';\n    byId(NS + '-pip' + qid).className = 'mr-pip ' + (correct ? 'correct' : 'wrong');\n\n    if (qid > 1) {\n      var pl = byId(NS + '-pl' + qid);\n      if (pl) { pl.className = 'mr-pip-line done'; }\n    }\n  }\n\n  function showScore() {\n    var c, w, s, net, pct, disp, verdicts, vi, sc;\n    if (done) return;\n    done = true;\n\n    c = countVal('c');\n    w = countVal('w');\n    s = TOTAL - answered;\n    net  = (c * 4) - w;\n    pct  = Math.max(0, Math.round((net \/ MAX) * 100));\n    disp = Math.min(100, Math.max(0, pct));\n\n    gid('ring').style.background =\n      'conic-gradient(#1A5F7A ' + disp + '%, #B8D8E3 0%)';\n\n    gid('pct').textContent = pct + '%';\n    gid('net').textContent = 'Net Score: ' + net + ' \/ ' + MAX;\n\n    verdicts = [\n      [5, 'Flawless. Sensitivity, specificity, prevalence independence, SnNout\/SpPin \\u2014 all cold.'],\n      [4, 'Strong round. One concept to consolidate \\u2014 the debrief has it.'],\n      [3, 'Good base. Q3 (prevalence independence) and Q4 (screening vs confirmation) are the ones to re-read.'],\n      [2, 'The denominator is everything: sensitivity uses TP+FN; specificity uses TN+FP. Lock that in and the rest follows.'],\n      [0, 'Start with Q1 and Q2 \\u2014 pure calculation. Get the denominator right, then move to interpretation.']\n    ];\n    gid('verdict').textContent = verdicts[4][1];\n    for (vi = 0; vi < verdicts.length; vi++) {\n      if (c >= verdicts[vi][0]) {\n        gid('verdict').innerHTML = verdicts[vi][1];\n        break;\n      }\n    }\n\n    gid('ct-c').textContent = '\\u2705 ' + c + ' Correct';\n    gid('ct-w').textContent = '\\u274C ' + w + ' Wrong';\n    gid('ct-s').textContent = '\\u23ED ' + s + ' Skipped';\n\n    sc = gid('score');\n    sc.style.display = 'block';\n    sc.scrollIntoView({ behavior: 'smooth', block: 'center' });\n  }\n\n  function tryInit() {\n    var sentinel = document.getElementById(NS + '-sentinel');\n    var submit   = document.getElementById(NS + '-submit');\n    var retry    = document.getElementById(NS + '-retry');\n    if (!sentinel || !submit || !retry) {\n      setTimeout(tryInit, 80);\n      return;\n    }\n    submit.addEventListener('click', showScore);\n    retry.addEventListener('click', function () {\n      build();\n      window.scrollTo(0, 0);\n    });\n    var bar = document.getElementById(NS + '-progress');\n    if (bar && window.IntersectionObserver) {\n      new IntersectionObserver(function (entries) {\n        bar.className = entries[0].isIntersecting ? 'mr-progress' : 'mr-progress visible';\n      }, { threshold: 0 }).observe(sentinel);\n    }\n    build();\n  }\n\n  tryInit();\n\n}());\n<\/script>\n\n<\/html>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Morning Rounds \u00b7 PSM Numericals \u00b7 Round 02 Numerical Series &middot; PSM Biostatistics Morning Rounds &middot; Round 02 of 07 Sensitivity, Specificity&amp; the False Rates Five questions &middot; Calculation, clinical meaning &amp; what prevalence does and does not change 5 Questions +4 \/ &minus;1 scoring Options reshuffled Submit for Debrief Round Complete 0% net Your&hellip;&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[74,96],"tags":[97],"class_list":["post-37368","post","type-post","status-publish","format-standard","hentry","category-morning-rounds","category-psm","tag-biostatistics"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Biostatistics - Sensitivity &amp; Specificity - atsixty<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Biostatistics - Sensitivity &amp; Specificity - atsixty\" \/>\n<meta property=\"og:description\" content=\"Morning Rounds \u00b7 PSM Numericals \u00b7 Round 02 Numerical Series &middot; PSM Biostatistics Morning Rounds &middot; Round 02 of 07 Sensitivity, Specificity&amp; the False Rates Five questions &middot; Calculation, clinical meaning &amp; what prevalence does and does not change 5 Questions +4 \/ &minus;1 scoring Options reshuffled Submit for Debrief Round Complete 0% net Your&hellip;&nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/\" \/>\n<meta property=\"og:site_name\" content=\"atsixty\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-23T07:55:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-23T13:55:36+00:00\" \/>\n<meta name=\"author\" content=\"Avi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Avi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/atsixty.com\\\/index.php\\\/morning-rounds\\\/biostatistics-sensitivity-specificity\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/atsixty.com\\\/index.php\\\/morning-rounds\\\/biostatistics-sensitivity-specificity\\\/\"},\"author\":{\"name\":\"Avi\",\"@id\":\"https:\\\/\\\/atsixty.com\\\/#\\\/schema\\\/person\\\/cf65e7ac7d8226d95c0bdf1036f7951d\"},\"headline\":\"Biostatistics &#8211; Sensitivity &amp; Specificity\",\"datePublished\":\"2026-08-23T07:55:27+00:00\",\"dateModified\":\"2026-08-23T13:55:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/atsixty.com\\\/index.php\\\/morning-rounds\\\/biostatistics-sensitivity-specificity\\\/\"},\"wordCount\":55,\"publisher\":{\"@id\":\"https:\\\/\\\/atsixty.com\\\/#\\\/schema\\\/person\\\/cf65e7ac7d8226d95c0bdf1036f7951d\"},\"keywords\":[\"Biostatistics\"],\"articleSection\":[\"Morning Rounds\",\"PSM\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/atsixty.com\\\/index.php\\\/morning-rounds\\\/biostatistics-sensitivity-specificity\\\/\",\"url\":\"https:\\\/\\\/atsixty.com\\\/index.php\\\/morning-rounds\\\/biostatistics-sensitivity-specificity\\\/\",\"name\":\"Biostatistics - Sensitivity &amp; Specificity - atsixty\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/atsixty.com\\\/#website\"},\"datePublished\":\"2026-08-23T07:55:27+00:00\",\"dateModified\":\"2026-08-23T13:55:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/atsixty.com\\\/index.php\\\/morning-rounds\\\/biostatistics-sensitivity-specificity\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/atsixty.com\\\/index.php\\\/morning-rounds\\\/biostatistics-sensitivity-specificity\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/atsixty.com\\\/index.php\\\/morning-rounds\\\/biostatistics-sensitivity-specificity\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/atsixty.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Biostatistics &#8211; Sensitivity &amp; Specificity\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/atsixty.com\\\/#website\",\"url\":\"https:\\\/\\\/atsixty.com\\\/\",\"name\":\"At Sixty\",\"description\":\"The Option Taken\",\"publisher\":{\"@id\":\"https:\\\/\\\/atsixty.com\\\/#\\\/schema\\\/person\\\/cf65e7ac7d8226d95c0bdf1036f7951d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/atsixty.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/atsixty.com\\\/#\\\/schema\\\/person\\\/cf65e7ac7d8226d95c0bdf1036f7951d\",\"name\":\"Avi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/atsixty.com\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/logo-agency.png\",\"url\":\"https:\\\/\\\/atsixty.com\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/logo-agency.png\",\"contentUrl\":\"https:\\\/\\\/atsixty.com\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/logo-agency.png\",\"width\":200,\"height\":200,\"caption\":\"Avi\"},\"logo\":{\"@id\":\"https:\\\/\\\/atsixty.com\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/logo-agency.png\"},\"sameAs\":[\"https:\\\/\\\/atsixty.com\"],\"url\":\"https:\\\/\\\/atsixty.com\\\/index.php\\\/author\\\/avinaux\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Biostatistics - Sensitivity &amp; Specificity - atsixty","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/","og_locale":"en_US","og_type":"article","og_title":"Biostatistics - Sensitivity &amp; Specificity - atsixty","og_description":"Morning Rounds \u00b7 PSM Numericals \u00b7 Round 02 Numerical Series &middot; PSM Biostatistics Morning Rounds &middot; Round 02 of 07 Sensitivity, Specificity&amp; the False Rates Five questions &middot; Calculation, clinical meaning &amp; what prevalence does and does not change 5 Questions +4 \/ &minus;1 scoring Options reshuffled Submit for Debrief Round Complete 0% net Your&hellip;&nbsp;","og_url":"https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/","og_site_name":"atsixty","article_published_time":"2026-08-23T07:55:27+00:00","article_modified_time":"2026-08-23T13:55:36+00:00","author":"Avi","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Avi","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/#article","isPartOf":{"@id":"https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/"},"author":{"name":"Avi","@id":"https:\/\/atsixty.com\/#\/schema\/person\/cf65e7ac7d8226d95c0bdf1036f7951d"},"headline":"Biostatistics &#8211; Sensitivity &amp; Specificity","datePublished":"2026-08-23T07:55:27+00:00","dateModified":"2026-08-23T13:55:36+00:00","mainEntityOfPage":{"@id":"https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/"},"wordCount":55,"publisher":{"@id":"https:\/\/atsixty.com\/#\/schema\/person\/cf65e7ac7d8226d95c0bdf1036f7951d"},"keywords":["Biostatistics"],"articleSection":["Morning Rounds","PSM"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/","url":"https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/","name":"Biostatistics - Sensitivity &amp; Specificity - atsixty","isPartOf":{"@id":"https:\/\/atsixty.com\/#website"},"datePublished":"2026-08-23T07:55:27+00:00","dateModified":"2026-08-23T13:55:36+00:00","breadcrumb":{"@id":"https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atsixty.com\/index.php\/morning-rounds\/biostatistics-sensitivity-specificity\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/atsixty.com\/"},{"@type":"ListItem","position":2,"name":"Biostatistics &#8211; Sensitivity &amp; Specificity"}]},{"@type":"WebSite","@id":"https:\/\/atsixty.com\/#website","url":"https:\/\/atsixty.com\/","name":"At Sixty","description":"The Option Taken","publisher":{"@id":"https:\/\/atsixty.com\/#\/schema\/person\/cf65e7ac7d8226d95c0bdf1036f7951d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atsixty.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/atsixty.com\/#\/schema\/person\/cf65e7ac7d8226d95c0bdf1036f7951d","name":"Avi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/atsixty.com\/wp-content\/uploads\/2025\/08\/logo-agency.png","url":"https:\/\/atsixty.com\/wp-content\/uploads\/2025\/08\/logo-agency.png","contentUrl":"https:\/\/atsixty.com\/wp-content\/uploads\/2025\/08\/logo-agency.png","width":200,"height":200,"caption":"Avi"},"logo":{"@id":"https:\/\/atsixty.com\/wp-content\/uploads\/2025\/08\/logo-agency.png"},"sameAs":["https:\/\/atsixty.com"],"url":"https:\/\/atsixty.com\/index.php\/author\/avinaux\/"}]}},"_links":{"self":[{"href":"https:\/\/atsixty.com\/index.php\/wp-json\/wp\/v2\/posts\/37368","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atsixty.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atsixty.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atsixty.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atsixty.com\/index.php\/wp-json\/wp\/v2\/comments?post=37368"}],"version-history":[{"count":2,"href":"https:\/\/atsixty.com\/index.php\/wp-json\/wp\/v2\/posts\/37368\/revisions"}],"predecessor-version":[{"id":37370,"href":"https:\/\/atsixty.com\/index.php\/wp-json\/wp\/v2\/posts\/37368\/revisions\/37370"}],"wp:attachment":[{"href":"https:\/\/atsixty.com\/index.php\/wp-json\/wp\/v2\/media?parent=37368"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atsixty.com\/index.php\/wp-json\/wp\/v2\/categories?post=37368"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atsixty.com\/index.php\/wp-json\/wp\/v2\/tags?post=37368"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}