Koronavirus – mallintamista GeoGebralla

[14.3.20 Katso uusi artikkeli Korona GeoGebra-kirjasta.
9.3.20 Viimeisin päivitys Korona – GeoGebra -sivulla https://www.geogebra.org/m/yw9yfa68 , jouduin luomaan uuden kopion, vanha meni rikki päivityksen yhteydessä.]

Tutkitaan koronaviruksen ajallista kehittymistä GeoGebran avulla. Käytän tässä linlog -menetelmää, jonka esittelin artikkelissani nimeltä Miksi kuvaajissa esitetään tietoa logaritmisella asteikolla? Tavoitteena on tuottaa GeoGebra-Materiaaleihin sivu tai ehkä GeoGebra-kirja liittyen aiheeseen.

Luodaan appletti kuolleisuuteen liittyen. Worldometers-sivustolla on taulukko, jossa näkyy päivittäinen kuolleisuus. Käsittääkseni kyseinen sivusto tuottaa luotettavasti tiedon ”virallisista” lähteistä.

Koska taulukossa viimeinen päivä on ylinnä, niin haluan kääntää taulukon arvot toisinpäi siten, että vanhin päiväys on ylhäällä. Toisaalta suora kopioiminen ja sijoittaminen ei toimi aivan täydellisesti, niin tässä välissä käytän apuna Google Sheets-taulukkolaskentoa. Tavoitteena on tuottaa GeoGebralla taulukko, jota on helppoa päivittää tulevaisuudessa, vaikkapa kerran viikossa.

Tässä tutkin pelkästään koko Maailman tilastoa, en keskity yksittäisiin valtioihin. Eri valtioihin liittyvä data löytyy sivustolta John Hopkins CSSE -sivulta. Aiheesta kiinnostuneen lukijan kannattaa tutustua tuohon!

GeoGebralla Google Sheetsin avustuksella

Kopioin sivulta https://www.worldometers.info/coronavirus/coronavirus-death-toll/ päivittäisen kuolleisuustaulukon Chrome-selaimella, loin uuden Google Sheets-taulukon ja sijoitin taulukon arvot B1 soluun. Lisäsin päivän järjestysnumeron vasempaan sarakkeeseen kirjoittamalla luvun 1 viimeiselle riville A-sarakkeessa ja 2 soluun toiseksi viimeisessä sarakkeessa. Valitsin nuo luvut ja vedin kahvasta ylöspäin. Lopulta järjestin koko taulukon A-sarakkeen mukaan. Muokkasin sarakkeiden otsikoita siten, että ne ovat solujensa sisällä samalla rivillä poistamalla rivinsiirtoja (muutoin GeoGebraan tulee ylimääräisiä rivejä). Kopioin taulukon Sheetsistä ja sijoitin GeoGebran taulukkolaskentaan.

Tässä artikkelissa käytän GeoGebra 6 -ohjelmaa, sillä tavoitteenani on tuottaa appletti, joka toimii verkkoympäristössä ja jota on helppo ylläpitää suoraan Internetin kautta. Samalla opin paremmin GeoGebra 6:n ominaisuuksia. Tosin näiden artikkeleiden kirjoittaminen on haastavampaa, sillä GeoGebra 6:ssa kopiointi on usein haastavaa.

Perinteisesti valitsisin alueen A1:A23 ja Cmd-näppäin pohjassa (Windowsissa Ctrl) C2:C23 ja loisin niistä pistelistan. Nyt haluan varautua ja haluan valita pisteitä myös tulevaisuutta varten. Niinpä käytän komentoa Solualue kirjoittamalla syöttökenttään

pv = Solualue(A2,A1000)
-> {16, 15, 24,….

ja

kuolleet = Solualue(C2,C1000)
-> {16, 15, 24, …

Taas opin uutta, taulukkolaskennan alueen saa suoraan listaksi kirjoittamalla alkusolu:loppusolu.

Kuva, joka sisältää kohteen näyttökuva

Kuvaus luotu automaattisesti

Pessimisti kun olen, niin varaudun vajaaseen kolmeen vuoteen tässä tarinassa. Toivottavasti näin ei käy. Kun tässä vaiheessa katsoo listaa pv, niin siinä näkyy luvut {1, 2, …, 35}. Kun lisään arvon 36 soluun A37, niin pv-lista muuttuu muutoksen mukaisesti {1, 2, …, 35, 36}. Näin voi tulevaisuudessa helposti lisätä lukuja taulukkoon siten, että ei tarvitse aloittaa joka kerta alusta, jos taulukko muuttuu.

Tässä vaiheessa kiinnostaa miltä kuolleisuus näyttää kuvaajana. Jotta kuvaajassa ei näkyisi kaikille pisteille nimiä, niin pitää vaihtaa asetuksista ”Nimeäminen pois”.Luodaan pistelista nimellä linlin (oletuksena nimeksi olisi tullut l1) komennolla

linlin = (pv, kuolleet)

-> {(1, 16, …

Kuva, joka sisältää kohteen näyttökuva

Kuvaus luotu automaattisesti

Eihän tässä näin pitänyt käydä. Kuvaaja näyttää, että Maan laajuinen kuolleisuus on vähentymässä. Tai sitten tuossa alkuperäisessä datassa on jotain vikaa. Tyyliin jokin iso valtio ei jaa tietoa tai tieto tulee viiveellä tai ….

Jos kuitenkin varaudutaan siihen, että jossain vaiheessa tapahtuu jotain pahempaa.

Tutkitaan, miltä kasvu näyttää, kun otetaan logaritmi kuolleitten määrästä ja luodaan pistelista piirtoalue2:lle. Se saadaan näkyville hampurilaisvalikon Näytä -> Piirtoalue 2 ruksilla.

Kuva, joka sisältää kohteen näyttökuva

Kuvaus luotu automaattisesti

Jos haluat, että kuvaaja syntyy Piirtoalueelle 2, niin klikkaa ensin siihen ja

linlog= (pv,lg(kuolleet))
-> {1, 1.2, (2, 1.18), …

Jos pisteet eivät mene oikealle piirtoalueelle, niin valitse linlog  hiiren oikealla painikkeella ja Lisäasetuksista Piirtoalue2.

Kuva, joka sisältää kohteen näyttökuva

Kuvaus luotu automaattisesti

Tähän tarinaan liittyvä GeoGebra-tiedosto löytyy osoitteesta https://www.geogebra.org/m/vns8jfeg

Tällä hetkellä tuo kuolleisuus ei näytä pahalta, palataan aiheeseen myöhemmin.

Linkit

Worldodometer Data https://www.worldometers.info/coronavirus/coronavirus-death-toll/

Data isommassa mittakaavassa https://gisanddata.maps.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6

GeoGebra-tiedosto, tulen päivittämään sitä noin viikoittain https://www.geogebra.org/m/vns8jfeg

Keskihajonta-sovellus GeoGebralla

Tehdään GeoGebralla pieni sovellus, jonka avulla voi havainnollistaa keskihajontaa. Sovelluksessa voi vaihtaa 20:n luvun arvoja ja se laskee jakauman keskiluvut sekä piirtää jakauman histogrammin.

GeoGebran Yhden muuttujan analyysi -työkalun avulla tällaisten jakaumien tutkiminen on helppoa. Siinä vain ei voi muuttaa lukujen arvoja reaaliaikaisesti. Käytän tätä omassa opetuksessani havainnollistamaan keskihajontaa MAB5 kurssilla.

taulukko

Avataan GeoGebra 5 ja valitaan Näytä-valikosta Taulukkolaskenta. Kirjoitetaan soluihin B2:B21 lukuja vaikkapa väliltä 1…10. Luodaan luvuista lista valitsemalla alue B2:B21 ja sen jälkeen klikataan Luo lista -työkalua. Avautuvassa ikkunassa muutetaan listan nimeksi luvut.

Soluun C2 lasketaan keskihajonta.

=stdevp(A2:A21)

Soluun C3 lasketaan otoskeskihajonta (pohdi itse miksi alla oleva kaava toimii).

=C2 sqrt(C5 / (C5 - 1))

Soluun lukujen lukumäärä.

=Pituus(luvut)

Soluihin C7-C9 lasketaan keskiluvut keskiarvo, moodi ja mediaani.

=keskar(luvut)
=Tyyppiarvo(luvut)
=Mediaani(luvut)

kuvaaja

Kuvaaja piirretään Histogrammi-komennolla. Sen ensimmäinen syöte on lista, joka kertoo histogrammin pylväinen reunojen kohdat ja toinen lista, jossa on tutkittavat luvut. Alla näkyvässä komennossa oleva Jono-komento tuottaa listan {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5}.

Histogrammi(Jono(0.5, 10.5, 1), luvut)

Tarinaan liittyvä appi löytyy GeoGebra-materiaaleista osoitteessa https://www.geogebra.org/m/uxn7tcfp

Lähiaikoina palaan tähän sovellukseen ja pohdiskelen, miten tuon kuvaajan skaalausta saa automaattisesti muutettua vai saako.

Ympyrädiagrammi LibreOfficella

Ohessa on LibreOffice taulukko. Siinä on GoogleFormsilla kerätystä datasta kopioitu erään oppilasryhmän oppilaiden silmien väri ja sukupuoli. GeoGebralla on hankala tuottaa ympyrädiagrammeja, niinpä tuotan sen LibreOfficella.

Lataa tiedosto https://drive.google.com/file/d/1-0Q7uiqu98JPCJ_jqJFK8tJ9Y6wyCIOQ/view?usp=sharing omalle koneellesi ja avaa se LibreOfficella.

Simppeli tapa

Tehdään diagrammi ensin mahdollisimman yksinkertaisesti, ilman kummempaa koodaamista.

Ensin pitää päätellä mitä luokkia silmien väri -muuttujassa on. Helpointa on vain katsoa taulukosta, että eri luokat ovat: sininen, ruskea, sinivihreä, vihreä sekä vihreä ja ruskea.

Kirjoitetaan luokat C-sarakkeen soluihin.

Toki nuo silmien värejä vastaavat lukumäärätkin saisi laskettua ihan käsinkin, mutta käytetään tässä LASKE.JOS-funktiota apuna.

Kirjoitetaan soluihin D2, …, D6 kaavat
=LASKE.JOS(A2:A28;”sininen”)

=LASKE.JOS(A2:A28;”vihreä ja ruskea”)

Diagrammi saadaan aikaiseksi valitsemalla alue C1:D6 ja tämän jälkeen Työkalupalkin Lisää kaavio tai Lisää-valikosta Kaavio.

Ohjattu kaavion luonti -ikkunassa valitaan Ympyrä ja sen jälkeen Seuraava.

Toisessa ja kolmannessa ikkunassa Seuraava.

Viimeisessä ikkunassa kirjoitetaan tarvittava tieto otsikoihin ja lopuksi Valmis.

Näin piirakka on valmis.

Monimutkaisempi menetelmä

Jos A-sarakkeen silmien värejä olisi ollut paljon, olisi luokkien päättely voinut olla hankalaa. Tehdään luokkien etsiminen ja frekvenssien laskeminen hieman monimutkaisemmin. Tällainen automatisointi toimii isommissakin taulukoissa.

Tuotetaan ensin silmien värit käyttämällä suodatusta eli filtteröintiä. Avaa alkuperäinen tiedosto silmä.ods. Valitse sarake A klikkaamalla sarakkeen tunnukseen ja Data-valikosta Oletussuodatin…

Oletussuodatin-ikkunassa valitse Arvo kohdassa Ei tyhjä ja klikkaa Asetukset-kolmioon. Klikkaa Alue sisältää sarakeotsikot, Karsi identtiset ja Kopioi tulokset kohteeseen: -ruutuihin ja valitse kohteeksi $Taulukko1.$C$1 (klikkaamalla taulukossa soluun C1).

Näin silmien värit suodattuvat C-sarakkeelle.

Frekvenssien laskemiseksi käytetään edellä esitettyä LASKE.JOS-funktiota, mutta käytetään apuna dollarimerkkiä kiinnittämään viittaukset soluihin siten, että voidaan käyttää apuna kahvaa kaavan monistamiseen. Tätä menetelmää kutsutaan yleensä soluviitteen lukitukseksi tai suoraksi eli absoluuttiseksi soluviittaukseksi.

Kirjoita soluun D2 kaava
=LASKE.JOS(A$2:A$28;C2)

Valitse solu D2 ja vedä kahvasta soluun D6 saakka. Näin dollarimerkki kiinnittää viittauksen riveille 2…28, samalla viittaus silmän väriin sarakkeella C muuttuu suhteellisesti, kun kaavaa kopioidaan kahvasta vetämällä.

Diagrammi syntyy samalla tavalla kuin edellä on esitetty.

Lisätään piirakkaan vielä prosenttiosuudet. Klikkaa ympyrädiagrammiin siten, että saat hiiren oikean painikkeen avulla valittua Lisää arvopisteiden otsikot.

Valitse samalla tavalla piirakka hiiren oikealla painikkeella ja Muotoile arvopisteiden otsikot…

Poista ruksi Näytä arvo lukuina -kohdassa ja lisää ruksi Näytä arvo prosenttiosuutena -ruutuun.

Nyt ympyrädiagrammi on valmis. Toki voit opiskella lisää miten muokata värejä tms.

Tee harjoituksen vuoksi ympyrädiagrammi sukupuolesta.