Vacciner og brøker

Lige nu er der heldigvis gode nyheder om Covid19. Der er vacciner på vej! Der jubles over, hvor effektive, de er – 95% siges det om en af dem. 70% om en anden. Effektiviteten er et estimat for, hvor stor en andel af de vaccinerede, der bliver immune – i en periode. Der er usikkerhed. Måske er det i virkeligheden 73% og 92%.
Det er forskellige studier, der har givet disse effektiviteter og statistikere (Tak, Mikkel) har fortalt mig, at man ikke kan sammenligne vacciners effektivitet på tværs af studier, så det lader jeg være med. M.a.o.: Jeg regner her med tal, som hele vejen skal tages med et gran salt i statistikerforstand.

Hvor vigtig er effektiviteten mon? For den enkelte er det ret let at se, at 70% betyder, at man med en sandsynlighed på 30% ikke er beskyttet. Men der er en anden brøkregning, der kan være vigtig her.

Alle har efterhånden hørt om det famøse reproduktionstal – også kaldet kontakttallet – hvor mange smitter en smittet i gennemsnit. Og vi ved også, at det gælder om, at det kommer under 1 – så dør pandemien ud.

Kontakttallet er et gennemsnit. Der er nogen, der smitter mange, andre smitter ikke nogen. Cambridge-epidemiologerne har, før pandemien, lavet et spil, CounterPlague, hvor man kan se, hvordan det kan forløbe. For hver smittet slår man med en terning og ser fra en tabel, hvor mange, der smittes.

I Danmark er der kontakttal for hele landet, men også for mindre områder – tænk på lokale udbrud – der er kontakttallet højt i det område. Variansen betyder altså også noget for muligheden for at bremse smitten. Den kan måske vokse og dø ud et sted,  men undervejs flytte til naboområdet, som så oplever et udbrud. Det er m.a.o. kompliceret.

Hvis hver smittet i gennemsnit giver virus videre til 7 personer og vi har vaccineret 6/7 af befolkningen med en 100% effektiv vaccine, så er det kun 1 person, der bliver smittet. Vi har bragt kontakttallet ned til 1. Vi skal i det tilfælde vaccinere flere end 6/7 for at få r<1.

Hvis en smittet i gennemsnit giver virus til r personer og vaccinen er 100% effektiv, skal vi vaccinere en andel af befolkningen på \frac{r-1}{r}.

Lige nu er kontakttallet for smitte ca. 1,2 ifølge Seruminstituttets opgørelse.
Det er i øvrigt baseret på en supersmart idé, som skal fjerne effekten af, at det er forskelligt, hvor mange der testes. Se ekspertrapporten fra 23/10

Med r=1,2 skal vi vaccinere mindst \frac{1,2-1}{1,2}=\frac{1}{6} af befolkningen med en 100 % effektiv vaccine, før kontakttallet forventes at være under 1. MEN: Kontakttallet er 1,2 fordi vi lige nu overholder en lang række restriktioner og tak for det! Hvis vi nu ikke synes, det skal blive ved – selvom man vel godt kan blive ved med at vaske hænderne ordentligt – så er det et andet kontakttal, vi skal bruge. Hvad er det tal? Det kan man ikke svare helt sikkert på. Wikipedia citerer lige nu artikler for, at den grundlæggende reproduktionsrate, R_0, er mellem 2 og 6. Kontakttallet er mindre end R_0, men  afhænger af mange faktorer, så lad mig give nogle eksempler:

  • Hvis r=2 skal der vaccineres mindst 50% af befolkningen.
  • Hvis r=3 skal der vaccineres 2/3, knap 67% af befolkningen
  • Hvis r=6 skal der vaccineres 5/6, godt 84% af befolkningen
  • Hvis r=15 (for mæslinger er den 12-18) skal der vaccineres 14/15, godt 93%

Hvad nu, hvis vaccinen ikke er 100% effektiv? Og det er de aldrig. Tallene ovenfor drejer sig sådan set ikke om, hvor mange der skal være vaccineret, men hvor mange der skal være immune, herunder dem, der har haft sygdommen. Det er den såkaldte flokimmunitet. Hvis vi skal have 67% immune og vaccinen er 50% effektiv, er det ikke godt…

Er vaccinen 70% effektiv og vi ønsker at have 67% immune, tænker vi som følger:
Vaccinerer vi en brøkdel på x, vil vi få x\cdot \frac{7}{10} immune. Skal det give 2/3 (de 67%) kræver vi x > \frac{2}{3}\cdot \frac{10}{7} (man dividerer med 0,7) altså x> \frac{20}{21}, godt 95%.

Er vaccinen 90% effektiv og vi stadig ønsker 2/3 immune, er regnestykket x > \frac{2}{3}\cdot \frac{10}{9}=\frac{20}{27} godt 74%.

Med de nuværende bud på vacciner er der mange andre overvejelser – skal de køles ned til mere end en god fryser kan klare? Hvor dyre er de? Kan de produceres i store nok mængder? Og meget andet, men jeg regner med brøker her. Jeg er, som ofte skrevet her, ikke epidemiolog og nu heller ikke vaccineekspert…

Ekspertgruppens COVID-19-modeller

Statens Serum Institut (SSI) har sammen med en ekspertgruppe udarbejdet flere rapporter med matematisk modellering af COVID-19 smittespredning og sygehusbelastning. I lang tid var modellerne (beregninger, kildekode og data) ikke åbne, men i starten af marts blev en del frigivet.

Torben Tvedebrink og jeg (Mikkel Meyer Andersen) har downloadet koden og data og kigget nærmere på modellen, der ligger til grund for ekspertgruppes rapport fra 16. april. (Bemærk at der også findes en nyere model, der ligger til grund for rapporten d. 6. maj, men her er data endnu ikke frigivet.) Vores nysgerrighed har givet anledning til blog-indlægget “Sensitivitet af ekspertgruppens COVID-19-modeller“.

I det undersøger vi hvor robust modellen er for visse antagelser (fx type af residualer og fordelingen af parameterne) og om hvor stor indflydelse data om antal indlagte på intensivafdeling har på modellens forudsigelser.

Twitter har der også været interesse for vores blogindlæg. Bl.a. har folketingsmedlem Stinus Lindgreen (Radikale Venstre) vist interesse. Han har kæmpet for øget åbenhed for data og kildekode fra ekspertgruppen.

Vi håber at data for den nyeste model også snart frigives så vi også kan kigge nærmere på den.

Kontaktopsporingsapps – og matematik

Tegneserien nedenfor er lavet af Nicky Case, som også står for grafik og kodnng på den fantastiske side What happens Next? – gå først til den, hvis ikke, du har været der før. Det er sublim formidling.

Hvordan kan en kontaktopsporingsapp holde på dine hemmeligheder.

Tegneserien beskriver en konkret idé til en smitteopsporingsapp, men principperne bruges af flere og er i øvrigt ret velkendte fra feltet med kryptering, deling af hemmeligheder, at regne på/med information, man ikke kan se… hvor både matematik og datalogi er helt nødvendige. Det ser ud til, at man her bruger en lidt anden teknik  end den, vi tit hører om med primtal og andet i den talteoretiske/algebraiske boldgade.
På AAU er der også arbejde med smitteopsporing. Her er et spritnyt preprint – lavet i samarbejde mellem Institut for Matematik og Insitut for Elektroniske Systemer.

Hvor er matematikken i tegneserien (og appen): Jo, der er noget med pseudotilfældige tal. (“uniquely random gibberish”, som der står i tegneserien)  Det har jeg skrevet om før – eksempelvis her.

Alice får en engangsadgangskode (OneTimePasscode, OTP, hvis I vil Google). Bag dem ligger også pseudotilfældighed: Der skal ikke være let gennemskueligt system i, hvordan den næste kode bliver, når man har set en stribe af dem. Så ville man måske selv kunne lave sig en ved at hacke sig ind på dem, der sendes til Alice og andre.

Der bruges også et “cukoo-filter”, som er opkaldt efter gøgeunger, der vipper andre fugleunger ud. Det skal sikre, at det kun er relevant information (gøgeunger), der sendes til eksempelvis Bob i tegneserien.

Test af pseudotilfældige tal

Man skal til appen bruge en frembringer af tilfældige tal, en PRNG (PseudoRandomNumberGenerator). Den er “Pseudo” og der er altså et underliggende system i, hvordan tallene laves. Der er mange tests for, om det så er “tilfældigt nok”. Overordnet skal talene opføre sig som noget tilfældigt ville gøre. Det amerikanske NIST (National Institute for Standards and Technology) har beskrevet det og giver mange eksempler på den slags tests. Det er en statistisk test med 0-hypotesen: “Denne følge af tal er tilfældigt frembragt”. Så kan man skrue op og ned for, hvad der skal til for ikke at dumpe den test – justere den krævede p-værdi, om man vil.

Givet 20.000 tal, som enten er 0 eller 1. Læg dem sammen (ikke binært –  101 giver 2). Med 20.000 skal man få et tal mellem 9654 og  10346. Det vil rigtige tilfældige tal bestå med sandsynlighed 1-10^(-6). (Der er ca. lige mange 0 og 1 i følgen)

NIST gør følgende, som egentlig er samme ide:

For en følge  af 0’er og 1’er x_1x_2x_3\ldots x_n

lægger man sammen som følger. For hvert 1 lægges 1 til, men for hvert 0 trækkes 1 fra. Smart skrevet. Man summerer 2x_i-1.
Eksempel: 11001010010111 giver S_obs=1+1-1-1+1-1+1-1-1+1-1+1+1+1=2.

Udregn \frac{S_{obs}}{\sqrt{n}} hvor n er antal bit (her 12).

Dette vil være normalfordelt med middelværdi 0 og spredning 1 for en sand tilfældig følge, så man kan undersøge, om hypotesen skal forkastes ved at udregne arealet af det, der ligger længere væk fra 0 i normalfordelingen. Det giver p-værdien. Man bruger mere end én test – se mere hos NIST eller det tyske BSI, Bundesamt für Sicherheit in der Informationstechnologie.

 

Vil man have rigtigt (sande) tilfældige tal, kan de hentes hos kvantefysikerne – henfald og bip i en Geigertæller er sandt tilfældige. Man kan hente det fra atmosfærisk støj på random.org og sikkert andre steder. Men det er dyrt, langsommeligt og dermed ikke smart til eksempelvis en smitteopsporingsapp.

En PRNG er en algoritme, som tager et input (et “seed”) og fra det producerer en streng af bits, som opfylder kriterierne ovenfor. Samme “seed” giver samme bitstreng. Men strengen skal se helt tilfældig ud – bestå de tests, NIST og andre har. Det er altså en ganske snedig algoritme.

Et eksempel på sådan en er Mersenne Twister, som bruger Mersenne primtal. Den er hurtig, men knap så sikker – man kan gætte systemet og derefter gætte næste bit. Langsommere, men mere sikker, er Blum Blum Shub, som gør som følger:

Man finder to primtal, p og q, som er meget store. Så ganger man dem og får M=pq. Nu vælges en startværdi – et “seed” x0 og udregner x2, x3,…. Talfølgen er givet ved at tage det seneste tal i rækken, xn, kvadrere det og udregne resten ved division med M.

Eksempel: p=7, q=11, så er M=77. Lad x0=15, så er x0^2= 225. Divider med 77. Resten er 225-154= 71.
Næste tal 5041-5005=36, 1296-1232=74, 5476-5467=9, 81-77=4, 16, 256-231=25

15, 71, 36,74,9,4,16,25

det ser da ret tilfældigt ud. Man bruger ikke direkte tallene fra output, men genererer en bit fra hvert af disse tal – f.eks. et 1 tal, hvis der er et ulige antal 1’er i xn skrevet binært…

Sikkerheden i Blum Blum Shub bygger bl.a. på, at det er  svært at finde p og q, selvom man måske kan finde M.

Er det så helt fuldstændig sikkert at bruge sådan en app? Se det kommer an på implementeringen. Man kan jo gøre noget andet, end man påstår. Så det er godt, man i dette tilfælde har adgang til koden bag appen. Så kan dem, der forstår det, kigge efter. Andre kan finde en, der forstår det og som man stoler på.


 

 

 

 

 

Mere fra det matematiske modelbureau.

Der er gang i de matematiske modeller lige nu. Og i at forklare og misforstå dem. Her vil  jeg give eksempler på gode forklaringer leveret af andre – der er ikke grund til at lave animationer etc. igen, når gode folk allerede har leveret dem. Og så vil jeg til sidst selv forklare et lille hjørne af den matematik, der er i spil. Matematikken indgår helt fundamentalt i at forsøge at forudsige, hvad der sker, hvis… Trods de matematiske modellers begrænsninger – der er mange forudsætninger og ting med småt, når man laver en model – så vil de fleste formentlig foretrække den slags modeller fremfor at spå i kaffegrums. Vejrudsigter gælder kun et stykke tid frem – det skyldes både begrænsninger i modellen og at man ikke kender data superpræcist. Sådan er det med alle disse modeller. Finasnministeriets modeller for økonomien i år havde eksempelvis ikke inkorporeret pandemien – så de gælder nok ikke nu.

Først lige et host om de mange fortolkninger og budskaber, som florerer med enten click bait intention eller ren og skær uvidenhed/manglende omtanke. (Jo, min titel med modelbureauet er lidt click bait, så undskyld for den 🙂 )

Min yndlingsoverskrift i den retning var “Flere kvinder end mænd testes nu positive for Coronavirus”  – det var en Ritzau-nyhed og stod i rigtig mange dagblade. Den kom et par dage efter, man var begyndt at teste rigtig mange, der arbejder i sundhedsvæsenet. Er der mange kvinder i sundhedsvæsenet? Joh, det er der vist. Så det er en ikke-nyhed, omend korrekt. Det forklarede en overlæge fra Seruminstituttet da også i artiklen, men overskriften skulle vi have.

Se den slags misvisende overskrifter og artikler skyldes egentlig ikke, at man mangler matematisk viden – de fleste kan forstå, at der er en sammenhæng mellem, hvilke grupper, der testes, og hvilke grupper, man finde syge iblandt. Andre skud i tågen skyldes mere, at man tror, man forstår matematikken og derefter selv laver udregninger bagpå en konvolut (hvis nogen har en konvolut…)

Meget afhænger af, hvem man tester. Mere om det nedenfor. (Lige nu, mens jeg skriver, kan man læse, at der skal testes “tilfældige danskere” – så er man fri for den skævvridning, der er i kun at teste bestemte grupper. Til gengæld skal man overveje det, der altid er i befolkningsundersøgelser – se for eksempel The problems of a “bad” test for antibodies. Hos Winton Centre for  Risk and evidence communication. Det er  ikke den test, man vil lave i DK lige nu, men testen for virus i svælget. Der gælder de samme overvejelser naturligvis. Udover overvejelser om, hvorvidt der er skævhed i, hvem der reagerer på en meddelelse i e-boks om, at man er udvalgt til at blive testet.)

Winston Centre and Luna9

Leg med tests og falske positive, falske negative på Understanding Uncertainty

 

Gode ressourcer om matematikken og modellerne.

I fredags, 1/5, gik siden, What Happens Next    i luften. Det er en imponerende flot side, det er lavet af Marcel Salathé, Epidemiolog ved EPFL Lausanne, og Nicky Case, som har stået for “art/code” og  på  ncase.me har  matematikanimationer/illustrationer under bl.a. overskriften explorable explanations. Det er rigtig godt lavet. Vil du oversætte til dansk, er det nemt at få lov til.  Jeg har bestemt mig til, at jeg ikke har tid.
Man kan eksperimentere med modellerne uden at få “ørerne i maskinen” og kløjs i matematikken. Men man skal selvfølgelig huske, at det er  modeller. Og, som Salathé har understreget fra det første offentlige foredrag, han holdt 26/2 om epidemien: Husk at checke datoen for et indlæg. Vi bliver klogere hele tiden. En hovedpointe i “What happens Next” er, at nedlukning af samfundet har givet os en mulighed for at starte forfra med at finde smittede, deres kontakter, isolere etc. Men gå igennem hele smøren, det er virkelig oplysende. De kalder det en epidemiflysimulator. Måske skulle nogen faktisk tage sig sammen og oversætte det…

En tidligere studerende på AAU, Michael Höhle, har på sin blog skrevet om grønne og røde kurver.

Onsdag 29/4 var der et Webinar arrangeret af ECMI (European Consortium for Mathematics in Industri) under titlen math4covid19. Her stå 4-tallet nok både for “for” og “against”. Der er mange tiltag i den retning, hvor vi forsøger at samle indsatsen. Det kan ses her. Det er på et noget andet matematisk niveau end ressourcen ovenfor, i.e., en anden målgruppe. Bl.a. fortæller Uffe Høgsbro Thygesen fra DTU om de modeller, vi bruger i Danmark. Man kan notere sig, at der er meget i spil. SEIR-modeller og kontaktstrukturer, som jeg beskrev i de to foregående blogindlæg, men naturligvis statistiske modeller oveni – tidsrækker, overlevelsesanalyse, stokastisk simulering af parametrene i modellerne, generelt en række modeller og ikke kun en enkelt. Som man må forvente det.

Det sidste foredrag drejede sig om at estimere, hvor mange, der er inficeret (i gruppen I i SIR-modellen). Det vil vi nu i DK gøre ved at teste en stikprøve af befolkningen. I foredraget estimeres det udfra dødstallet. Hvorfor? Jo, især når man vil sammenligne situationen i forskellige lande, om indsatser såsom lockdown virker etc., er effekten af forskellige teststrategier helt åbenlys. Hvis vi tester mange, finder vi mange. Og omvendt. Dødstallet kan så også være påvirket af, om man i et land ikke har ressourcer til at behandle de mest syge. Så der er ikke en facitliste. Se de sidste slides for alle forudsætningerne…

Dødelighed og overdødelighed.

Dødelighed og specielt overdødelighed monitoreres i Europa på EuroMOMO. Det er vores eget SerumInstitut, der står i spidsen for det. Man skulle tro, det var nemt nok at vide, om der dør usædvanligt mange, men det er det naturligvis ikke. Man skal vide, hvor mange, der plejer at dø, hvor stor spredningen er og i øvrigt, hvilken fordeling disse tal kan forventes at følge.

Her er det samlede antal døde – på ugebasis og siden 2016.

Bemærk de mange kurver. Den fede blå er data. Den stiplede blå “basislinje”, det grå normalområde, den stiplede røde for substantial increase og så det gule område til sidst, hvor man skal korrigere for, at tallene rapporteres senere end dødsdagen – forsinket henover weekenden eksempelvis.

Hvor kommer de andre kurver fra?

I får lige en hel masse andre kurver først (der er flere, hvor de kom fra på EuroMOMO)

Z-score for udvalgte lande

 

 

 

De sidste kurver er “Z-score”, som, hvis man tager det med et gran salt, siger, hvor mange standardafvigelser, man ligger væk fra middelværdien i en normalfordeling. Mere end 3\sigma, hvor den stiplede røde kurve ligger – så er man substantielt over.

Men hvad så med det, der tilsyneladende sker ved årsskiftet – man ligger altid over den stiplede kurve i december. Så er det altså ikke et gennemsnit af dødstal i december et antal år tilbage. EuroMOMO skriver selv, hvordan de gør. Det er en Poissonfordelt tidsrække med trend og desuden en sinuskurve med året som periode. Modellen er altså mindre “hakkende” end gennemsnit af data. Det er med vilje. Man vil gerne kunne se, at der, som vanligt, er influenza ved juletid, eller se, at der nu her i april tydeligvis er det udbrud – men det ved vi jo.

Man kan tænke på en situation, hvor en model er en ret linje. Og der er flere data fra hver uge – fra flere år, hvor vi har samlet data til at lave modellen udfra. Så vil man nok ikke forvente, at den rette linje går gennem gennemsnit af data i hver uge.

På den første graf kan man se, den stiplede kurve ligner en sinuskurve. Det skyldes, at man antager, at dødsfald blandt de 0-15-pårige ikke afhænger af årstiden, mens det for de over 15-årige er årstidsafhængigt – der dør flere om vinteren… så tilsammen afhænger det af årstiden, eftersom der dør flere over 15 end under. Det kan man se nedenfor, hvor døde i hele Europa er opdelt efter alder. Den grå stiplede kurve er en linje for 0-4 årige og for 5-14-årige. Den svinger for 15-64 årige og svinger mere for 65+

Epidemimodeller 2 – Agenter eller ligninger.

Her er en fortsat historie -i indlægget  Modeller for Epidemier kan I læse om SIR og SEIR-modeller og desuden underdeling af befolkningen efter alder og viden om, hvordan aldersgrupper mødes og risikerer at smitte hinanden.

Det projekt, DTU og AAU arbejder med, er en anden type model, nemlig en AgentBaseretModel, en ABM. Se mere nedenfor. De bruger også differentialligningsmodeller – så kan man se på begge modeltyper og vurdere, hvordan det samlede billede er og lave forskellige mulige scenarier. Men først lidt mere om SIR modeller og dens familiemedlemmer.

SIR, SEIR, SEIRS – tilføj selv bogstaver. Epidemiologer har naturligvis gennemskuet, at der kan være behov for andre kompartmentmodeller – andre kompartments og andre dynamikker i, hvordan man flytter mellem disse som tiden går. Disse modeller er klassiske og velkendte.

En temmelig generel version er SEIRS i den version, man kan lege med den her: http://www.public.asu.edu/~hnesse/classes/seirs.html

 

 

 

Der er bl.a. en faktor \rho, som flytter folk fra R til S (de er kun immune i en periode) – det er derfor, den hedder SEIRS- man kan komme rundt. Der er også mulighed for at gå direkte fra S til R ved at blive vaccineret (det er faktoren \nu, der styrer den trafik). Man kan dø af noget andet end epidemien – det er faktoren \mu, som optræder for både S, E, I og R (bemærk, at man fastholder det konstante befolkningstal – tænk lige over det 🙂 )

I kan lege med modellen på den side, jeg linker til. Eller selv lave noget kode, der gør det. Der er en skov af Pythonkode derude til den slags. Og igen – advarsel: De modeller er alt, alt for simple, men det kan give en ide om dynamikken i sådan en epidemi.

 

AgentBaseredeModeller, ABM

I kompartmentmodellerne ovenfor, behandler man en gruppe – dem, der er i et kompartment – ens – homogent. Eksempelvis er det nok lidt tvivlsomt, om jeg har samme typer kontakter som alle andre på samme alder. Så kunne man underdele endnu mere, men det giver et nyt problem: Flytning mellem kompartments er modelleret ved en differentialligning – det giver ikke mening, hvis der er to personer i hver kompartment.

Agentbaseret modellering er en computersimulation – har man spillet TheSIMS (nej, det har jeg ikke), kender man et eksempel på, hvordan agenter kan “leve” i sådan et setup, hvor man giver dem visse egenskaber og forudsætninger for at interagere med omgivelserne.

Et simplere eksempel er flokopførsel, som jeg tidligere har skrevet om – fugle i flok reagerer på de nærmeste fugle, men tilsammen giver det en flokopførsel, som er vanskelig at forudsige inden man laver simulationen. Det er det, man har brugt til at lave gnuflokke i Løvernes Konge.

Pointen er, at komplekse fænomener kan modelleres ved simple regler for mange.

For en epidemimodel kan man placere agenterne geografisk – give dem forskellig status mht. epidemien (S, E, I, R, vaccineret eller ej, …), alder, job, … og forskellig mulig og sandsynlig opførsel – de kan “træffe beslutninger”. Kører man modellen, vil den give forskellige resultater – hvis den første smittede isolerer sig fuldstændig, så sker der ikke så meget mere. Tager den person en fyldt bus, ser det  anderledes ud.

Input til modellen er, ligesom for de “ligningsbaserede” modeller (SIR etc.) taget fra det, man ved om dels epidemien og dels befolkningen.

Der er endnu ikke noget at offentliggøre fra det danske konsortium (hemmelige agenter 🙂 ) men her er et eksempel på en ABM, der simulerer mæslingeudbrud i en by i Irland:

An Open Data-driven agent based model to simulate infectious disease An Open-data-driven agent based model to simulate infectious disease outbreaks. PLOS December 2019. Elizabeth Hunter, Brian MacNamee, John Kelleher.

Data for agenterne er bl.a. 

Geografisk data – hvor bor folk, hvilke husstande er hvor etc. er også med. Her er agenterne placeret i en by i Irland

Nu begynder de så at flytte sig – tage i skole, på arbejde, i indkøbscentre,… Når to befinder sig i samme celle(der er et grid henover det geografiske område) og den ene er smittet, bliver den anden smittet med en vis sandsynlighed – skifter status til smittet. De bliver syge, kommer på hospitalet,…

I modellen fra Irland rammer man ganske tæt på det, der skete ved et faktisk mæslingeudbrud – med en vis andel af kørslerne af modellen.

Nu er der så ikke langt til at teste forskellige scenarier – social afstand, lukkede skoler, universiteter, karantæne,…. Men basalt er det The Sims med smitsom sygdom og ikke helt så god grafik 🙂

 

Modeller for epidemier.

Ved statsministerens pressemøde inden påske, hvor en gradvis “åbning” af Danmark blev lanceret, fortalte Kåre Mølbak fra Statens Serum Institut, at de har fremskrevet mulige scenarier ved at bruge matematiske modeller. I TV2News’ løbende undertekster stod “matematiske modeller” – altså med anførselstegn. Man kan se, at det er uvant, at der udtrykkeligt tales om matematiske modeller til et pressemøde…. selvom der er matematiske modeller bag valg af finansiering af stort set hvert eneste politiske udspil.

 

I Nature beder Julia Gog, britisk epidemiolog, om at slippe for, at for mange overfylder epidemiologernes inboxe og diverse preprintarkiver med halvbagte beregninger – hvis man virkelig vil hjælpe og har evnerne, vil det være godt at fortælle, hvad modellerne går ud på. Se det er et kampråb jeg kan forstå. Og reagere på.

Først lidt generelt om matematiske modeller: Det er modeller –  ikke virkeligheden. Når man laver en matematisk model vælger man at se bort fra noget af virkeligheden. Det gælder om

  1. Modellen skal være simpel nok til, at man kan håndtere matematikken i den.
  2. Resultaterne af at “regne” på matematiksiden skal være væsentlige og relevante for den virkelige problemstilling.
  3. Output fra modellen skal kunne fortolkes, give mening og være nogenlunde retvisende for den virkelighed, der skal beskrives og påvirkes.

Hvor god modellen er afhænger i høj grad af, hvor godt man forstår den virkelig problemstiling, hvor meget og hvor præcist data, man har, hvor hurtigt, man kan få fat i data etc. Derfor vil output fra modeller ofte komme med flere mulige scenarier vægtet med forskellig sandsynlighed. Her er eksempelvis ekspertgruppens  prognose for indlæggelser på intensiv, hvis vi havde opretholdt restriktionerne fra før påske, men slækket på “social afstand”, som det kaldes.. Det går, som man kan se, ganske overordentlig meget galt med en ikke så lille sandsynlighed.

 

 

 

 

 

 

 

 

 

Hvor ved ekspertgruppen så det fra – hvordan laver de beregningerne? Hvad er modellen? Det får I ikke hele historien om – jeg er ikke epidemiolog – kan knap stave til det – men jeg kan løfte lidt af sløret – jeg har læst mig til noget og vidste lidt i forvejen.

Epidemimodeller. SIR og SEIR.

En meget simpel model for epidemier er SIR-modellen. Det er en kompartmentmodel hvor befolkningen er delt i “kasser” og flytter rundt mellem disse kasser. Her står S for Susceptible (de raske, der kan smittes), I for Infected (dem, der smitter), R for recovered (dem, der ikke smitter mere eller kan smittes). Man ser på en samlet population, som så enten er smitbare (S), smittede (I) eller (R):har været smittet, nu ikke smitbare og heller ikke smitter – herunder er også dem, der er døde.

S+I+R er konstant. Det er jo den samlede befolkning. Så Recovered inkluderer dem, der er døde.

Som tiden går flytter personer  mellem S, I og R. Det er altså funktioner af tiden S(t), I(t) og R(t).

HVordan flytter de rundt? Lad mig først udvide modellen til en SEIR, hvor E er Exposed – de er smittet, men smitter ikke endnu.

Hvor mange flytter fra S til E? Tiden kan her sættes til at svare til dage. Så hvordan udvikler S,E, R sig, hvis vi kender S(t), E(t), I(t), R(t) til et tidspunkt? Det afhænger af, hvor smittefarlig sygdommen er og hvor mange møder, der er mellem smittede og raske. Det plejer vi at modellere som en sædvanlig differentialligning (“sædvanlig” er et fagudtryk – “ordinary” er den engelske pendant –  S,E,I,R er funktioner af t, tiden og ikke andet – vi har nemlig også funktioner af flere variable):

Lad mig starte nedefra:  \gamma=1/D, hvor D er det antal dage, man i gennemsnit er syg (og smitter) – det er altså den andel af de inficerede, der kommer sig og flytter til R. Den optræder (med modsat fortegn)  både i den afledte af R og den afledte af I – de flytter jo fra I til R. TIlsvarende er \delta 1/d, hvor d er inkubationstiden – den tid, man er smittet, men ikke smitter.

\beta er et mål for smitsomheden – den ganges med IS/N, hvor N er befolkningens størrelse – rationalet er, at man smitter, når man mødes.

Man kan allerede med denne model se, at det kan hjælpe på epidemiens udvikling at sætte syge i karantæne. Så bliver I(t) mindre  og der smittes ikke så mange.

Det er imidlertid en meget, meget simpel model. Hvis man skal lave de grafer, ekspertgruppen har lavet, skal man for eksempel vide, hvilken del at befolkningen, der bliver smittet – der er stor forskel på, hvor syg man bliver og dermed, om man skal på intensiv afdeling.

Det kan man reparere på ved at lave flere kompartments: Opdeling i aldersgrupper, som så er underopdelt i S, E, I, R, altså eksempelvis raske 0-5-årige. Det giver en finere model, hvor man kan tage hensyn til, hvilke dele af befolkningen, der mødes og dermed om de smittede 50-55-årige smitter de 0-5-årige.

I England lavede man et “citizens science” projekt hvor 36.000 personer rapporterede om deres kontaktmønstre – hvem mødes de med og hvor (arbejde, hjemme, skole,…) Der var også automatisk indrapportering via GPS og telefoner. Ud af det kom eksempelvis kontaktmatricen nedenfor:

 

De hvide felter er manglende data – børn under 12 rapporterede ikke, eller der var ikke nok med.

Det giver en indikation af, at vi mødes med jævnaldrende og  børn mødes med deres forældre.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Hjælper det, at vi holder os hjemme? Det afhænger af, hvor vi mødes med hinanden og det har projektet i England også undersøgt. Søjlen til venstre er fysisk kontakt, til højre al kontakt – defineret passende – måske skal man tale med folk eller passere tæt på dem.

Det giver tydeligvis input til, hvad man får ud af at holde os hjemme fra arbejde. Desuden er fysisk kontakt minimeret ved “social distancing”. Man kan omvendt også se noget om, hvad det betyder at lade børn komme i skole.

Men, men: Det er en model for et land – Storbritannien. I Danmark er vores kontakter formentlig anderledes – i Storbritannien har de eksempelvis kostskoler, universitetsstuderende bor på universiteterne. De har færre vuggestuepladser og mange andre forskelle. Men uanset hvad: Man skal bruge viden om, hvordan og hvor vi mødes. Måske giver vi flere knus? Eller færre? (Det gør vi i hvert fald nu…)

Det er altså¨ganske indviklede modeller, men overordnet set drejer det sig om compartmentmodeller.

Den simple version, hvor befolkningen ikke underdeles efter alder, kan man læse mere om på dansk her. hvor kompartmentmodellen er udvidet med et Q for karantæne. Der er også mulighed for at “lege” med modellen. Men husk hele tiden, at det, der bruges af eksperterne, er mere kompliceret og i øvrigt skifter – man lærer mere om epidemien undervejs, kender antal syge bedre,…

Lige nu er AAU og DTU igang med en såkaldt agentbaseret model, hvor man simulerer enkeltindivider. På matematik her er det Torben Tvedebrink, Mikkel Meyer Andersen og Janus Valberg-Madsen, der er med i det projekt. Det kan være, de fortæller mere om det, men vi har jo egentlig ganske travlt med at holde universiteterne i luften med online undervisning.

AI – Aalborg Intelligence

Datarevolutionen er i gang og den digitale tidsalder har gjort data
mere tilgængelig end nogensinde før. Statistiske modeller og
datadrevne metoder er nødvendige for at kunne opnå viden og indsigt i de
stadigt voksende datamængder.
Det stiller krav til os alle. Begrebet “Data Science
Citizen” dækker bl.a. over evnen til at forholde sig kritisk til data
og konklusioner draget på baggrund af statistiske modeller.

I projektet “AI – Aalborg Intelligence”, som er støttet af Novo
Nordisk Fonden med 6 mio. kr., ønsker vi – med afsæt i og aftryk tilbage
til matematikfaget – at styrke gymnasieelevers kompetencer inden for
kunstig intelligens og de muligheder, som teknologien rummer. Torben
Tvedebrink, Mikkel Meyer Andersen og Lisbeth Fajstrup fra Institut for
Matematiske Fag, Aalborg Universitet, skal i projektet samarbejde med
de fem aalborgensiske stx-gymnasier (Hasseris, Katedralskolen,
Aalborghus, City og Nørresundby) om at udvikle et undervisningsforløb
som kombinerer AI og matematik, således at eleverne både får indsigt i
mulighederne med AI og styrker deres matematiske kompetencer.

Eleverne får mulighed for at se, hvor centrale matematiske begreber og
værktøjer er i udviklingen af avancerede AI-metoder og -algoritmer.
Projektet kommer til at styrke forståelsen af matematiske
funktioner og matematisk modellering.
Viden om hvorfor matematiske modeller er
nødvendige for at opnå indsigt i de komplekse, stigende datamængder,
styrkes sammen med evnen til at kunne navigere i strømmen af nyheder
baseret på sådanne modeller anvendt på data.

I “AI – Aalborg Intelligence” vil vi udvikle undervisningsressourcer i
form af noter, videoer og online interaktive apps sådan at
gymnasieeleverne selv kan lege og eksperimentere med AI-metoder. Ved
at “sætte vinduer i de sorte bokse” vil vi i de udviklede apps
tydeliggøre hvordan matematikken aktivt bruges i modelleringen af
data. Det vil være med til at gøre den abstrakte matematik mere
konkret og styrke motivationen for at tilegne sig de fornødne
matematiske kundskaber.

Ved afslutningen af det 4 årige projekt vil vi have udviklet et
undervisningsforløb, der kan inddrages i de eksisterende undervisningsplaner,
og som vil kunne udbredes til alle landets gymnasier.

Vi kan slet ikke vente med at komme i gang!

Torben, Mikkel og Lisbeth.

Kolde DNA hits

Rigspolitiet indstiller til at øge antal STR-markører for DNA-beviser til 16

Fornylig har danske medier bragt historien om at Rigspolitiet indstiller til at antal DNA-markører for DNA-beviser øges fra 10 STR-markører til 16 STR-markører. Forholdet mellem sandsynlighederne for sammenfald mellem to DNA-profiler falder med mere end en faktor 500,000,000.

Rigspolitiet: Opdatering af DNA profiler

Uddrag fra Rigspolitiets skrivelse:

Rigspolitiet har efter drøftelse med Rigsadvokaten den 21.10 2019 besluttet at skærpe retningslinjerne for opdatering af DNA-referenceprofiler, der er typebestemt efter 10 DNA-systemer. Denne typebestemmelse blev anvendt frem til 2012. Fra 2012 er der anvendt typebestemmelse efter 16 DNA-systemer.

DNA profiler

DNA betragtes med rette som et af de stærkeste beviser i opklaring af kriminalsager. I modsætning til fx fingeraftryk, giver forståelsen af den biologiske overlevering fra generation til generation mulighed for at modellere hyppighederne af en given DNA-profil, hvilket bruges for at kunne vurdere den bevismæssige vægt af et DNA-spor (Link til Advokatsamfundets tekst om DNA-beviser)

Når man taler om DNA-profiler til personidentifikation, som vil være tilfældet hvor man ønsker at undersøge om en given mistænkt kan knyttes til et gerningssted, benyttes oftest såkaldte short tandem repeat-markører der forkortes til STR-markører. STR-markører er veldefinerede steder på en persons DNA hvor der i populationen er observeret et tilstrækkelig stor variation individerne imellem. Dette gør at sandsynligheden for overlappende DNA-profiler er lille, hvilket igen gør at sammenfald mellem en mistænkts DNA profil og profilen fra et gerningssted er inkriminerende for den mistænkte.

DNA nedarves fra generation til generation ved at ét af morens kromosomer og ét af farens kromosomer giver anledning til barnets kromosompar (når vi ser bort fra rekombinations hændelser). Vi mennester har i alt 23 kromosompar, hvoraf de ene er kønskromosomerne (XX for kvinder og XY for mænd). På de resterende autosomale kromosomer kan man ved kun at betragte barnets DNA profil (også kaldet genotype) ikke afgøre hvilket kromosom som nedstammer fra moren og hvilket der nedstammer faren. En STR-markør kan antage et variabelt antal tilstande som kaldes alleler, hvor altså der arves én allel fra moren og én fra faren. Den typiske teknologi som benyttes til at analysere en DNA-profil angiver allelerne som heltal, fx (7,9) hvilket betyder at personen har arvet hhv allele 7 og 9 fra sine forældre. Tallele refererer til hvor mange gange en given DNA-sekvens er gentaget. Ofte er den gentagne sekvens af længde fire, fx ACAT hvor bogstaverne henviser til de fire mulige DNA-baser. Et allel 7 er derfor angivet ved ACATACATACATACATACATACATACAT. Vi kalder profiler med to forskellige alleler for heterozygote og homozygote hvis de nedarvede alleler fra forældrene er ens.

Indtil 2012 benyttede man i Danmark 10 STR-markører således at man havde 10 par af alleler. STR-markørerne er udvalgt til være statistisk uafhængige af hinanden. Ligeledes antager man ofte også uafhængig mellem allelerne inden for en given STR-markør. Det betyder at sandsynligheden for at observerer genotypen 2p_7p_9 hvor p_7 er allele frekvensen (hyppigheden) af allel 7 (tilsvarende for allele 9) og hvor faktoren på 2 skyldes at (7,9) kan fremkomme på to måder (idet vi ikke kan se hvilket allel der kommer fra hvilken forældre). Uafhængigheden mellem STR markørerne gør at vi kan gange bidragene fra de forskellige STR-markører sammen hvorved vi slutteligt opnår ganske små sandsynligheder for den specifikke DNA-profil, fx i størrelsesordenen 10^{-20}.

Usandsynlige hændelser?

Allerede i 2001 blev man i USA bekymret over at antageligt urelaterede personer havde nær sammenfald af DNA-profiler. Med nært sammenfald menes der at man enten matcher på begge alleler på en STR-markør eller matcher på ét af de to alleler. Har vi fx DNA-profilerne A = \{(7, 9), (11, 11), (13, 14)\} og B = \{(6, 8), (11, 12), (13, 14)\} vil de matche på én markør (den sidste hvor begge har alleler 13 og 14), delvist matche på den anden markør (overlapper på allel 11) og mismatch på den første markør (ingen alleler tilfælles). Weir (2004, 2007) beskrev hvorfor sådanne sammenfald ikke er overraskende selvom hyppighederne for DNA-profiler er ganske små. Han sammenlignende fænomenet med det såkaldte “fødselsdagsproblem”, som mange har stiftet bekendtskab med i deres introduktion til sandsynlighedsregning: Hvor mange elever skal man have i en klasse før sandsynsynligheden for mindst ét par har samme fødselsdag overstiger 50%?. Som det ses nedenfor (blå kurve) har man for 23 elever mere end 50% chance for to personer med samme fødselsdag. Det kan virke intuitivt forkert når nu året har 365 dage – men svaret er at vi ikke har angivet hvilken dato der er tale om. Fastholder vi datoen får vi den røde linje, hvilket er sandsynligheden at mindst èn anden har samme fødselsdag som fx dig. For den blå kurve laver vi alle parvise sammenligninger for eleverne, hvilket svarer til n(n-1)/2 sammenligninger som for n = 23 svarer til 253 sammenligninger.

Det samme gør sig gældende for DNA profiler i en database. Hvis vi undersøger sammenfaldet mellem hvert par af DNA-profiler bliver det lynhurtigt til rigtigt mange sammenligninger. I 2012 udgav vi en artikel hvor vi sammenlignede 51,517 danske DNA profiler som var genotypet på 10 STR-markører. For et par af DNA-profiler udledte Weir at for en enkelt markør er sandsynlighederne for forskellige grader af overlap givet ved:
P(\text{Mismatch}) = P_{0/0} = 1-4S_2+4S_3+2S_2^2 - 3S_4,
P(\text{Delvist match}) = P_{0/1} = 4(S_2 - S_3-S_2^2+S_4)
P(\text{Match}) = P_{1/0} = 2S_2^2 - S_4,
hvor S_k = \sum_{a = 1}^A p_a^k, er summen af allel frekvenser opløftet i k’te.

Vi fandt efterfølgende en effektiv måde at beregne det forventede antal DNA profiler med m markører med fuldt match og p markører med delvist match (partial match). Dette kan også omregnes til at DNA profilerne har 2m+p alleler tilfælles. For de 51,517 DNA-profiler fandt vi at teorien og praksis stemte glimrende overens (afgivelserne for høje antal sammenfaldende alleler kan forklares af øget usikkerhed på små sandsynligheder samt der kan korrigeres for sub-populations effekter – det er undladt her.)

Foruden rene DNA-profiler optræder DNA-profiler ofte i blandinger af to eller flere DNA-profiler, hvilket kaldes DNA-miksturer eller DNA-blandinger. Det betyder at man ikke entydigt kan fastslå bidragsyderne til en given blanding, hvilket øger antallet af mulige DNA-profiler som skal sammenlignes. Risikoen for sammenfald mellem DNA-profiler vokser altså når man også tager DNA-blandinger i betragtning.

Effekten af at øge antal markører fra 10 til 16 STR-markører

I Rigspolitiets skrivelse indstilles der til at øge antallet af STR-markører fra 10 STR-markører til 16 STR-markører. Nedenfor ses hvordan sandsynlighederne påvirkes af at øge antal STR-markører på ovenstående udtryk. Risikoen for nær sammenfald af DNA-profiler mindskes altså betragteligt når antallet af mulige fælles alleler vokser til 32 fra 20. Faktisk er forholdet mellem P_{10/0} og P_{16/0} givet ved 545,969,753 – altså en faktor på mere end 500 mio.

Referencer

B.S. Weir (2004) Matching and partially-matching DNA profiles, Journal of Forensic Science 49 (5): 1–6

B.S. Weir (2007) The rarity of DNA profiles, Annals of Applied Statistics 1 (2): 358–370.

T Tvedebrink, P.S. Eriksen, J.M. Curran, H.S. Mogensen, N. Morling (2012) Analysis of matches and partial-matches in a Danish STR data set, Forensic Science International: Genetics 6 (3): 378-392

Mystiske hændelser i højere dimensioner

Tidlige computerspil var “flade” – karakterne kunne hoppe over, men ikke “til siden”. Nu er de naturligvis rumlige – på den flade computerskærm. Man kan så gå udenom i stedet for at forsøge at hoppe over. Men man kan stadig være fanget i et låst lokale. Hvis man har en fjerde dimension kan man bruge den til at “gå udenom”. Det er der nogen, der har lavet spil med – her er et forsøg, som muligvis ikke er realiseret:

Matematikere og anvendere af matematik har ikke noget problem med at tale om eksempelvis data i dimensioner højere end 3. For en gymnasieelev kan det lyde meget besynderligt og mange spørger “Er den fjerde dimension så tiden?” Men for daglige brugere af  modeller for fysik, biologi, økonomi og helt generelt højere dimensionalt data, er det slet ikke noget, vi overvejer.

Et punkt (1,-3,7,0,534,14) ligger for os i dimension 6, det 6-dimensionale rum. Der er nemlig 6 koordinater.  Vi kalder dette rum for \mathbb{R}^6 (udtales “r seks” og ikke “r i sjette”) At vi så ikke lige kan tegne det ind i et koordinatsystem er en anden sag. Man kan sagtens regne med 6 koordinater uden at tegne. I det følgende tænker jeg ind imellem på sådan et punkt som en vektor – fra Origo til (1,-3,7,0,534,14) – og ind imellem som et punkt.

Nedenunder er a = (a_1,a_2,\ldots, a_6) og b= (b_1,b_2,\ldots, b_6)

Addition og multiplikation med en skalar (et tal):

\mathbf{a+b}= (a_1+b_1,a_2+b_2,\ldots, a_6+b_6)

k\mathbf{a}=(ka_1,ka_2,\ldots,ka_6) (her er k et reelt tal.)

Afstand, vinkler, indre produkt.

Der er flere afstandsbegreber (metrikker), men den historie får I en anden gang. Her går vi med den Euklidiske version, som er den, de fleste er vant til. Jeg skriver alt i dimension 6, men det er naturligvis samme historie i dimension 238:

Skalarprodukt (indre produkt): \mathbf{a\cdot b}= a_1b_1+a_2b_2+\cdots +a_6b_6 – gang koordinater sammen parvis og læg resultaterne sammen.

Længden |\mathbf{a}|=\sqrt{\mathbf{a\cdot a}}

Afstand: Afstand mellem punkter er længden af vektoren, der forbinder dem: |\mathbf{a-b}|=\sqrt{\mathbf{(a-b)\cdot (a-b)}}

Vinkler: Vinklen v mellem a og b kan findes udfra

\cos(v)=\frac{\mathbf{a\cdot b}}{|\mathbf{a}||\mathbf{b}|}

Kugler og kuber.

Cirkler i planen og kugleflader i rummet med centrum C og radius r, er begge karakteriseret ved, at det er du punkter, der har  afstand r til et punktet C. Det kan umiddelbart generaliseres:

Kuglefladen med centrum i C=(c_1,c_2,\ldots,c_6)  og radius r er de punkter, der opfylder |\mathbf{x-C}| =r Med centrum i Origo og radius 1 får vi

S^5=\{\mathbf{x}\in\mathbb{R}^6 |\mathbf{x}|=1\}, de punkter i \mathbb{R}^6, som har længde 1. Hvorfor S^5 og ikke S^6? Fordi sådan en kugleflade har en dimension mindre – ligesom man kan have planer i \mathbb{R}^3. Den historie må også vente… Kuglefladen i \mathbb{R}^3 er altså S^2 og S^1 er en cirkel.

Rektangler og kasser kan også fint generaliseres. De punkter, der opfylder 0\leq x_1 \leq 5, 2\leq x_2\leq 4, -3\leq x_3\leq 5, 1 \leq x_4\leq 2, 1 \leq x_5\leq 2,1 \leq x_6\leq 2 er en kasse, et hyperrektangel om man vil.

Der er mere om kugleflader (kugler) i blogindlægget om kuglepakninger

Den “tesseract”, der vises i filmen ovenfor, er en kube i R^4, en hyperkube. Altså punkter (x_1,x_2,x_3,x_4), hvor alle koordinater ligger mellem 0 og 1. Ydersiden af sådan en kube er der, hvor mindst en af koordinaterne er enten 0 eller 1. En sædvanlig kube har 6 sideflader: (0,x_2,x_3) (1,x_2,x_3) (x_1,0,x_3) (x_1,1,x_3) (x_1,x_2,0) (x_1,x_2,1).

En hyperkube har 8 kuber på sin “overflade”: (0,x_2,x_3,x_4) (1,x_2,x_3,x_4)(x_1,0,x_3,x_4) (x_1,1,x_3,x_4) (x_1,x_2,0,x_4) (x_1,x_2,1,x_4) (x_1,x_2,x_3,0) (x_1,x_2,x_3,1). De hænger sammen – ligesom sidefladerne på en sædvanlig kube. Man kan selvfølgelig ikke se det i vores sædvanlige dimension, men man kan lave en film, hvor man ser projektionen af en roterende hyperkube:

En sædvanlig kube, der roterer kan vores hjerne straks lave 3d, selvom den er på en 2d skærm:

File:Hexahedron.gif

 

Kurver og kontinuitet.

Det går jo fint med at generalisere det, vi kender fra plan og rum. Nu prøver vi med kurver. vi skal jo snyde i et spil og komme ud af et lukket rum ved at bruge en dimension mere.:

 

En parametriseret kurve i \mathbf{R}^n er en funktion r: \mathbf{R}\to\mathbf{R}^nr(t)=(r_1(t),r_2(t),\ldots,r_n(t), funktionen tager én koordinat ind og giver n koordinater ud. Man kan også sige, at den består af n koordinatfunktioner.

Kontinuitet: Gymnasieintuitionen om “ikke at løfte blyanten” har det svært, når blyanten skal tegne noget i højere dimensioner. I får definitionen at tygge på, men faktisk kan jeg nøjes med sige r: \mathbf{R}\to\mathbf{R}^nr(t)=(r_1(t),r_2(t),\ldots,r_n(t) er kontinuert, hvis alle koordinatfunktionerne er kontinuerte.

Her er definitionen: r: \mathbf{R}\to\mathbf{R}^nr(t)=(r_1(t),r_2(t),\ldots,r_n(t) er kontinuert i $t_0$, hvis der til ethvert \varepsilon >0 findes et \delta>0, så |t-t_0|< \delta  garanterer, at |r(t)-r(t_0)|<\varepsilon

Jeg illustrerer, hvordan man kommer ud af et kugleformet rum – I kan selv oversætte til noget med kasser:

Hvis en 2d-computerspilsfigur er spærret inde i cirklen S^1 og kun kan bevæge sig i planen, så kan den ikke komme ud (uden at krydse gennem cirklen): Lad os antage, jeg har bevæget mig ud langs kurven (r_1(t),r_2(t)) startende med t=0 sluttende med t=1. Det er en kontinuert kurve (ellers kan alt lade sig gøre i det computerspil 🙂 ).

Så er |(r_1(0),r_2(0)|<1, fordi jeg begynder indenfor cirklen. Og |(r_1(1),r_2(1)|>1, fordi jeg ender udenfor. Nu påstår jeg, at der er et tidspunkt t_0, hvor |r(t_0)|=1. Hvorfor? Jo, den sammensatte funktion g(t)= |r(t)| er kontinuert og g(0)<1, g(1)>1. Så siger mellemværdisætningen, at der findes t_0, hvor |r(t_0)|=1.

Hvis den 2d-computerspilsfigur får sig en ekstra dimension, så kan den komme ud – den hopper over kanten:

  • Lad os starte i (0,0), som nu udvides med en dimension – vi starter i (0,0,0).
  • Første del af kurven er r(t)=(0,0,t) for t mellem 0 og 1.
  • Næste del er r(t) = (t-1,0,1) for t mellem 1 og 3 – nu er vi kommet til punktet (2,0,1).
  • Sidste del er r(t)= (2,0,4-t) for t mellem 3 og 4. Nu er vi i punktet (2,0,0) og vi folder den tredie dimension sammen igen.

Jeg passerer naturligvis igen et sted, hvor |r(t)|=1, men det er i punktet (0.0.1), som jo ikke ligger på cirklen. Jeg hopper over.

Hvis jeg er lukket inde i S^2 kan jeg komme ud med samme trick: Jeg starter i (0,0,0). Folder min fjerde dimension ud og er nu i (0,0,0,0). Den kontinuerte kurve ud er

  • (0,0,0,t) for t mellem 0 og 1. Så er vi i (0,0,0,1)
  • (t-1,0,0,1) for t mellem 1 og 3. Så er vi i (2,0,0,1)
  • (2,0,0,4-t) for t mellem 3 og 4. Vi ender i (2,0,0,0) of folder den fjerede dimension ind igen.

Der er naturligvis et tidspunkt, hvor |r(t)|=1, nemlig i punktet (0,0,0,1), men det er ikke på S^2, som er punkter  (x,y,z,0). Jeg er “hoppet over” via den fjerde dimension.

Har man knuder på snørebåndene eller på sit strikkegarn, kan man også have nytte af en fjerde dimension. Der kan alle knuder løses op…

 

Løgnedetektorer og screening for sygdomme

I årets valgkamp ville Ekstrabladet have politikere til at underkaste sig en løgnedetektor. Det ville politikerne ikke – og det er der mange gode grunde til. En af dem er, at løgnedetektorer ikke virker. Det er ellers så smart i de amerikanske film, i talkshows og andre steder, at man kan finde “sandheden” med sådan en test. Men det er der ikke noget belæg for. (Nedenstående er en delvis genudsendelse fra Numb3rs-bloggen, men mon ikke, mange har glemt det indlæg…)

I bogen The Lie behind the Lie detector er en lang udredning om problemerne ved løgnedetektorer. Man kunne ellers forestille sig at man ret let kunne lave kontrollerede forsøg, eller undersøge noget af alt det data, man har fra allerede udførte løgnedetektioner, og det har man  også gjort, men det giver ikke gode resultater. Problemet er bl.a., at de fysiologiske reaktioner, man måler, også kan komme fra andet, end at man lyver. Og det er meget vanskeligt at skille ad. Og så er vi jo et stykke væk fra noget objektivt. Se også The polygraph and lie detection.
Et andet problem er, at forskellige personer fortolker et løgnedetektorudkrift forskelligt – i en Nature artikel fra 1984 tog man 207 udskrifter fra løgnedetektorer i en stribe senere opklarede sager og fik dem analyseret af 14 andre løgnedetektoreksperter. Det gav dom til 43 % af de uskyldige og frikendelse til 36 % af de skyldige…

Det er selvfølgelig værst, at man risikerer at dømme en uskyldig, men i andre lignende situationer kan både falske positive og falske negative være problematisk. Tester man for en sygdom kan det være lige problematisk at sende raske personer igennem en behandling med bivirkninger som at overse nogen, som er syge.

Hvordan ved man, om en test er god?

En test for en sygdom skal jo finde de syge, men helst ikke udpege for mange raske som værende syge. Lad os sige, man har en positiv test, hvis den viser, man er syg.

Der er et antal falsk positive FP (raske, som tester positivt)

Et antal falsk negative FN (syge med en negativ test)

Et antal sandt positive SP( De syge med positiv test)

Og et antal sandt negative SN (raske med negativ test)

Specificitet er \frac{SN}{(SN+FP)}, andelen af de raske, som tester negativt, altså sandsynligheden for at testen viser, man er rask, givet man er rask,  P(testrask|rask).
Sensitiviteten er \frac{SP}{(SP+FN)}, andelen af syge, der tester positivt P(testsyg|syg).

Vi er mere interesserede i “den anden vej”:

Den positivt prædiktive værdi er \frac{SP}{(SP+FP)}, andelen af positivt testede, som rent faktisk er syge, sandsynligheden for at være syg, når testen viser, man er det, P(syg|testsyg).
Eller, man kan se på den negativt prædiktive værdi \frac{SN}{(SN+FN)}, andelen af negativt testede, der rent faktisk er raske P(rask|testrask).
De prædiktive værdier afhænger af, hvor stor en andel af de testede, der er syge, prævalensen. Og ikke kun af sensitivitet og specificitet.

Eksempel: En test har sensitivitet 0,86 og specificitet 0,92

På et hospital henvises folk, som mistænkes for at have  sygdommen, til test. På et andet er det en test, der laves på alle. Prævalensen i det første tilfælde er altså højere end i det andet tilfælde.

Hospital 1 er 37 ud af 49 patienter syge. (Prævalensen er 37/49=0,76)

SP=0,86×37=32,
SN=(49-37)x0,92=11,
FP=12-11=1,
FN=37-32=5.

Specificitet SN/(SN+FP)=11/12=0,92

Sensitivitet SP/(SP+FN)=32/37=0,86

Positiv prædiktiv værdi SP/(SP+FP)=32/33=0,97

Negativ prædiktiv værdi SN/(SN+FN)=11/16=0,69

Hospital 2 er 37 ud af 157 syge. Prævalens 0,24

SP=32, SN=110, FP=10,  FN=5,

Specificitet SN/(SN+FP)=110/120=0,92

Sensitivitet SP/(SP+FN)=32/37=0,86

Positiv prædiktiv værdi SP/(SP+FP)=32/42=0,76

Negativ prædiktiv værdi SN/(SN+FN)=110/115=0,96

Hvis man tester en stor befolkningsgruppe med få syge, vil den negative prædiktive værdi være stor, i.e., hvis man tester negativt, er man med stor sandsynlighed rask. Men dem, der tester positivt vil i mange tilfælde være raske, i.e., sandsynligheden for at være syg givet testen viser syg, er lille. (Tallene er fra How sensitive is sensitivity, how specific is specificity, Phillips, Scott og Blasczcynski, American Journal of Roentgenology. Prøv selv at regne på, hvod der sker, hvis der er 37 syge ud af 12037. Så bliver positiv prædiktiv værdi 0.03 og negativ prædiktiv værdi 0,99. Der er altså rigtig mange blandt dem, der tester positivt, som alligevel er raske – her 97 ud af 100. Det er det, man skal overveje, når man laver store screeninger for sygdomme. Der er flere raske, som skal undersøges yderligere, måske behandles og i hvert fald bliver unødigt bekymrede.

På Understanding Uncertainty er der en fin animation af andre eksempler.

Løgnedetektorer igen.
Lad os nu antage, at de kan finde løgnere med en vis sandsynlighed (det kan de ikke, men alligevel…). Tester man alle, der ansøger om job i FBI, CIA,… og det gør man…vil dem, der ser ud til at lyve, stadig med ret stor sandsynlighed tale sandt. I.e., mange får et stempel som spion, uden at være det. Dem, der udses som ikke værende spioner, er det med ret stor sandsynlighed ikke, men det er mere fordi, der er rigtig mange, der ikke er spioner, end fordi man er god til at finde spioner. Der vil jo stadig være en enkelt spion der slipper ind nu og da.

Vi kan være glade for, at vi ikke bruger metoden til noget seriøst i Danmark og håbe på, det forbliver noget, der hører til pjattede TV-programmer. Så fans af Doctor Phil eller  andre populære brugere af løgnedetektorer bør tage det med et gran salt. Udover det helt oplagte, at sårbare mennesker ikke bør være underholdning. Men det er ikke matematik – bare almindelig ordentlighed.