Zásah reality

V open-space kancelárii veľkej IT firmy vládol chaos. Incident. Výpadok. Web nefungoval. Manažéri pobehovali medzi stolmi ako splašené sliepky. Buzerácia sa valila z každej strany.

„Kto do pekla zmenil tie indexy?! Potrebujem rollback IHNEĎ!“ kričal jeden z leadov.

Martin, skúsený DBA, už roky prechádzal rovnakým kolobehom. Incidenty, tikety, tlak. O sedem rokov si na toto nikto ani nespomenie, ale teraz? Teraz sa tvárili, že je to otázka života a smrti.

Potom zazvonil jeho telefón. Neznáme číslo.

Zdvihol. Na druhej strane sa ozval chladný ženský hlas:
„Pán Novotný? Tu je doktorka Horáková z Fakultnej nemocnice. Mám pre vás smutnú správu…“

V tej chvíli šum kancelárie stíchol. Teda, nie naozaj – ľudia stále kričali, písali e-maily, riešili „krízovú situáciu“. Ale pre Martina všetko stíchlo.

„Vaša manželka… bola dnes ráno pri autonehode. Sanitka ju priviezla k nám, ale…“

Ďalej už nepočul. Prsty mu skĺzli z klávesnice. Pohľad sa zahmlil. Svet sa zúžil na jedno jediné slovo. „Bola.“ Minulosť.

Niekto mu tresol po stole. „Martin, počúvaš?! Je to KRITICKÉ! Musíme to riešiť okamžite!“

Martin sa naňho pomaly otočil. Viditeľne bledý. V očiach niečo, čo ten kolega nevedel identifikovať – akési prázdno, ktoré nikdy predtým nevidel.

„Web nefunguje…“ zopakoval Martin ticho.

„Presne! Poďme na to! Potrebujeme tvoj zásah, inak nám padnú objednávky!“

Martin sa zhlboka nadýchol. Pohľadom prešiel po všetkých tých vystresovaných ľuďoch. Po monitoroch plných logov, po blikajúcich správach na Slacku, po manažérovi, ktorý o päť minút zvolá ďalší „urgent meeting“.

A potom jednoducho… vypol počítač.

Postavil sa.

Zobral si kabát.

A odišiel.

Nikto mu nestihol nič povedať. A aj keby, bolo by mu to jedno. Prvýkrát po dlhých rokoch mu to bolo úplne jedno.

Za dverami open-space kancelárie sa zastavil. Prvýkrát za celý deň sa poriadne nadýchol. A keď vykročil von z budovy, pozrel sa na oblohu.

V meste bola stále biela, rozmazaná od smogu a svetiel.

Ale on vedel, že hviezdy tam niekde sú.

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:

Pravdepodobnosť falošne pozitívneho výsledku v tomto prípade bude daná pravdepodobnosťou, že test ukáže pozitívny výsledok u zdravého jedinca.

Pravdepodobnosť falošne pozitívneho výsledku je komplementárna k pravdepodobnosti správnej diagnózy, teda (1 – 0,95 = 0,05).

Teraz potrebujeme zistiť, koľko ľudí z náhodnej vzorky 5000 ľudí bude mať falošne pozitívny výsledok.

Ak je výskyt choroby X v populácii 2%, znamená to, že 2% z 100000 ľudí je chorých, čo je 2000 ľudí. Zvyšných 98000 ľudí je zdravých.

Avšak, test má pravdepodobnosť falošne pozitívneho výsledku 5%, takže 5% z 98000 ľudí (zdravých) dostaneme falošne pozitívny výsledok.

0,05 * 98000 = 4900

Takže otestovaním náhodnej vzorky 5000 ľudí by sme očakávali približne 4900 falošne pozitívnych výsledkov.

Skúška správnosti:

Vytvoríme si jednoduchý PHP skript na overenie tohto tvrdenia:

<?php
// Počet simulácií
$num_simulations = 100000;

// Počet zdravých jedincov v populácii
$num_healthy = 98000;

// Počet chorých jedincov v populácii
$num_sick = 2000;

// Pravdepodobnosť správnej diagnózy
$probability_correct_diagnosis = 0.95;

// Pravdepodobnosť falošne pozitívneho výsledku
$probability_false_positive = 1 - $probability_correct_diagnosis;

// Počet falošne pozitívnych výsledkov
$num_false_positives = 0;

// Simulácia
for ($i = 0; $i < $num_simulations; $i++) {
    // Otestujeme náhodnú vzorku 5000 ľudí
    $tested_sample = mt_rand(0, $num_healthy + $num_sick - 1);

    // Ak test vykazuje falošne pozitívny výsledok pre zdravého jedinca
    if ($tested_sample < $num_healthy) {
        $num_false_positives++;
    }
}

// Výpočet percentuálnych falošne pozitívnych výsledkov
$percent_false_positives = ($num_false_positives / $num_simulations) * 100;

// Výstup
echo "Počet falošne pozitívnych výsledkov: $num_false_positives\n";
echo "Percento falošne pozitívnych výsledkov: $percent_false_positives%\n";
?>