Problém s falošnou pozitivitou testov v zdravej populácii

Tento článok ilustruje, prečo je nevhodné použiť jediný test na zdravej populácii.

Príklad:

Ak má test na ochorenie pravdepodobnosť správnej diagnózy 0,95 a ak je výskyt choroby X v populácii 100000 ľudí 2%, koľko falošne pozitívnych výsledkov dostaneme, ak otestujeme náhodnú vzorku 5000 ľudí?

Riešenie:

Krok 1: Rozdelíme populáciu

Z 5000 náhodne vybraných ľudí:

Skutočne chorých (pozitívnych):

5000×0,02=100

Skutočne zdravých (negatívnych):

5000−100=4900

Krok 2: Zohľadníme presnosť testu

Predpokladajme, že test má:

Citlivosť (True Positive Rate) = 0,95

⇒ zo 100 chorých bude správne označených 95 ako pozitívnych (True Positives)

⇒ 5 budú falošne negatívni

Špecificitu (True Negative Rate) = 0,95

⇒ zo 4900 zdravých bude správne označených 0,95 × 4900 = 4655 ako negatívnych

falošne pozitívnych bude:

4900−4655=245

Počet falošne pozitívnych výsledkov = 245

Skúška správnosti:

Vytvoríme si jednoduchý PHP skript na overenie tohto tvrdenia. Keďže je to overenie experimentálnou metódou, nedostaneme rovnaké čísla ako pri výpočte teoretickej hodnoty (ako je vyššie). Ako by sme zvyšovali vzorku alebo počet simulácií, dostávali by sme sa stále bližšie k teoretickým hodnotám.

<?php
// Parametre
$sampleSize = 5000;
$prevalence = 0.02;       // 2 % výskyt choroby
$sensitivity = 0.95;      // Pravdepodobnosť, že test správne zachytí chorého
$specificity = 0.95;      // Pravdepodobnosť, že test správne označí zdravého

// Inicializácia počítadiel
$truePositives = 0;
$falsePositives = 0;
$trueNegatives = 0;
$falseNegatives = 0;

for ($i = 0; $i < $sampleSize; $i++) {
    // Určíme, či je človek chorý
    $isSick = mt_rand(0, 9999) < ($prevalence * 10000);

    if ($isSick) {
        // Ak je chorý, test má 95 % šancu dať pozitívny výsledok
        $testPositive = mt_rand(0, 9999) < ($sensitivity * 10000);
        if ($testPositive) {
            $truePositives++;
        } else {
            $falseNegatives++;
        }
    } else {
        // Ak je zdravý, test má 95 % šancu dať negatívny výsledok
        $testPositive = mt_rand(0, 9999) >= ($specificity * 10000);
        if ($testPositive) {
            $falsePositives++;
        } else {
            $trueNegatives++;
        }
    }
}

// Výsledky
echo "Zo vzorky $sampleSize ľudí:\n";
echo "Skutočne pozitívni (True Positives): $truePositives\n";
echo "Falošne pozitívni (False Positives): $falsePositives\n";
echo "Skutočne negatívni (True Negatives): $trueNegatives\n";
echo "Falošne negatívni (False Negatives): $falseNegatives\n";
?>

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

thirty five ÷ = five