Malliajatuksia ja ajatusmalleja

Kevät etenee ja vesi lämpenee, mikä tarkoittaa sitä että smolttivaelluksen huippu lähenee. Tätä kirjoittaessa elämme tarkastelujakson (eli smolttivaelluksen oletetun keston) 27. päivää, eli olemme kohta puolimatkassa. Useampia malliajoja on tehty ja ennusteita saatu. Mallia on muunneltu, viritelty ja uudella datalla päivitelty, sitä mukaa kun sitä on tullut. Mielenkiintoista on nähdä tarkastelujakson lopussa, datan kerryttyä, mitkä mallit näyttäisivät toimivan parhaiten ja millaisia eroja tuloksissa on, ja toisaalta, miten ja millaisia loppupäätelmiä käytössä olevilla malleilla saadaan aikaiseksi niiden tuloksia yhdistämällä ja keskiarvoistamalla. Näistä, niin kuin myös monista muista asioista saamme toivottavasti oppia vielä paljon lisää kurssin aikana. Mutta tätä odotellessa minulla on tässä vaiheessa joitain mietteitä mallista, niin vähän yleisemmällä kuin yksityiskohtaisemmallakin tasolla, joita ajattelin seuraavaksi yrittää käsitellä.

Tähänastisissa maaleissamme (katso: Lisäpyydyksen huomioiminen ja lähtemisintensiteetin uudelleenmallintaminen) olemme käyttäneet muuttointesiteettiä, p, kuvaamaan yksittäisen smoltin todennäköisyyttä lähteä liikkeelle päivänä i. Malliversiosta riippuen muuttointesiteetin on oletettu noudattavan eri todennäköisyysjakaumia, jotka muodoiltaan epäsuorasti huomioisivat veden lämpötilan vaikutukset ‘muuttopäätökseen’ (approksimaatio lognormaalista jakaumasta sekä normaalijakauma) tai vaihtoehtoisesti olettaisivat muuttotodennäköisyyden vakioksi yli päivien (tasajakauma). Koska tiedämme muuton olevan veden lämpötilasta riippuva, voisi muuttointensiteettiä kuvata jollain veden lämmön suoraan huomioivalla funktiolla tai joitain lämpötilan kynnysarvoja käyttäen, esim. niin kuin aikaisemmassa T. Niemisen blogikirjoituksessa ehdotettiin: “Esimerkiksi voitaisiin olettaa, että muutto on tasaista (sitä kuvaa tasajakauma) tiettyyn päivään asti, jolloin jakauman muoto muuttuu ikään kuin kategorisena muuttointensiteetin tilan muutoksena”. Nykyisessä muodossa mallimme ei mielestäni mitenkään hyödynnä prioritietoamme lämpötilan vaikutuksesta vaellukseen eikä myöskään saatavissa olevaa päivittäistä lämpötiladataa.

Jos mallia yrittäisi viritellä vielä realistisemmaksi, voisi smolttien vaihtelevan vaellusmatkankin huomioida mallirakenteessa. Kun smolttivaelluksen käynnistymisen huipun tiedetään olevan noin 8 C asteessa, voisi vedenlämpötilan kehittymistä seurata eri jokiosuuksilla ja liittää mallirakenteeseen ottamalla huomioon etäisyydestä ja vaellusnopeudesta (joka taas määräytynee aktiivisen uimisen ja passiivisen virrannopeudesta riippuvan liikkumisen summasta) johtuva vaelluksen kesto. Päivänä i mereen vaeltavien smolttien määrä n olisi tuolloin riippuvainen jokiosuuskohtaisesta lähtöintensiteetistä p sekä etäisyydestä jokisuulle d. Tämä tekisi tietenkin mallista monimutkaisemman ja vaatisi tietoa eri jokiosuuksien (koskien) suhteellisesta smolttituotannosta. Jos tällaista tietoa ei kuitenkaan ole, voisi vaihtoehtoisesti lähteä oletuksesta, että joen eri kosket tuottavat tasaiseti smoltteja.

Smolttien pyydystämistä varten käytettävät Smolttiruuvi sekä Smolttirysä ovat myös tuottaneet paljon päänvaivaa. Smolttiruuvi on ollut käytössä tarkastelujakson alusta asti kun tass rysä laitettiin pyyntiin vasta 15. päivänä. Välineiden pyydystysteho päivittyy joka päivä kun aikaisemmin merkityt kalat joko päätyvät tai eivät päädy uudestaan jompaan kumpaan pyydykseen. Tähän mennessä joen itähaarassa (vapaa haara) olevan Smolttiruuvin aloituspriorina on käytetty mandariinikokeesta (katso: Mandariineja ja vaelluspoikasia) saatua pyydystystehoa q = 0,2, joka siis päivittäin muuttuu saaliiden päivittyessä. Smolttirysää koskevan pyydyskohtaisen aloituspriorin puuttuessa on nykyisessä mallissa käytetty samaa alkupyyntitehoa kuin ruuvissa, eli 0,2. Vaikkei tarkkaa tietoa rysästä olekaan, voisi tätä oletusta ehkä hieman tarkentaa asiaa vähän enemmän pähkäilemällä. Pyydyksen pyyntiteho tietyssä joessa riippuu joen koosta, pyydyksen paikasta joessa sekä pyydyksen teknisistä pyyntiominaisuuksista. Lähtökohtaisesti emme tiedä rysästä mitään, eli sen pyyntiteho voi teoriassa olla mikä tahansa 0 ja 1 välillä. Voisi kuitenkin kuvitella että rysä välineenä ohjaisi ehkä hieman tehokkaammin kaloja pyyntivälineeseen kuin ruuvi. Toisaalta emme taas tiedä miten rysä toimii eri virtauksilla tai kuinka nopeasti esimerkiksi rysän suu roskaantuu umpeen. Eli kun ei parempaa välinekohtaista tietoa ole, voisi lähteä olettamuksesta että rysä ja ruuvi toimivat välineinä samalla teholla. Mutta tiedämme kuitenkin sen, että rysä sijaitsee jokisaarekkeen edustalla keskella joen itä- ja länsihaaran haaraumaa. Tiedämme mandariinikokeesta myös sen, että joen itähaaraan päätyi virran vieminä 30 ja länsihaaraan 70 mandariinia. Intuitiivisesti voisi siis kuvitella että rysä pyytäisi sijaintinsa takia ruuvia hieman tehokkaammin. Jos välinekohtaisen pyyntitehon oletetaan olevan sama kuin ruuvin länsihaarakohtainen teho (20/30), riippumatta siitä missä kohtaa jokea pyydys on, voitaisiin arvioida rysän aloituspyyntiteho pyyntipaikasta ja välinekohtaisesta pyyntitehosta seuraavasti: q = 2/3 * (30/100+70/100)/2 = 1/3 = 0,333. Eri pyydysten pyyntitehoa ja kalojen liikkumista ajatellen voisi myös olla mielenkiintoista tarkastella mihin eri pyydyksissä merkityt kalat päätyvät uudestaan (mutta tätä tietoa meillä ei tällä hetkellä ole).

Viimeiseksi jatkan vielä hieman käsittelemällä pyyntitehoa yksityiskohtaisemmalla malliteknisellä tasolla. Tällä hetkellä käytössä oleva smolttimalli (katso: Lisäpyydyksen huomioiminen ja lähtemisintensiteetin uudelleenmallintaminen) käyttää niin sanotusti kiinteää q:ta, joka on päivittynyt tiettyä malliajon päivää vastaavaksi. Kokonaispyyntiteho q määräytyy pyydyskohtaisista q_f:stä ja q_s:stä seuraavanlaisesti:

q <- q_f + q_s – q_f * q_s

Vaihtoehtoisesti voisi ehkä myös q:n summaamisen sijaan laskea pyydyskohtaiset päivittäiset saalisestimaatit x_f[i]x_s[i], jotka sitten voidaan summata kokonaissaaliiksi. Pyydyskohtaiset saalisarviot antaisivat myös mielenkiintoista lisätietoa ruuvin ja rysän ominaisuuksista.

Alla käytässä oleva BUGS-koodi q:n määrittämistä varten (T. Nieminen)

#separate catchabilities for both catching methods

# a=number of recaptures

# b=number of marked smolts not recaptured on the next day

# q_s=catchability of the smolt screw

q_s~dbeta(alpha,beta)

alpha<-(2 + sum(a[1:m[2]]))

beta<-(8 + sum(b[1:m[2]]))

# q_f=catchability of the fyke, that has been operational from day 15

q_f~dbeta(alpha2,beta2)

alpha2<-(2+(sum(a2[15:m[2]])))

beta2<-(8+(sum(b[15:m[2]])))

Tämä rakenne toimii, mutta vaatii jonkin verran manuaalista datan päivittämistä a:n ja b:n suhteen. Kaikki merkityt kalat ovat ns. “failure”-merkintöjä, b, kunnes ovat uudestaan jääneet pyydykseen, a. Kala ei voi samaan aikaan olla sekä b että a. Tämä tarkoittaa sitä, että kun merkittyjä kaloja jää pyydykseen (a) pitää ne niin sanotusti vähentää pyydettävissä olevista merkityistä kaloista (b). Nykyisellä mallirakenteellä tämä vaatii käsityötä. Olen yrittänyt miettiä miten “kiinteän” q:n saisi muutettua päivittäiseksi pyyntitehoksi q[i], joka myös päivittyisi automaattisesti datasta. En kuitenkaan saanut koodia toimimaan eivätkä taidot ainakaan vielä riittäneet ongelman ratkaisemiseksi. Alla lopuksi kuitenkin koodinpätkä tästä (yhdelle pyyntivälineelle), jos vaikka joku tietää mitä tehdä tai saa siitä jonkun idean eteenpäin.

for(i in 1:d)

{

q[i]~dbeta(alpha[i],beta[i])

alpha[i]~dbin(z[i],y[i])

beta[i]~dbin(zz[i],y[i])

zz[i]<-1-z[i]

y[i]<-M[i]-R[i] # cumulative amount of still uncaught marked fish until day i

z[i]<-a[i]/(a[i]+b[i])

a[i]<-2+R[i] # mandarines in the sampler + cumulative recapture until day i

b[i]<-8+y[i] # mandariines elsewhere + marked fish not captured until day i

}

M[1]<-0

R[1]<-0

for(i in 2:d)

{

M[i]<-sum(m[1:i-1])  # cumulative amount of marked fish until day i

R[i]<-sum(r[1:i-1]) # cumulative amount of recaptured fish until day i

}

}

list(d=60) # x[]=catch, m[]=marked and released fish from the day before, r[]=recapture

x[] m[] r[]

0 0 0

0 0 0

0 0 0

1 1 0

2 2 0

2 2 0

0 0 0

0 0 0

0 0 0

1 0 0

1 0 0

1 3 0

0 0 0

2 2 0

1 1 0

0 1 0

0 0 0

0 0 0

1 3 0

3 5 0

NA NA NA

NA NA NA

 

Bayes-oppia kalojen kanssa

Tässä blogipostauksessa pohdin laskentaprojektiamme yleisesti, siihen liittyvää omaa oppimistani, sekä muutamaa projektin yksityiskohtaa, jotka tässä vaiheessa mietityttävät minua.

Olemme nyt puuhastelleet Vantaanjoen meritaimenkannan arvioinnin kanssa muutaman viikon, ja on selvää, että mielekkään projektin parissa työskentely tarjoaa loistavan tilaisuuden oppia. Olen todella iloinen siitä, että projektia suoritetaan suurilta osin ryhmätyönä ja siinä on mukana paljon eritaustaisia ihmisiä. Tämä tarjoaa jokaiselle hyvän mahdollisuuden oppia toisiltaan. Itselläni on tausta tilastotieteessä ja koen aina hyödylliseksi jos saan tilaisuuden selittää muille sellaisia teoreettisia peruskäsitteitä, jotka minulla pitäisi olla jo hyvin hallussa. Tämä on hyvä tapa varmistaa, että olen todella itse ymmärtänyt kyseiset asiat ja samalla tilaisuus syventää omaa ymmärrystäni niihin. Tieto on paljon hyödyllisempää, jos sen osaa selkeästi välittää eteenpäin, joten kaikki kokemus oman tiedon jakamisesta on minusta arvokasta.

Käytännöllisen projektin kanssa työskentely on myös tarjonnut mahdollisuuden peilata omaa osaamistaan ‘tosielämän tilanteiden’ valossa. Toisaalta keksiessään ratkaisuja projektin osaongelmiin voi tyytyväisenä huomata oppineensa jotain viimeisen kolmen vuoden aikana yliopistolla, mutta toisaalta taas joidenkin asioiden kanssa ymmärtää, että teorian soveltaminen käytäntöön ei ole helppo eikä itsestäänselvä harppaus. Välillä on vaikeaa tunnistaa miten käytännön ongelma muotoillaan matemaattisesti, vaikka ongelma tuntuisikin yksinkertaiselta. Käytännössä tutuilla ongelmilla on aina päällä uudenlaiset vaatteet.

 

eDefined

The definition of e on a T-shirt

 

Koen saaneeni paljon apua projektin biologisen ja tietoteknisen puolen asioihin muilta projektilaisilta. Käyttämämme BUGS -ohjelmisto oli minulle jokseenkin tuttu ennen projektia, mutta nyt koen, että muiden avulla olen saanut hyvän otteen ohjelmasta ja olen kiinnostunut oppimaan lisää mallidiagnostiikasta ja muista ohjelmiston tarjoamista ominaisuuksista. Erityisesti minua mietityttää esimerkiksi se, minkälaisia työkaluja on olemassa eri mallien vertailuun ja miten parhaiten vertailla erilaisten priorien vaikutusta posteriorijakaumiin. Tähän liittyen myös teoria priorijakaumien valinnasta kiinnostaa.

 

JeffreysPrior

Jeffreys prior

 

Yksi haastavimmista osista mallia on ollut kalojen muuttointensiteetin mallintaminen, jota kuvataan mallissa kalojen todennäköisyytenä lähteä liikkeellee tiettynä päivänä. Tämän mallinosan suunnittelu alkoi yksinkertaisesta diskreetistä tasajakaumapriorista, eteni siitä ’normaalin’ näköiseen pistetodennäköisyysfunktioon ja tästä edelleen ’log-normaaliin’ pistetodennäköisyysfunktioon. Pidimme alunperin jälkimmäistä ’parhaana’ ja ’realistisimpana’ priorivalintana, sillä se vaikutti sopivan yhteen vaelluksen dynamiikasta kertovat asiantuntijatiedon kanssa.

 

640px-Lognormal_distribution_PDF.svg

log-Normal distribution

 

Vaikutti kuitenkin siltä, ettei kyseinen priorivalinta saanut mallia käyttäytymään haluamallamme tavalla; lähtöintensiteetin huippu ajoittui ei-haluttuun kohtaan. Kyseinen priorivalinta vaikutti myös huomattavasti tuloksiin; ajattelen tämän johtuvan ainakin osittain siitä, että lähtöintensiteetin jakauma ei päivity mallissa kovinkaan nopeasti, sillä se kuvaa vaelluksen kulkua yli kaikkien vaelluspäivien ja alussa on tietysti dataa vain ensimmäisistä päivistä. Yritän hakea tästä epäonnistumisesta opetusta. Meillä ei ollut kovinkaan paljoa tietoa ilmiöstä ja silti valitsimme melko informatiivisen priorin. Lisäksi tiesimme, ettei data tulisi päivittämään tätä priorijakaumaa kovinkaan tehokkaasti. Ehkäpä voidaan yleisesti sanoa, että tällaisessa tilanteessa tulisi valita epäinformatiivisempi priori?

 

Mandariineja ja vaelluspoikasia

Olemme useaan eri otteeseen pohtineet ruuvin pyydystystehokkuuden määrittämisestä nousevia kysymyksiä. Alkuoletuksemme taimenruuvin pyydystystehokkuudelle perustui mandariinikokeeseen, jossa 100 mandariinia laskettiin joen yläjuoksulle. Mandariineista 20 päätyi ruuviin ja 80 ruuvin ulkopuolelle, joten määritimme taimenruuvin pyydystystehokkuudeksi 20 %. Päivitämme ruuvin pyydystystehokkuutta jatkuvasti uusien havaintojen pohjalta, ja koska yhtään merkittyä vaelluspoikasta ei ole saatu pyydettyä uudelleen, pyydystystehokkuutta koskeva oletus heikkenee jatkuvasti.

Aikani googlailtuani aikaisempia vaelluspoikaspyyntiraportteja minulle selvisi, että mandariinikoe on suoritettu aiemmin ainakin Ingarskilanjoella. Koe toistettiin kahdesti eri veden korkeuksilla ja ruuvin pyydystystehokkuudeksi saatiin 17-27 %. Samassa tutkimuksessa pyydystystehokkuuskoe suoritettiin myös merkityillä kaloilla vaellushuipun aikana, jolloin kahdeksasta merkitystä kalasta kaksi päätyi ruuviin (eli 25 %). Raportin mukaan n. 20 % pyydystystehokkuutta voidaan pitää luotettavana kokonaisarvion laskemiseen (lähdettä ei kerrottu). Vaikka pyydystystehokkuuskoe kaloilla toistettiin vain kerran, kalojen ja mandariinien uimista/päätymistä ruuviin pidettiin riittävän samanlaisena, ja kokonaismäärän laskemisessa käytettiin mandariinikokeesta saatua tehoa (17-27 %).

Vantaanjoen vaelluspoikaspyynnissä ensimmäisinä 19 päivän aikana kaloja merkittiin maksimissaan 3 kappaletta päivässä. Jos kaksi kalaa kymmenestä ui pyydykseen (mandariinikoe), kolmesta merkitystä kalasta todennäköisesti vain yksi (jos sekään) ui pyydykseen olettaen, että merkityt kalat ohittavat pyydyksen vuorokauden aikana eivätkä esimerkiksi jää uimaan yläjuoksulle. Jokainen merkattu vaelluspoikanen, joka ei ole uinut pyydykseen uudelleen, on heikentänyt arviotamme ruuvin pyydystystehokkuudesta. Varmastikin pyydystystehokkuuden päivittäminen tähän mennessä on tehty perustellusti, mutta intuitiivisesti arvion tarkentuminen perustuen muutamaan merkittyyn kalaan/päivä tuntuu epätarkalta ja sattumanvaraiselta. Toivoisinkin, että meillä olisi mahdollisuus tarkentaa oletustamme suuremmalla määrällä merkittyjä kaloja ja mahdollisesti toistaa myös mandariinikoe.

Kurssilaisen mietelmiä 4.5., henkilökohtainen blogipostaustehtävä

Tehtävänantomme kurssin kokoontumiskertojen välille oli melko löyhästi ohjeistettu henkilökohtainen blogipostaus koskien projektia ja siinä mahdollisesti askarruttavia tai kiinnostavia asioita, sekä omia tuntemuksia kurssilta.

 

_DSF4472-2

Vanhankaupunginkosken itähaaran kalatie 20.4.2015.

 

Kurssilla olevat opiskelijat ovat hyvin eri taustoista lähtöisin. Monella heistä on huomattavasti vahvempi tekninen osaaminen tilastotieteellisistä perusasioista, sekä mallintamisohjelmien käyttämisestä, kuin itselläni. Kurssin alussa tämä tuntui hankalalta, sillä etenemistahti oli reippaan puoleinen valtaosalle kurssilaisista perusasioiden ollessa jo entuudestaan selviä. Minä puolestani ympäristötieteelliseltä pohjalta ponnistaessani taistelin yrittäessäni yhdistää eri todennäköisyysjakaumia sekä parametreja konkreettisiin, ymmärrettäviin asioihin ja laahasin koko ajan askeleen perässä. Kurssipäivän lopuksi olo tuntui kaikkensa antaneelta ja tyhjältä, kun yritti viimeisillä pään voimilla miettiä, mitä jonkin mallissa esiintyvän todennäköisyysjakauman keskihajontaa kuvaava todennäköisyysjakauma nyt sitten oikeassa elämässä kuvastaa tai mistä lähteä purkamaan, jos tietokoneohjelma herjasi toimimattomasta mallista.

 

Tässä kohtaa nostan hattua kurssimme vetäjälle, joka päätti parin ensimmäisen kurssikerran jälkeen tarttua tilaisuuteen ja muuttaa kurssimme suoritustapaa käytännönläheisempään suuntaan huomattuaan Vantaanjoella alkavan meritaimenprojektin. Nyt kurssin asioita sovelletaan suoraan käytännön asioihin ja yhteydet mallien ja todellisten kosketeltavien asioiden välillä ovat huomattavasti helpompia hahmottaa. Tämä lisää myös merkittävästi motivaatiota ymmärtää, mitä malleissa ja niiden sisällä tapahtuu.

 

_DSF4691

Smolttirysän sivusaaliina pyytämä laskutaimen mitataan ja siltä otetaan suomunäyte.

 

Vieläkään en koe puhuvani edes ontuvaa ”Bayesia” ja yksinkertaisienkin BUGS -mallien yksin puhtaalta pöydältä kirjoittaminen (siten, että myös BUGS –ohjelma minua ymmärtäisi) tuntuu mahdottomalta tehtävältä. Nyt kuitenkin hahmotan valmiiden, tässä vaiheessa käyttämiemme verraten yksinkertaisen mallien eri osat ja mitä ne kuvastavat.  Kun isommat asiat teknisten yksityiskohtien ympäriltä hahmottuvat paremmin, on varmasti myös mallien kieltä lopulta helpompi opetella ja ymmärtää. Uskon, että paljon kerkeän vielä kurssin loppupuoliskon aikana oppimaan.

 

Jotta saisin postaukseen muutakin sisältöä, kuin omaan oppimisprosessiini liittyviä pohdiskeluita, esitän joitakin projektiin liittyviä mietelmiä. Minulla ollessa hyvin rajallisesti annettavaa vaelluspoikasten kokonaismäärää arvioivan mallimme teknisessä kehittämisessä, katson nyt mallista eteenpäin. Malli tulee laskemaan ja posteriorijakauma kuvastamaan käsitystämme kauden aikana Vantaanjoesta mereen vaeltavien taimensmolttien kokonaismäärästä (mallissa kuvastettuna kirjaimella N). Olisi luontevaa mallia, sekä tutkimusta eteenpäin kehittämällä saada myös tietoa tapetilla olevan länsihaaran voimalapadon aiheuttamasta tappiosta mereen asti lopulta pääsevien smolttien lukumäärässä. Tästä saataisiin paljon kaivattua tietoa päätöksenteon tueksi padon mahdollista purkamista koskien. Mikäli esimerkiksi padon aiheuttama lovi Vantaanjoen taimentuotantopotentiaaliin arvotetaan tarpeeksi korkealle muiden purkamisen tuomien etujen lisäksi verrattuna vaakakupin toisella puolella mm. padon sähköntuotanto-, sekä kulttuuriarvoihin on päätöksentekijöiden helpompaa toimia padon purkamisen puolesta.

 

_DSC9462

Vanhankaupunginkoskella kalassa oleva isokoskelo.

 

Kuten mallin kehittelystä kertovissa aiemmissa postauksissa on kerrottu, saatiin tutkimuksessa käytetyn pyydyksen tehoa alustavasti arvioitua mandariinikokeella, jossa ylävirrasta lasketuista 100 mandariinista 70 ajautui padolle ja 30 itähaaraan, joista edelleen 20 päätyi ruuviin. Smoltit uivat toki mandariineja ketterämmin, mutta voidaan olettaa mandariinien antavan suuntaa myös laskeutuvien kalojen jakautumisesta joen haaroihin. Tästä saamme alustavan oletuksen padolle päätyvistä smolteista. Uutta dataa tarvittaisiin padon aiheuttamasta kuolevuudesta, jotta arvioissa sen aiheuttamasta hävikistä mereen asti pääsevien smolttien määrässä päästäisiin eteenpäin.

 

Ensimmäisen mallin rakentaminen

Bayesin teoreema (myös Bayesin sääntö tai Bayesin laki) on ehdolliseen todennäköisyyteen liittyvä matemaattinen teoreema. Teoreeman voidaan tulkita kuvaavan käsitysten päivittämistä uuden todisteaineiston valossa, eli priorin päivittämistä datan ja mallin avulla posterior-tiedoksi. Tutkittaessa asiaa myöhemmin uudestaan: vanha posterior-tieto voidaan käyttää uutena priorina.

bayes teoria

 

Priori kuvaa alkukäsitystä tutkittavasta asiasta, eli meidän tapauksessamme arviota mereen vaeltavien smolttien määrästä. Saimme asiantuntija-arvion Vesi- ja Kalatutkimus Oy:ltä. Heidän arvion mukaan mereen vaeltaisi n. 5000 taimensmolttia. Käsityksemme populaatiosta on normaalistijakautunut. Arvioon sisältyi reilusti epävarmuutta ja siksi hajonta määräytyi 3000.

 

Alla priori koodin pätkänä.

model {

#P(N)
# N = ‘True number of leaving trouts this year’
N<-round(cN)
cN~dnorm(5000, prec_N)I(1,)
prec_N<-pow(sd_N, -2)
sd_N<-3000

 

Veden lämmetessä kahdeksaan asteeseen, smoltit aktivoituvat ja lähtevät vaeltamaan merta kohti. Veden lämpötila oli datan keräämisen alkuhetkellä (9.4.2015) 4,2 astetta. Oletamme lämpötilan nousevan muutamassa viikossa 8 asteeseen, joten vaelluksen huippu ajoittuisi datan keruun alkupuolelle. Tällä oletuksella päädyimme käyttämään lognormal jaukaumaa.

Alla pätkä mallin koodista

#P(p[i])
# p[i] = ‘Daily probability of leaving’.
# We can use any function p = f(i) that satisfies:
# 1) sum(p) = 1

# Here we use a scaled version of lognormal density
for(i in 1:m) {
pi[i] <- (1/i)*exp(- pow(log(i)-location, 2) / scale)
p[i] <- pi[i] / sum(pi[1:60])

# Number of leaving trouts at day i
n[i]~dbin(p[i],N)

# Priors for the distribution of p
myy_p~dnorm(25,tau_myy)I(0.01,)
tau_myy<-pow(7,-2)
sd_p~dnorm(10, tau_sd)I(0.01,)
tau_sd<-pow(5, -2)

scale <- log(1 + pow(sd_p/myy_p,2) )
location <- log(myy_p) -0.5*scale

 

Mereen vaeltavien smolttimäärien arvio perustuu Vesi- ja Kalatutkimus Oy:n tekemään merkitse ja takaisinpyynti metodiin. Merkityillä smolteilla saadaan myös päivitettyä pyydysten/pyydyksen tehoa. Pyydyksen tehoa arviotiin selvittämällä sille priori. Priori selvitettiin vapauttamalla 100 mandariinia joen ylävirtaan, joista 70 meni patouomaan, 20 jäi kalatieuomassa olevaan ruuviin, ja 10 meni kalatieuomassa ruuvin ohi (kts. kuva).

mandariinikoe

Mallissamme pyydys noudattaa betajaukaumaa, jossa pyydyksen teho saa todennäköisyysarvon nollan ja yhden väliltä. Mikäli merkitty kala pyydetään uudestaan merkitään se koodissa onnistumiseksi(alpha). Jos kala ei päädy pyydykseen uudestaan, merkitään se epäonnistumiseksi (beta). Onnistumiset päivittyvät sitä mukaan malliin, kun niitä saadaan pyydykseen. Mandariinikokeen perusteella saimme alphaksi 20 ja betaksi 80. Alpha ja beta voidaan kuvitella pseudohavaintoina. Koska prioriin sisältyy reilusti epävarmuutta, käytimme alphan ja betan määrinä suhteellisia lukuja jotka olivat alkutietoja pienempiä, eli alpha 2 ja beta 8. Tämä kuvastaa epävarmuutta siitä, että kalat käyttäytyisivät samalla tavalla kuin mandariinit.

Pyydyksen malli alla:

 

# q = the effectiveness of the sampling device following a bete
# distribution with parameters alpha (=success) and beta (=failure)

q~dbeta(alpha,beta)
alpha<-2 # mandarines in the sampler, “less precise” (but with the #same ratio)
beta<-28 # mandariines elsewhere “less precise” (but with the same #ratio)

Kalojen määrää pyydyksessä päädyimme kuvaamaan ensin binomijakaumalla, koska kala joko on tai ei ole pyydyksessä. Populaation koko voi kuitenkin tällöin saada hetkellisesti x:ää pienempiä arvoja, joten teknisenä ratkaisuna käytimmekin poissonjakaumaa, jolloin kyseinen onglema ei häiritse mallia. Tähän asiaan kaipaisimme vielä lisäselvitystä. Q liittyy kiinteästi x:ään, kuten mallista huomaamme.

 

Pyydykseen päätyvien kalojen malli:

# x[i] = the daily catch (num. of fish caught at day i)
lambda[i] <- q*n[i]
x[i]~dpois(lambda[i])

Kalojen määrä pyydyksessä per päivä, tiistaihin 28.4.2015 asti.

list(m=60)
x[]
0
0
0
1
2
2
0
0
0
1
1
1
0
2
1
0
0
0
1
3
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
NA
END

 

smolttitikussa