DŮLEŽITÉ UPOZORNĚNÍ!
Policie České republiky se zajímá o IP-adresy osob, které komentují tento blog. Ve vlastním zájmu zde proto nic nepopírejte, nezpochybňujte, neschvalujte, neospravedlňujte, nikoho a nic nehanobte, nepodporujte a nepropagujte, a pokud se přesto rozhodnete komentář přidat, pak se, prosím, ničemu nedivte.
Aktuálně: Výnos sbírky pro Vlastimila Pechance dosáhl ke dni 6. 10. 2016 částky 59 416 Kč.
Výtěžek prvního benefičního koncertu, který se uskutečnil dne 12. 3. 2016, činil 13 500 Kč.

středa 28. listopadu 2012

Jak je to s těmi duplicitami aneb Malá noční mathematika

Tento text jsem chtěl původně použít v diskusi, ale zjistil jsem, že editace mathematických výrazů v prostém HTML je neskutečně složitá, proto jsem z něj udělal samostatný post. Slibuji, že se v textu vystříhám použití integrálů a všeho ostatního, co by k exaktnímu výpočtu bylo nezbytné, ale obtížně zapsatelné.

Předpokládejme, že populace n podpisů jednoho kandidáta obsahuje pouze korektní data a duplicity; to je rozumný předpoklad, ježto vyšší multiplicity jsou v datech značně raritní. Těchto duplicitních záznamů budiž d (tzn. d / 2 dvojic) a kontrolní vzorek nechť obsahuje m = 8500 podpisů, přičemž lze předpokládat, že 1 << m < n, avšak nikoli nutně d << n.

Označme p = d / n. V prvním vzorku bude přibližně p m duplicit, přičemž odhalit lze v tomto vzorku pouze takové, které jsou tam přítomny oběma částmi duplicitní dvojice. Těch je cca p m2 / n: logicky, protože pravděpodobnost, že i druhá část dvojice bude v kontrolním vzorku, je m / n.

I v druhém kontrolním vzorku bude průměrně p m duplicit, avšak odhalit z nich ministerstvo dokáže pouze 2 p m2 / n.

Ne všechny zjištěné duplicity se však započítají jako chybný podpis. U prvního vzorku jen polovina z nich, tzn. cca p m2 / 2 n, u druhého všechny, které mají protikus v prvním vzorku, a z těch, které ho mají ve druhém, pouze polovina. Tedy dohromady ve druhém vzorku 3 p m2 / 2 n. Počet vyřazených podpisů z důvodu duplicity z prvního vzorku by proto měl být přibližně třikrát nižší než z druhého. Jak uvidíme, data tomuto předpokladu odpovídají.

Spočítejme si nyní s těmito znalostmi, jak by dopadli jednotliví kandidáti, kdyby se duplicity dohledaly ve všech podpisech; pomiňme, že taková kontrola by zřejmě nebyla ústavně konformní, jestliže zákon stanoví kontrolu namátkovou, a kdyby kandidáti bývali věděli, že se budou kontrolovat všechny archy, mohli by si kontrolu provést sami a tyto vadné záznamy sami vyškrtat.

U Jany Bobošíkové je n = 56191, z prvního vzorku bylo vyřazeno kvůli duplicitě 81 podpisů, ze druhého 337. Proveďme statisticky ne zcela korektní krok a počet vyřazených podpisů sečtěme a z výsledku, tzn. 418, odvoďme očekávané d. Jestliže 2 p m2 / n má být 418, vychází p = 418 n / 2 m2 = 0,1625 a tedy d = p n = 9134 podpisů. Připomínám, že by se z nich mohla odečíst jen polovina, tzn. 4566 chybných záznamů. Průměrovým algorithmem by jí bylo za duplicity odečteno pouze 1382 podpisů, součtovým (který je však zjevně chybný a v soudním přezkumu nemůže obstát) dvojnásobek.

U Vladimíra Dlouhého je n = 59165, vyřazených duplicit je 21, resp. 46. Z toho máme d = 1623, z čehož polovina činí 812 podpisů, takže rovněž znatelně víc než 233 hlasů, o které by přišel podle zákona při průměrovém algorithmu.

U Táni Fischerové n = 72434, vyřazeno bylo 4, resp. 20 duplicit. Z toho d = 871 a d / 2 = 436. Odečteny jí měly být 102 hlasy.

V případě Vladimíra Franze je n = 87782, vyřazeno 6 a 16 duplicit. Vychází d = 1173, d / 2 = 587. Přijít měl o 114 hlasů.

Tomio Okamuran = 61966 a vyřazeno bylo 25, resp. 55 duplicitních podpisů. Z toho d = 2126, d / 2 = 1063. Podle zákona by přišel pouze o 292 hlasů.

Zuzana Roithová, n = 81199, vyřazeno 7 a 17 záznamů. Vychází d = 1095 a d /2 = 548. Podle zákona by přišla o 115 hlasů.

A konečně Miloš Zeman, n = 106018, vyřazených duplicit bylo 24 a 60. Z toho d = 6534 a d / 2 = 3267. Ze zákona však ztratil jen 524 hlasů.

Závěr je zde celkem jednoznačný: zákon psali lidé neznalí mathematických zákonitostí a zatížili ho další podstatnou chybou, nedostatečnou redukcí v případě zjištění duplicit na podpisových arších. Odpočet, který stanovili, a to i v případě, že byl v sankčním úmyslu ministerstvem zdvojnásoben, neodráží skutečnou míru toho, o kolik se kandidáti ulili, a kolik hlasů by jim mělo být za ve vzorcích zjištěné duplicity spravedlivě odpočítáno.

Aktualisováno.
Kdo by chtěl se zdrojovými daty experimentovat hlouběji, může si je z mých stránek stáhnout v podobě SQL souboru pro MySQL, případně můžete použít username guest a heslo paragraphos a připojit se, read-only, na můj MySQL server pecina.cz (webový přístup je možný rovněž, na http://www.pecina.cz/phpMyAdmin). Pokud v datech něco zajímavého objevíte, prosím, podělte se v diskusi.

29 komentářů:

  1. Co rikate na Petersovu "prejimku dvojim vyberem"?

    OdpovědětVymazat
  2. Vypocet neni zcela presne. Zavislost neni presne kvadraticka ale je v pomeru kombinacnich cisel. ((n nad k)/(m nad k)), kde pro duplicity k=2

    takze po vykraceni faktorialu, polovin atd je to

    (celkovy pocet duplicit) = ((n*(n-1)/(m*(m-1))*(pocet duplicit ve vzorku
    To znamena pro Bobo ((56191*56190)/(17000*16999))*(337+81) = 4567

    Duvod proc to neni kvadraticke je jednoduchy. Predstavte si ctvercovou tabulku, kde porovnavam kazdeho s kazdym. Spravne vyrazujete polovinu protoze ve ctverci je kazda doplicita 2x. Ale jeste je tam drobnost. Ve ctverci se kazdy vzorek porovnava i sam se sebou. Ty sice nepocitate, ale i celkovy pocet bunek pres ktere se pocita je jiny.

    Rozdil je malinky, ale kdyz uz pocitat, tak spravne.

    OdpovědětVymazat
    Odpovědi
    1. Jo a jeste neco. Pomer vyrazenych vzorku prvniho a druheho by mel byt 1:x

      kde x = (17000*16999)/(8500*8499) = 4,0002353218025650076479585833627

      Tedy ne 3 jak mate v clanku.

      Vymazat
    2. Pardon. Mate pravdu. Ten pomer je presne

      x = (17000*16999)/(8500*8499) - 1 = 3,0002353218025650076479585833627

      Zapomel jsem, ze ty ministerske cisla neobsahuji duplicitu z toho prvniho i kdyz se proti prvnimu porovnava.

      jeste -1 tam melo bejt, pro priste.

      Vymazat
    3. Jistě jste postřehl premisu, že 1 << m, takže se za jednotkou na pátém desetinném místě nemusím honit.

      Vymazat
    4. V kazdem pripade je tato chyba daleko mensi nez nejistota samotne metody extrapolace.
      Mozna by bylo zajimave zpocitat +- kolik hlasu je rozpyl pokud chceme vyslek znat na 99%
      Take by to bylo zajimave.

      Vymazat
    5. Je sice pěkné, jak jste se pustil do výpočtů, ale nemáte pravdu.

      Vemte vzorek 30 tisíc duplicit, na vnitro donesete 60 tisic podpisů. Kdyz z nich vyberete náhodný vzorek 8500 tak v tom vzorku bude jen asi tak přesně vadných 603 záznamů, zdaleka ne polovina.

      A nebo jsem něco nepochopil správně? Takový kandidát projde v pohodě.

      Podobně můžete mít trojvzorek 3x20tisic podpisů. Na Vnitro donesete 60 tisíc. V kontrolním vzorku 8500 bude duplicit a trojpodpisu asi tak jen 1150 vadných. I takový kandidát by v prošel s odřenýma ušima.

      Pochopitelně oběma by zlamalo vaz spojení obou vzorku, kde by
      neplatné podpisy enormě narostly.

      Vymazat
    6. Ale mam pravdu. Prvni vas priklad: 60 tis podpisu, ve vzorku 8500 je 603 zaznamu vadnych

      takze vadnych = ((60000*59999)/(8500*8499))*603 = podle vypoctu je v celem souboru 30049 duplicit, to odpovida protoze tech vadnych ve vzorku je prumerne ne 603 ale 602.022533709

      A druhy priklad vadnych = ((60000*59999)/(8500*8499))*1150 = 57306 - tohle nevychazi, protoze 1150 neodlisuje duplicity a triplicity. Presto neprojde.

      Vymazat
    7. Pro priklad druhy (triplicity) Je extrapolce na cely soubor
      ((60000*59999)/(8500*8499))*duplicit_ve_vzorku + ((60000*59999*59998)/(8500*8499*8498))*triplicit_ve_vzorku

      Kolik ze je duplicit a triplicit ve vzorku vaseho druheho prikladu?

      Vymazat
    8. Do triplicit bych se nepouštěl, v reálných datech je jich jen několik a výpočet velmi komplikují.

      Vymazat
    9. Je to uplne jednoduche Pro triplicity je to pomer prislusnych (n nad k), kde k=3

      Pro soubor 3*20000 bude ve vzorku 20000/((60000*59999*59998)/(8500*8499*8498)) = 56,846200334

      A vyjmecne to neni, Bobosikova zvladla i to :-)

      Vymazat
    10. Pardon, neco mam na tom vypoctu (28. listopadu 2012 23:14) spatne. Ale nechce se me zjistovat co, fakt to neni jednoduche. Tomasi, omlouvam se

      (28. listopadu 2012 23:38) je asi spravne.

      Vymazat
    11. Úplně jednoduché? No, nevím…

      Je-li v celém souboru n podpisů t triplicit (tedy t/3 trojic), v prvém vzorku jich bude tm/n, ale zjistí se to pouze v případě, je je aspoň jeden z dalších prvků trojice v tomtéž vzorku, tedy u 2tm^2/n^2 podpisů. Nyní je potřebo spočítat, kolik z nich se vyřadí. Celá trojice je ve vzorku u průměrně tm^3/n^3 podpisů, a z nich se vyřadí dvě třetiny, tedy 2tm^3/3n^3. Dva ze tří jsou tam tm^2/n^2.(1-m/n)-krát, a vyřadí se z nich polovina, tedy tm^2/2m^2.(1-m/n). Celkem se vyřadí 2tm^3/3n^3 + tm^2/2m^2.(1-m/n) = 2tm^3/3n^3 + tm^2/2m^2 - tm^3/2m^3 = tm^2/2m^2 + tm^3/6m^3.

      Mám pokračovat i pro druhý vzorek, nebo už mi věříte? :-)

      Vymazat
    12. Jen dovětek: u druhého vzorku je možností ještě daleko víc.

      1. Celá trojice ve druhém vzorku, vyřazují se dvě třetiny.

      2. Dva v prvním, jeden ve druhém, z druhého se vyřazují všechny.

      3. Jeden v prvním, jeden ve druhém, jeden mimo, vyřazují se všechny.

      4. Dva ve druhém, jeden mimo, vyřazuje se polovina.

      5. Jeden v prvním, dva ve druhém, vyřazují se všechny.

      Vymazat
    13. V druhém vzorku se u triplicit vyřazuje:

      a) Naprosto stejně jako ve vzorku prvnim

      b) A pak navíc už jen když dojde ke kombinaci obou vzorku.
      A to vždy přinese jen jedno vyřazení navíc.

      I. II. Vyřazení
      b1) 1 2 (ale to uz bylo jednou vyrazeno u II.) +1
      b2) 1 1 +1
      b3) 2 1 (ale to už bylo jednou vyrazeno u I.) +1

      Zbytecně to komplikujete :-)

      Vymazat
    14. To vám připadá jednoduché? :-)

      Klidně si můžeme udělat vzorce pro k-plicity, když chcete, jen nevím, jak to sem nacpat, protože tam bude spousta kombinačních čísel velkých sigem a pí.

      Vymazat
    15. Prominou mistře, vy jste na pěti řádcích řešil jen vzorek II. A ještě do toho musíte zamotat, kdy se odečítá jeden a nebo dva hlasy. Při vaší skvělé inteligenci bych tedy předpokládal, že jste nějak jednoduše (možná ne a zase to bylo nějak vámi domotané) vyřešil slavně vzorek I. v tri-plicitách (1+1 a 1+2, protože 2+1 řešit netřeba :-)

      Zde máte pak jen řádky tři a vždy odečítáte jen jeden podpis. Navíc b1) a b3) jsou tak krutě symetrické a tak naprosto stejné, že by mělo být pod vaší úroveň to brát jako "třetí řádek"

      Takže ano, zbytečně to komplikujete. Co sem taháte k-plicity, když zamotáte a znepřehledníte už i obyčejné tri-plicity? Takže zbytečný cancy o k-plicitách, pojďme řešit raději kvadraturu kruhu a nebo Kochaňského rektifikaci kružnice, co říkáte?

      A na vaši otázku klidně odpovím, ano mi to připadá mnohem jednodušší, než vaše 1-5. Vám snad ne? :-(

      Vymazat
  3. Zase nepodceňujte své publikum; kolik z lidí, kteří by porozuměli integrálům, by nepeorozumělo jejich TeXové transkripci? (A ostatně, nemáte snad již nainstalovanou MediaWiki s rozšířením, které hbitě vygeneruje obrázek?)

    OdpovědětVymazat
    Odpovědi
    1. MediaWiki by mi bylo na blogu platné asi jako mrtvému kalkulačka.

      Vymazat
    2. Hyperlinky nebo hotlinkingu obrázků.

      Vymazat
    3. K tomu nepotřebuji MediaWiki, latex mám samozřejmě v operačním systému nativně.

      Vymazat
  4. Moc děkuju autorovi, že to tak hezky sepsal. Vedlejší důsledek, který zmiňuji na svém blogu, je, že vám stačí necelých 30 tisíc podpisů a když každý zvojíte, potom s pravděpodobností >95% projdete ministerskou kontrolou ("průměrovým" algoritmem).

    A ještě snad - mne ten zákon nepřipadá nutně špatný (ale já jsem matematik, tak to neberte moc vážně :). To by snad stačilo upravit výkladem či vyhláškou nebo ne?

    OdpovědětVymazat
  5. Díky za poučný článek.
    Předpokládáte, že záznamy vyřazené ministerstvem pro duplicitu měly už jeden "protikus", tedy byly ve vzorku dvakrát? Tak se dostáváte k hodnotě např. u Bobošíkové 4566 (8%) neplatných duplicitních záznamů.
    Co by se stalo, kdyby se kandidátka pokusila tyto duplicity sama vyrobit tak, že by kopírovala podpisy vícekrát, a vyrobila např. 2 bratříčky vybraným 2283 záznamům? Neplatných by měla stejně, ale neztížilo by se tím jejich nalezení v náhodném vzorku?

    Böda

    OdpovědětVymazat
    Odpovědi
    1. Předpokladem je, že ve vzorku žádné triplicity nebo vyšší multiplicity nejsou; to deklaruji hned v úvodu. V opačném případě by tyto výsledky neplatily, a neplatily by ani v případě, že by výskyt duplicit nebyl náhodný (např. kdyby byly obě části duplicity na jednom archu).

      Vymazat
  6. Zkuste svou teorii konkrétně spočítat co by se stalo, pokud by kandidát odevzdat 2x30000 podpisů.

    Při kontrolním vzorku 8500 by totiž bylo nalezeno pouze cca 600 duplicit a mně vaše výpočty vycházejí rozhodně jinak. Kde dělaá chubu?

    A nebo chybujete vy. Není prece pravda, když v celem souboru jsou samé duplicity, (neboli 50% chybovost), že když náhodně vyberete vzorek dva, že s 50% pravděpodobností vyberete zrovna duplicitu. tak to ani náhodou. Na duplicitu ve vybraném vzorku dvou podpisu, byste musel mit sakra štěstí. Podle mne mnohem větší, než vyhrát první ve Sportce.

    OdpovědětVymazat
    Odpovědi
    1. V takovém případě je v prvním vzorku všech 8500 podpisů duplicitních, což zjistí u cca 1204 a z nich cca 602 vyřadí. Ze druhého vzorku vyřadí cca 1806 podpisů. Celkově vyřadí 8500 podpisů a kandidát projde. Žádnou chybu nevidím.

      Vymazat
    2. Podle vypoctu "prumerovanim procent" projde.
      Ale zcela presne y to melo byt:
      1 vzorek bude obsahovat 602 duplicit = 30000/((60000*59999)/(8500*8499))
      2 vzorek bude obsahovat 1806 duplicit = 30000/((60000*59999)/(17000*16999))-602

      Extrapolovano na celek je to ((60000*59999)/(17000*16999))*(1806+602) = 29997

      29997 odhalenych duplicit z 30000 celkem neni spatne, chyba je v zaokrouhlovani na cele podpisy u vzorku.

      Vymazat
  7. Pokud jsou oba vzorky stejně velké, stačí pro součet obou vzorků přejít z čísla 'm' na číslo '2m' a ve vašem přiblížení je hned na první pohled vidět, že ve "druhém" vzorku bude 3x více duplicit. Ono totiž 2^2-1 = 3.

    Také je správná poznámka v tom, že k jednomu zvolenému číslu, pokud hledáme duplicitu tak ten druhý sdružený kolega tam není s pravdepodobností m/n, ale přesněji (m-1)/(n-1). Což ale pro čísla 8500 a více jak 50000 je opravdu jedno.

    Poslední statistická lahůdka, když pro zvětšení statistiky posčítáte duplicity u všech kandidátů ve vzorku I. a pak II., dostanete '168 a 551'
    a statisticky by to mělo být '180 a 539', což je naprosto dokonalá ukázka, jak to vše funguje správně!

    OdpovědětVymazat
  8. Pěkná db, tak jsem ji hned použil na kontrolu počtu archů s chybou 1. vs. 2. vzorek a stále mi to statisticky nesedí. Tedy kvalita kotroly dle mě nebyla stále stejná. Detailně v blogu.

    OdpovědětVymazat

Kursiva: <i>text</i>
Tučně (když už to musí být…): <b>text</b>
Odkaz: <a href = "http://adresa">název odkazu</a>, tedy <a href = ""></a>