惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
AI
AI
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
U
Unit 42
Vercel News
Vercel News
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
Microsoft Security Blog
Microsoft Security Blog
The GitHub Blog
The GitHub Blog
WordPress大学
WordPress大学
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
F
Full Disclosure
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security
Recorded Future
Recorded Future
N
News and Events Feed by Topic
雷峰网
雷峰网
V
Vulnerabilities – Threatpost
Schneier on Security
Schneier on Security
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
Project Zero
Project Zero
罗磊的独立博客
G
GRAHAM CLULEY
腾讯CDC
P
Privacy International News Feed
V
V2EX
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
H
Heimdal Security Blog
L
LINUX DO - 热门话题
Forbes - Security
Forbes - Security
美团技术团队
MongoDB | Blog
MongoDB | Blog
Security Latest
Security Latest
M
MIT News - Artificial intelligence
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
宝玉的分享
宝玉的分享
T
Threat Research - Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog

Henri Sivonen’s pages

Parin vuoden tutkimattomuus crates.io: Rust Package Registry Asiakirjatonta toimintaa It’s not wrong that "🤦🏼‍♂️".length == 7 Koulutartuntojen tilastointimenettely Perusteasiakirjoja hallussapitämättä ikärajoitettu Asiantuntijat ja nukkuva vallan vahtikoira Koronapassilausunto Suppealla tietopohjalla ohimeneväksi väitetty Text Encoding Menu in 2021 The Text Encoding Submenu Is Gone An HTML5 Conformance Checker Not Part of the Technology Stack Browser Technology Stack Bogo-XML Declaration Returns to Gecko A Look at Encoding Detection and Encoding Menu Telemetry from Firefox 86 Why Supporting Unlabeled UTF-8 in HTML on the Web Would Be Problematic Rust Target Names Aren’t Passed to LLVM Toimintamalli Activating Browser Modes with Doctype Tehtävänmäärittelyä kirjoittamatta ja kuolemia laskematta laumasuojamallinnettu Character Encoding Menu in 2014 Erillissuosituksen tarpeettomuudesta yleissuosituksen poikkeukseksi? STM:n maskiaikajana Rust 2021 Oma-aloitteisesti mallinnettu Kokopinovaatimuksin kilpailutettu chardetng: A More Compact Character Encoding Detector for the Legacy Web Varauksia paisutellen tiedotettu Perusteasiakirjoitta tiedotettu Always Use UTF-8 & Always Label Your HTML Saying So IME Smoke Testing The Validator.nu HTML Parser About the Hiragino Fonts with CSS It’s Time to Stop Adding New Features for Non-Unicode Execution Encodings in C++ Rust 2020 The Last of the Parsing Quirks About about:blank Rust 2019 a Web-Compatible Character Encoding Library in Rust How I Wrote a Modern C++ Library in Rust Using cargo-fuzz to Transfer Code Review of Simple Safe Code to Complex Code that Uses unsafe A Rust Crate that Also Quacks Like a Modern C++ Library #Rust2018 No Namespaces in JSON, Please A Lecture about HTML5 Julkisesti luotettu varmenne ikidomainille TLS:ää (SSL:ää) varten -webkit-HTML5 Lists in Attribute Values The Sad Story of PNG Gamma “Correction” If You Want Software Freedom on Phones, You Should Work on Firefox OS, Custom Hardware and Web App Self-Hostablility HTML5 Parser Improvements ARIA in HTML5 Integration: Document Conformance (Draft, Take Two) Schema.org and Pre-Existing Communities Lowering memory requirements by replacing Schematron HTML5 Parsing in Gecko: A Build Introducing SAX Tree NVDL Support in Validator.nu HOWTO Avoid Being Called a Bozo When Producing XML An Unofficial Q&A about the Discontinuation of the XHTML2 WG Thoughts on HTML5 Becoming a W3C Recommendation Four Finnish Banks Training Users to Give Banking Credentials to Another Site Unimpressed by Leopard Sergeant Semantics The Content Sink Inheritance Diagram – 2006-06-30 What is EME? About Points and Pixels as Units The Performance Cost of the HTML Tree Builder Social Media Impression Management The spacer Element Is Gone Openmind 2006 Performance Mistake XHTML and Mobile Devices WebM-Enabled Browser Usage Share Exceeds H.264-Enabled Browser Usage Share on Desktop (in StatCounter Numbers) HTML5 Parser-Based View Source Syntax Highlighting Vendor Prefixes Are Hurting the Web Accept-Charset Is No More Dualroids Writing Structural Stylable Document in Mozilla Editor ISO-8859-15 on haitallinen Hourglass The Scientific Method According to Hixie Maemo Source Code Karpelan lukkovertaus ontuu Digitaalisesta arkistoinnista ARIA in HTML5 Integration: Document Conformance (Draft) XHTML—What’s the Point? (Draft, incomplete) Mac OS X Browser Comparison HOWTO Spot a Wannabe Web Standards Advocate An Idea About Intermediate Language Trees and Web UI Generation Thoughts on Using SSL/TLS Certificates as the Solution to Phishing Bureaucracy Meets the Web Europe Day HOWTO Establish a 100% Literacy Rate What to Do with All These Photos? Charmod Norm Checking Validator Web Service Interface Ideas DTDs Don’t Work on the Web EFFI’s Day in Court Speaking at XTech
Johtopäätöksiä mallin rakenteesta
Henri Sivonen · 2021-02-01 · via Henri Sivonen’s pages

Lueskelin THL:n koronaepidemiamallin 18.12.2020 jakoon pannun version lähdekoodia sillä tasolla, millaisia juttuja siellä tehdään (en sillä tasolla, onko bugeja). TL;DR-hengessä kerron yhteenvedon ensin:

Pähkinänkuoressa:

  • Malli ei neuvo tekemään rajatoimia, koska mallin kannalta rajat ovat jo täysin kiinni.
  • Malli ei neuvo tehostamaan eristämistä vaikkapa eristysmajoitusta tarjoamalla, koska tällaista ei mallinneta.
  • Rajoituksitta mallissa virus puskee lopulta läpi väestön, joten voi helposti ajatella, että sitä ei voi kuitenkaan estää. (Mallissa ei ole rokotteita.)
  • Yhden määrämittaisen lockdownin sijoittelu rajatulle tarkastelujaksolle tuottaa oikea-aikaisuuden harhan, koska vaikuttavuus ei ole suurin heti tarkasteltavan jakson alussa, jos epidemia ilman lockdownia kasvaa ja tarkasteltava lockdown ei riitä tukahdutukseen.
  • Malli ei sovellu tukahdutuksen keston arviointiin eikä kerro, mitä konkreettisia toimia tukahduttamiseksi kannattaisi tehdä.

Kuulostaako tutulta Suomen politiikkaan verrattuna?

Pidän erittäin ongelmallisena sitä, että ainakin media ja näköjään myös hallitus itse suhtautuvat THL:n mallinnuksiin vakavasti otettavampana totuutena kuin on aiheellista. Esimerkkinä voidaan pitää esim. tätä Iltalehden juttua, jossa kerrotaan THL:n johtopäätös ilman mitään toimituksellista pohdintaa siitä, miten kyseiseen johtopäätökseen voisi päästä. Yritän avata asiaa oman ymmärrykseni pohjalta tässä.

THL:n malli on SEIR-malli, johon on pultattu päälle lisää luokittelua. Aloitan selittämisen tässä SEIR-mallia pykälää yksinkertaisemmasta SIR-mallista. (Wikipediasta voi lukea lisää.)

SIR-mallissa väestö on jaettu kolmeen tilaan (engl. compartment): alttiisiin (susceptible), tartunnan saaneisiin (infected), joilla on aktiivinen tartunta päällä, ja parantuneisiin (recovered). Aluksi yksilöt ovat alttiita ja tartunnan saaneiden tilassa pitää olla ainakin yksi yksilö, jotta epidemia lähtee käyntiin. Sekä alttiistä että tartunnan saaneista riippuvalla siirtymäfunktiolla yksilöt siirtyvät alttiista tartunnan saaneiksi, eli jo tartunnan saaneet muuttavat alttiita myös tartunnan saaneiksi. Vietettyään tarpeeksi kauan tartunnan saaneessa tilassa, yksilöt siirtyvät parantuneeseen tilaan. Parantuneiden tila ei osallistu enää epidemiaan, koska parantuneet oletetaan immuuneiksi uudelleentartunnalle. Tällaisen mallin kannalta myös kuolleet kuuluvat parantuneisiin, koska kuolleetkaan eivät enää saa tartuntaa. (Parempi sana R-tilalle olisi removed eikä recovered.)

Tässä vaiheessa voidaan havaita joitakin mallin perusominaisuuksia, joita THL:n mallin hienommat ominaisuudet eivät tähän pohja-ajatukseen verrattuna muuta:

  • Parantuneiden pysyvästi immuuniksi oletetusta R-tilasta ei ole reittiä takaisin alttiiden S-tilaan.

  • Mallissa on suljettu väestö. Mallin kannalta rajat ovat siis täysin kiinni.

  • Mikäli aktiivisten tartuntojen tila ei tyhjene täysin ja mikäli siirtymäfunktio antaa tartunnan saaneen aina löytää alttiin (eli funktio katsoo yksilöiden lukumääriä eikä sitä, voivatko he olla kokonaan estyneitä saavuttamaan toisiaan), riittävän pitkällä ajanjaksolla väestössä kaikki saavat tartunnan, kun jätetään syntymät ja muut kuolemat huomiotta.

SIR-malliin verrattuna SEIR-malli jakaa I-tilan E- ja I-tiloiksi, joista E mallintaa tartunnan saamisen jälkeistä tartuttamatonta ajanjaksoa. (E tulee sanasta exposed, joka ei mallissa tarkoita samaa kuin altistunut reaalimaailmassa.) THL:n mallissa tartuntoja luokitellaan sitten lisää: Tartunnan saanut voi joutua sairaalahoitoon, joutua sairaanhoidosta tehohoitoon tai kuolla niin, että kuolema on parantumisesta eroava tapahtuma. Olennaista kuitenkin on, että luokittelu sairaalaan jne. tehdään tartuntojen jälkikäsittelynä SEIR-osuuden päälle. Niinpä esim. SEIR-osuuden kannalta sairaalassa oleva osallistuu muiden tartuttamiseen siinä missä sairaalan ulkopuolelle jäävä tartunnan saanut, jolla on toteamaton tartunta!

Lisäksi THL:n mallissa väestö ei ole homogeeninen vaan jakautuu ikäryhmiin (joissakin kohdissa 5 vuoden välein ja toisissa 10 vuoden välein), joiden väliset kontaktit eivät ole tasan jakautuneita ja joiden todennäköisyydet kuolla tai joutua sairaalahoitoon eivät ole samoja. Mallissa on kontaktimatriisi, jossa on ryhmien väliset päivittäiset kohtaamistodennäköisyydet. Alle 20-vuotaiden tartunta-alttiutta ja tarttuttavuutta skaalataan erikseen sellaisin tasaprosentein, että ne näyttävät hihavakioilta eivätkä tilastoarvoilta. (Lapsiskaalauksen ottaminen pois päältä vähentää tartuntoja jonkin verran ja kuolemia paljon. En ole vielä tutkinut miksi.)

Mallissa on olettama, että osa tartunnoista jää havaitsematta. Malli laskee vain jonkin osuuden tartunnoista havaituiksi. Tämä havaittujen osuus on kalibroitu jatkumaan historiallisen testidatan käppyrästä. Sen sijaan myös piilotartuntatilasta siirrytään immuuniin tilaan. Malli siis olettaa reippaasti laumasuojaa hyvin hatarin perustein ja tällä tavalla skenaarioissa saadaan tartuntakäyrät laskuun.

(Käyrä lähtee laskuun, kun noin puolet väestöstä on saanut tartunnan, joista siis valtaosa näitä havainnoista irrallaan olevia oletettuja, ja sitten käyrän alamäen aikana kutakuinkin toinenkin puoli saisi tartunnan. Kun mallin käyrissä tällä mekanismissa käyrä tulee alas, ei pidä ajatella, että skenaario olisi OK. Valtioneuvoston tuoreimmassa muistiossa sivulla 7 olevasta kuvaajasta voidaan lukea todetuiksi päivittäisiksi tartunnoiksi 400 ja kaikiksi 1100 eli oletetaan, että 64% tartunnoista on piilossa. Vertailun vuoksi Ruotsin laumasuojamallinnuksessa on oletettu jopa 98,7% tartunnoista Tukholmassa helmi-huhtikuussa 2020 piilossa olleiksi (sivu 15).)

Mitä sitten mallista puuttuu, mitä voisi naiivisti kuvitella tällaiseen malliin kuuluvan? Mallista puuttuu:

  • Tartuntojen tuominen Suomen rajan yli
  • Tartunnan saaneiden eristäminen
  • Mahdollisuus uuteen tartuntaan samalla yksilöllä
  • Rokotukset
  • Longcovid
  • Lomakausien muutos kontaktimatriisiin

Siis: Kun rokotteita ja eristystä ei mallissa oteta huomioon, ilman rajoitustoimia mallissa virus kulkee läpi väestön.

Lockdownia mallinnetaan vähentämällä kontakteja, joita mallin siirtymäfunktio laskee. Kun lockdown poistetaan, virus taas kulkee läpi väestön.

Mitä poliittisia päätöksiä tästä voi sitten tehdä?

Aivan aluksi ei tehdä mitään johtopäätöksiä rajoista. Mallissa ne ovat jo kiinni, joten malli ei kerro, että viruksen pääsyä rajojen yli olisi tarpeen rajoittaa.

Malli ei myöskään kerro, että tartunnan saaneille kannattaisi tarjota eristysmajoitusta paremmin, koska malli ei ota eristystä huomioon.

Virus kulkee läpi väestön, kun mallia ajetaan tarpeeksi pitkälle, joten mallia katsomalla näyttää helposti siltä, että ainoa tapa päästä viruksesta eroon on antaa sen mennä läpi väestön. Jos epidemia tukahtuu vahingossa, vaikka oli vain tarkoitus suojella terveydenhuollon kantokykyä sillä aikaa, kun virus käy väestön läpi, voi vaikka huolestua siitä, ettei epidemia etene, eli koko hommassa meneekin kauemmin. Mitä suuremman osan tartunnoista olettaa olevan piilossa, sitä helpompi on hyväksyä ajatus siitä, että annetaan viruksen kulkea läpi väestön.

Mutta jospa ei kuitenkaan usko, että viruksen on pakko antaa mennä läpi väestön, mutta silti pitää päättää mallin pohjalta. Tällöin voi tarkastella vaikka seuraavaa puolta vuotta ja pyrkiä työntämään viruksen katastrofaalisen puskemisen väestön läpi tämän puolivuotisikkunan jälkeiseen aikaan. Jospa vaikka siihen mennessä rokotteet, jotka tietää mallista puuttuviksi, hoitaisivat homman. Tällöin malli tuottaa illuusion oikea-aikaisuudesta.

Jos rajoitukset vain hidastavat epidemiaa sen verran, että täysi katastrofi on puolivuotisjakson ulkopuolella, muttei käännä tartuntoja laskuun, eksponentiaalinen kasvu tuottaa aina vain enemmän ja enemmän tartuntoja (ja sairaalahoitojaksoja ja kuolemia). Puolivuotisen ensimmäisellä kuukaudella näitä on siis pienin määrä ja puolivuotisen viimeisellä kuukaudella suurin määrä.

Valtioneuvoston muistiossa sanotaan: ”Mallinnuksessa tutkittiin tiukempien rajoitusten (4 viikkoa, 25% lisävähennys kontakteihin, ’lock down’) vaikutusta edellä mainittuun tilanteeseen alkaen esimerkinomaisesti joko 18.1.2021 tai 1.4.2021.” Lockdownin pituus, kontaktivaikutus ja lukumäärä (1 kpl) ovat siis ennalta oletettuja. Lisäksi lockdown on niin mieto, ettei se paina tartuntoja nollaan.

Ihan mallia ajamatta voidaan järkeillä: Jos lockdown on tarkastelujakson alussa, vaikuttavuus estettyinä tartuntoina/sairaalajaksoina/kuolemina jää pieneksi, koska pienintä määrää pienennettiin ja epidemia ehtii sitten lockdownin jälkeen ryöpsähtää. Jos lockdown on tarkastelujakson lopussa, vähennetään määriä vain viimeiseltä kuukaudelta. Ja sitten tarkastelujakso loppuukin, joten myöhemmästä ei väliä. Jos taas lockdown on keskellä, suhteellinen vähennys jo isommasta määrästä on absoluuttisesti suurempi kuin ensimmäisellä kuukaudella olisi ollut ja lisäksi päästään vaikuttamaan myös lockdownin jälkeisen ajan määriin. Lockdown kuuluu siis jonnekin alun ja lopun välille. Simsalabim! Mallista pulahtaa oikea-aikaisuus!

Mutta järkihän sanoo, että jos epidemiasta haluisi kokonaan eroon, lockdown pitäisi aloittaa heti, koska tartuntojen lisäämisellä ensin ei voita mitään, ja sitten mallinnuskysymys olisi, millainen lockdownin pitäisi olla, jotta päästäisiin johonkin kohtuulliseen kestotavoitteeseen. Malli ei kuitenkaan sovi lockdownin tarpeellisten tarkempien sääntöjen löytämiseen.

Jos tiedetään, että halutaan jonkin tietty epidemian hidastuminen, malli ei vastaa siihen, millä konkreettisilla toimilla kontaktimatriisi muuttuu tarvitulla tavalla. Olennaisin poikkeus on koulut, joiden kohdalla toimen ja kontaktimatriisimuutoksen suhdetta vastaavuus on melko hyvin arvattavissa. Koodissa on kouluihin kohdistettavia kontaktimatriisimuutosskenaarioita. Mutta entä muuten? Joulukuussa jaetun koodin ehkä hieman Great Barrington -henkisessä bonusskenaariossa ”Nykyinen kasvu, +50% vanhussuoja” oletetaan parempi vanhussuoja jotenkin. Mutta miten? Vanhuksille voi toki suositella itsensä eristämistä tai kieltää laitosvierailuja.

Lisäksi sellainen siirtymäfunktio, joka kelpaa epidemian mallintamiseen silloin, kun tartunnan saaneita on aika tiheästi alttiiden seassa, ei sovellu tukahdutuksen loppuvaiheen mallintamiseen, koska eristystä ei mallinneta. Jos katsotaan pääasiassa tartunnan saaneiden ja alttiiden lukumääriä eikä mallinneta tarkemmin sitä, miten erillään he toisistaan ovat, tukahdutuksen loppuvaihe voi näyttää mallissa toivottoman pitkältä verrattuna siihen, että todellisuudessa tukahduttaessa viimeiset tartunnan saaneet olisivatkin kunnolla erillään alttiista.