Sveriges befolkning: På randen till utdöende eller evig tillväxt? Modelleringar av Sveriges befolkningsdynamik med hjälp av Galton–Watsons för- greningsprocess och Lesliematriser i varierande miljöer Sweden’s Population: On the Brink of Extinction or Poised for Eternal Growth? Examensarbete för kandidatexamen i matematik vid Göteborgs universitet Kandidatarbete inom civilingenjörsutbildningen vid Chalmers N. Ekelund A. Ivarsson E. Sjöberg V. Trygg Institutionen för Matematiska vetenskaper CHALMERS TEKNISKA HÖGSKOLA GÖTEBORGS UNIVERSITET Göteborg, Sverige 2025 Sveriges befolkning: På randen till utdöende eller evig tillväxt? Modelleringar av Sveriges befolkningsdynamik med hjälp av Galton–Watsons för- greningsprocess och Lesliematriser i varierande miljöer Examensarbete för kandidatexamen i matematik inom Matematikprogrammet vid Göteborgs universitet Axel Ivarsson Kandidatarbete i matematik inom civilingenjörsprogrammet Maskinteknik vid Chalmers Erik Sjöberg Kandidatarbete i matematik inom civilingenjörsprogrammet Bioteknik vid Chalmers Valter Trygg Kandidatarbete i matematik inom civilingenjörsprogrammet Teknisk matematik vid Chalmers Nina Ekelund Handledare: Serik Sagitov Institutionen för Matematiska vetenskaper CHALMERS TEKNISKA HÖGSKOLA GÖTEBORGS UNIVERSITET Göteborg, Sverige 2025 Förord Diskussioner om att det föds färre barn i Sverige har alltmer förekommit i medierna. I ett me- dielandskap där uppmärksamhet är hårdvaluta kan det vara svårt att veta hur mycket som är överdrifter och vad som faktiskt stämmer. Kommer vi att dö ut? Detta arbete är ett försök att reda ut dessa frågor. Vi tror att objektiv kunskap är en tillgång och att den motverkar stigmati- sering och rädsla. Till Serik Sagitov, vars oförtröttliga tålamod aldrig svikit, även när det varit mycket välförtjänt. Vi tackar även Anthony Norman för all bra feedback och personalen på SCB för snabba mailsvar på både bra och dumma frågor. Populärvetenskaplig presentation När vi hör ordet matematik tänker många direkt på siffror, formler och ekvationer. För den som fördjupat sig i ämnet handlar det ofta snarare om symboler och abstrakta begrepp än om rena tal. I detta arbete används matematiken för att undersöka något djupt mänskligt. Håller Sveriges befolkning på att dö ut, och isåfall, när? I länder som Sydkorea har man sett hur barnafödandet varit lågt under en längre tid. Senast år 2024 rapporterades det att en kvinna i snitt förväntades föda 0.75 barn under sin livstid i Sydkorea. För att hålla befolkningsmängden stabil i ett land krävs strax över två barn för ett par. Det är för att att när föräldrarna dör, så har de ersatt sig själva med varsitt barn. Då motsvarande siffra för Sverige år 2024 var 1.43, är det inte svårt att dra slutsatsen att även den befolkningen kommer minska i storlek. Hur modellerar man då en befolkning? Det första man kan konstatera är att antalet barn som föds bara är beroende av antalet föräldrar som finns. Det spelar alltså ingen roll hur många barn som föddes för exempelvis fem generationer sedan. ”Det är ju uppenbart!”, tänker kanske du, men spara den tanken, för denna egenskap är hjälpsam. Denna ”glömskeegenskap”, att det nuvarande steget endast är beroende av steget precis före kallas inom statistiken för en Markovkedja. Det kan liknas vid ett domino där en bricka bara kan falla om den framför gör det, eller om du spelar poker så spelar det ingen roll hur många marker du hade för fem rundor sedan. Det är bara antalet marker som finns just nu som dikterar hur många du teoretiskt kan satsa i nästa runda. En annan sak man behöver ta hänsyn till är slumpen att en kvinna föder ett eller flera barn under sin livstid. Hur beräknar man sannolikheten att något av detta inträffar? Det lättaste sättet att visualisera detta är att tänka sig att det finns tre identiska barnvagnar. Du har ingen aning om hur många barn som finns i varje vagn tills du ser efter. Den första vagnen är tom, medan den andra vagnen har tre stycken barn i sig och den tredje har ett ensamt barn i sig. Antalet barn i varje vagn representerar ett slumpmässigt utfall och är då en stokastisk variabel. Figur 1. AI–genererad bild på barnvagnar med barn Detta mönster kan ge viktig information. Om barnvagnsexperimentet skulle upprepas med tusen- tals vagnar, kanske de flesta vagnarna skulle ha ett eller två barn, några ha noll barn, medan några har fyra eller fler. Hur sannolikt det är att en slumpmässigt vald vagn innehåller ett visst antal barn förklaras av sannolikhetsfördelningar. En sannolikhetsfördelning kan även bestämmas utefter hur gamla personer blir. Om vi dessutom räknar antalet barn i varje vagn av dessa tusen vagnar och adderar dessa, och delar på antalet vagnar får vi ett snitt på antal barn per vagn. Detta känner en del till som medelvärde, men vid ett stort antal försök kallas det för väntevärde. Helt plötsligt har vi ganska mycket information om hur barnen kan fördelas över vagnarna. Vi kan nu utnyttja en Markovkedja för att uppskatta storleken på befolkningen i nästa generation (antalet barn som föds), via en viss sannolikhetsfördelning. Det var bland annat detta som gjordes i arbetet. Den här typen av Markovkedja kallas för en Galton– Watson förgreningsprocess. I simule- ringarna som gjordes för att förutspå befolkningsstorleken i framtiden varierades även väntevärdet för antalet barn per kvinna på olika sätt. Resultaten var följande. Om nivån för väntevärdet var konstant under en längre tid så kommer Sveriges befolkning att dö ut inom 45 generationer. Detta låter inte så hoppfullt, men i verkligheten är väntevärdet för antal barn per kvinna inte konstant utan går upp och ned. Med hjälp av våra verktyg som byggts kunde ett varierande väntevärde användas för att se hur stora konsekvenserna blir gällande befolknings- storlek och åldersfördelning. I två av dessa scenarier, där väntevärdet minskar eller ligger kvar vid dagens nivå så kommer inte Sveriges befolkning att överleva på lång sikt. Man kunde även se hur åldersfördelningen i dessa två fallen börjar få en betydligt större andel av människor som är i äldre åldrar. De två andra fallen var för ett ökande väntevärde och ett vågliknande väntevärde som går upp och ner över en lång tid. I båda dessa fall överlever Sveriges befolkning på lång sikt, och i det fall där väntevärdet ökar så växer befolkningen väldigt mycket. I det vågliknande scenariot minskar dock befolkningen mycket, men får en liknande andel gamla och unga som det fallet där väntevärdet ökar. 0 100 200 300 400 500 Tid (År) 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 An ta l m än ni sk or 1e7 Populationsstorlek över tid Konstant fruktsamhetet Minskande fruktsamhetet Ökande fruktsamhetet Cyklisk fruktsamhetet 1000 500 0 500 1000 Antal individer 0 20 40 60 80 100 Befolkningspyramid efter 400 år Figur 2. Resultat av Leslie–modell: Populationsstorlek 4 olika scenarion, befolkningspyramid för icke– varierande fall. Sammandrag Nyligen kom ett pressmeddelande från Statiska Centralbyrån (SCB) att Sverige har den lägs- ta siffran på antal barn per kvinna i modern tid, 1.43. Därför är det relevant att spekulera kring hur Sveriges framtida befolkningsmängd kan se ut, både på kort och lång sikt. I detta arbete har begrepp undersökts som populationsstorlek, fruktsamhetstal, försörjningskvot och befolkningspyramid, och hur dessa ter sig över tid. Fyra scenarier analyserades: oförändrad fruktsamhet, fortsatt nedgång, övergång till ökning samt en cyklisk utveckling med både minskningar och ökningar. Modeller har byggts upp på grunder av matematiska koncept som Galton–Watson–processer och Leslie–matriser, som be- skrivs med begrepp som sannolikhetsgenererande funktioner och LF–fördelningen (linear frac- tional offspring distribution). Därifrån har populationer simulerats i programmeringsverktyget Python för att illustrera resultaten och till slut jämföra två huvudmodeller, Galton–Watson– modellen och Leslie–modellen. Resultatet är att i båda modellerna överlever befolkningen fallet med en strikt ökande frukt- samhet. För båda modellerna gäller att i resterande scenarion dör befolkningen efter lång tid ut. Framtiden är dock mer slumpmässig än vad någon av modellerna speglar, de olika fallen bör mer ses som scenarion värda att tänka på. Abstract Recently, Swedish statistics (SCB) reported that the lowest number of children per woman in modern times was reached, 1.43. This makes the discussion relevant of what the future pop- ulation of Sweden might look like, both in short and long term. In this paper, we discussed notions such as population size, fertility rate, dependency ratio and population pyramid, and how they behave over time. Four different scenarios were analyzed: unchanged fertility, continued decline, a transition to increasing fertility, and a cyclic scenario with both decline and increase. Models have been constructed on mathematical concepts like Galton–Watson–processes and Leslie–matrices, as is expressed in terms of probability generating functions and linear fractional (LF) offspring distributions. Based on this theory, we simulated populations in the programmingtool Python to illustrate the results and compare two main models, Galton–Watson model and Leslie model. The results are that in both the models the population survives in the case with strictly increasing fertility. For both models, after a long time the population is extinct in remaining scenarios. These scenarios should be viewed as illustrative rather than predictive, as real–world developments are likely to be more complex and stochastic. Förkortning/Symbol Förklaring PGF Probability Generating Function – sannolikhetsgenererande funktion LF Linear Fractional – typ av sannolikhetsfördelning µ Väntevärde för antal barn per kvinna Zn Populationsstorlek i generation n Xi Antal barn som individ i får (stokastisk variabel) E[X] Väntevärde för stokastisk variabel X fn(s) PGF för stokastisk variabel X i generation n Fn(s) PGF för stokastisk variabel Zn i generation n Q Sannolikheten att populationen dör ut ( lim n→∞ P (Zn = 0|Z0 = 1)) pk Sannolikheter att en individ får k barn An, Cn Hjälptermer i LF–fördelningens kompositionsformel nx Antal kvinnor i åldersklass x (i Leslie–matrisen) ρx Sannolikhet att överleva från ålder x till x+ 1 ϕx Antal barn födda per kvinna i åldersklass x L Leslie–matrisen λ1 Ledande egenvärde i Leslie–matrisen Ψ1 Stabil åldersfördelning (egenvektor till λ1) Tabell 1. Förkortningar och symboler som används i teoriavsnittet Bidragsrapport Nedan följer huvudförfattare för respektive del inom slutgiltiga rapporten. Dagbok har även förts löpande under arbetets gång som dokumenterar varje medlems arbete. Rubrik Huvudförfattare Populärvetenskaplig presentation Nina & Valter Sammanfattning Axel Abstract Axel 1 Inledning Alla 1.1 Bakgrund Axel 1.2 Syfte Nina 1.3 Avgränsningar Nina 2 Etiska aspekter Erik & Nina 3 Teori Nina 3.1 Galton–Watson förgreningsprocess Nina 3.2 Sannolikhetsgenererande funktioner Axel 3.3 LF–fördelningen Axel & Nina 3.4 Leslie–matrisen Valter 4 Simuleringar: 4.1 Simuleringar via Galton–Watson Valter 4.1.1 Parametrar för enkel Galton–Watson simulering Erik 4.1.2 Enkel Galton–Watson Valter 4.1.3 Galton–Watson i varierande miljöer med LF– fördelning Valter 4.2 Leslie–modell Erik 5 Diskussion Erik & Valter 5.1 Slutsatser Galton–Watson modeller Valter 5.2 Slutsatser Leslie–modellen Erik 5.3 Modellernas för– och nackdelar Erik 5.4 Effekter om resultatet blir verklighet Erik Användande av AI Valter Referenser Nina Simuleringskod* Erik & Valter * Kod har skrivits av alla deltagare i gruppen. Den slutgiltiga koden som använts har främst skrivits av Erik och Valter. Innehåll 1 Inledning 1 1.1 Bakgrund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Syfte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Avgränsningar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Etiska aspekter 4 3 Teori 5 3.1 Galton–Watsons förgreningsprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Sannolikhetsgenererande funktioner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2.1 PGF med fixpunktsekvationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.2 PGF med fixpunktsiteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3 LF–fördelningen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4 Leslie–matrisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4 Simuleringar 10 4.1 Simuleringar via Galton–Watson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.1.1 Parametrar för enkel Galton–Watson simulering . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.1.2 Enkel Galton–Watson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1.3 Galton–Watson i varierande miljöer med LF–fördelning . . . . . . . . . . . . . . . . . . . . . 13 4.2 Leslie–modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5 Diskussion 19 5.1 Slutsatser Galton–Watson modeller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.2 Slutsatser Leslie–modellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.3 Modellernas för– och nackdelar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.4 Effekter om resultaten blir verklighet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6 Användande av AI 23 A Appendix 1 – teori i B Appendix 2 – Simuleringar ii B.1 Galton–Watson i varierande miljöer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii B.2 Kurvor för varierande µ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv C Appendix 3 – källkod v 1 Inledning Antalet barn som föds dikterar världens populationsstorlek. Födelsetalen har fluktuerat historiskt, och har de se- naste århundradet minskat drastiskt i Sverige. Betyder detta att Sveriges befolkning är på väg att dö ut, eller är detta endast en tillfällig nedgång? Även om utrotning inom en snar framtid kanske kan upplevas osannolikt, kan låga födelsetal orsaka en snedvridning i åldersfördelningen. Detta eftersom en mindre andel av befolkningen är i arbetsför ålder, vilka måste försörja resterande. Denna rapport ämnar att gräva djupare i ämnet, för att därifrån kunna måla upp olika scenarion för Sveriges framti- da befolkning. I rapporten redogörs även för begrepp som fruktsamhetstal, försörjningskvot och befolkningspyramid. Modelleringar och prognoser för Sveriges befolkning har gjorts med hjälp av programmeringsverktyg som Python, R samt Matlab. I en modell har statistik från SCB använts för att modellera befolkningsstorleken och åldersfördel- ningen över tid. I en annan har ett mer teoretiskt tillvägagångssätt använts för att påvisa mer avancerade statistiska egenskaper hos en Galton–Watson process. Båda modellerna behandlar fyra olika scenarier för barnafödande: ett ökande, ett minskande, ett cykliskt och ett konstant för att ge olika prediktioner på befolkningsmängden, åldersför- delningen samt sannolikhet för utdöende. 1.1 Bakgrund Enligt ett pressmeddelande från Statistiska centralbyrån (SCB) har Sverige under år 2024 uppnått ett historiskt lågt barnafödande, samtidigt som befolkningsökningen är den lägsta på 22 år [1]. Det genomsnittliga antalet födda barn per kvinna har sjunkit till 1.43, vilket är den lägsta nivån som någonsin uppmätts i landet. Eftersom endast kvinnor föder barn innebär detta att det i genomsnitt föds 0.715 döttrar per kvinna. Denna siffra används som grund i samtliga beräkningar i rapporten. SCB rapporterar vidare att barnafödandet fortsatte att minska i början av 2025, baserat på befolkningsstatistiken från föregående år. Trenden bedöms vara fortsatt nedåtgående, där SCB lyfter det genomsnittliga antalet födda barn per kvinna – ett mått som inom demografin benämns som summerad fruktsamhet [2]. Detta mått beräknas genom att analysera hur många barn som föds i relation till antalet kvinnor i fertil ålder under ett visst år. Historisk data från SCB över fruktsamhet i Sverige finns tillgänglig från år 1911 till 2024, och visualiseras i figur 3. Figur 3. Antal döttrar födda per kvinna år 1911–2024 med data från SCB Emellertid är sjunkande summerad fruktsamhet något som sker på många håll i världen. Det mest extrema fallet är Sydkorea med så lågt som 0.75. Fler länder är Singapore med 1.0, eller närmare länder som Spanien och Italien med 1.2 [3]. Samtidigt lever människor även längre i dagens samhälle än förr. Enligt Karolinska Institutet har medellivslängden i Sverige under de senaste 250 åren ökat från 40 till 80 år, där chansen för att leva till sin 100 – årsdag har mång- 1 faldigats. Något som är värt att påpeka är att medellivslängden är ett mått på medelvärdet av åldern då personer dör. Detta gör således att medellivslängden ökar om det föds färre barn eftersom det då även dör färre barn i yngre ålder. Inte nödvändigtvis att personer dör äldre. I Sverige har ökningen av medellivslängden främst berott på att personer dör äldre men även att infektionssjukdomar hos barn kraftigt minskat[4]. Åldersfördelningen i Sverige idag visas genom en ålderspyramid i figur 4. 80000 60000 40000 20000 0 20000 40000 60000 80000 0 20 40 60 80 100 Ål de r ( År ) Befolkningspyramid, 2024 Figur 4. Folkmängd efter ålder år 2024 Färre människor föds, och människor lever dessutom längre. Dessa två fenomen tillsammans kan skapa problem i ett samhälle. En effekt av detta blir att det finns en större andel människor i pensionsålder som måste försörjas av de arbetande. Förhållandet mellan personer i arbetsför ålder (20–65 år) och den beroende populationen, barn och ungdomar (0–20 år) tillsammans med pensionärer (> 65 år) kallas för försörjningskvoten. År 2024 var försörjningskvoten i Sverige 77.1 vilket betyder att för varje 100 människor i arbetsför ålder finns cirka 77 personer som är beroende av dem [5]. En nödvändig anmärkning är emellertid att SCB och Världshälsoorganisationen, WHO, skiljer sig åt i sin definition där WHO beräknar arbetsför ålder från och med 16 år istället för från och med 21 år [6]. En annan anmärkning är att detta mått kan bli missvisande om det exempelvis är hög arbetslöshet eller om åldersspannet inte stämmer överens med vilka som arbetar. Figur 5. Försörjningskvoten år 2000–2024 2 1.2 Syfte Syftet med detta arbete var att åstadkomma prediktioner över hur Sveriges befolkningsstorlek och åldersfördelning kan se ut baserat på olika implementationer av Galton–Watsons förgreningsprocess i både konstanta och varierande miljöer. Dessa strävar efter att svara på frågan om, och med vilken sannolikhet, kommer Sveriges befolkning att dö ut. En kompletterande modell baserad på Leslie-matriser används även med syftet att synliggöra resultaten för simuleringar av åldrande, döende samt beräkningar av försörjningskvot. Detta mått användes även för att göra simuleringsresultaten mer tillgängliga för allmänheten. 1.3 Avgränsningar Eftersom detta arbete var tidsbegränsat är det relevant med avgränsningar kring ämnet. Då det finns offentlig tillför- litlig statistik för Sveriges befolkning på Statistiska Centralbyrån, SCB, gjordes modelleringarna på enbart Sveriges befolkning. I arbetet undersöktes några olika teoretiska scenarier för hur barnafödandet kan förändras och således hur befolkningen förändras. Fokus har inte legat på att försöka förutspå summerade fruktsamheten i framtiden, utan att ge möjliga förslag på hur befolkningsmängd och ålderssammansättning kan se ut. I Galton–Watson modellens beräkningar användes endast kvinnor, och således när det beräknades antalet barn per kvinna var det bara döttrar som betraktades. Detta eftersom bara kvinnor har förmågan att föda barn och att i Galton–Watsons förgreningsprocess antas alla individer i populationen ha den förmågan. Därav fanns det inte heller ett krav på att det skulle finnas en spårbar pappa till barnen någon av modellerna. Parbildning hade gjort modelleringarna svårare rent tekniskt utan att nödvändigtvis ge mer relevant information. I den del där den manliga befolkningen beräknades utifrån statistik från SCB, gjordes det i en separat Lesliematris där de enbart åldrades och dog. Fertilitet hos olika individer kopplades inte heller till socioekonomiska eller sociala faktorer utan antas vara samma över hela befolkningen. In– och utvandring betraktades inte heller i modellen. När den summerade fruktsamheten varierades gjordes det antingen cykliskt eller med en monotont avtagande eller tilltagande rotfunktion. I verkligheten är fluktuationerna för den summerade fruktsamheten mer slumpartade. Al- la dessa avgränsningar gjordes i syfte att reducera komplexiteten av problemet och göra det möjligt att dra slutsatser. En annan viktig avgränsning att nämna i modellen med Leslie–matrisen var att sannolikhetsfördelningen för döendet efter 95 års ålder var geometrisk och varierade inte över tid. Detta är givetvis en stor förenkling av verkligheten och gjordes för att ackommodera den tillgängliga datan från SCB (dödstal för åldern 95+ finns inte). Det finns även forskning som stödjer att efter åldern 110 är överlevnadschansen konstant och årligen drygt 50%. Det bedöms även osannolikt under de närmsta 25 åren att kunna leva längre än 128. Denna ålder sattes som den maximala åldern för modellen [7]. 3 2 Etiska aspekter Diskussioner om låga födelsetal, dess orsaker och möjliga lösningar har blivit vanligt förekommande i samhällsde- batten. Eftersom ämnet är ett väldigt personligt beslut är det viktigt att beakta de etiska aspekterna av forskning kring ämnet. Exempelvis kan prediktioner om framtida befolkningssammansättning användas som skäl för politiska åtgärder som begränsar människors bestämmanderätt över sina egna liv[8]. Risken finns även för stigmatisering av frivillig barnlöshet, så kallad barnfrihet givet en förställning att alla kvinnor både bör ha, och bör vilja ha barn [9]. Det kan även finnas en risk för skuldbeläggning av kvinnor och deras val eftersom mätetalet fruktsamhetstal mäter antalet barn per kvinna [10]. Detta arbete föreslår inga lösningar utan lägger stor vikt vid att förhålla sig neutralt till dessa frågor. Studien behandlar objektivt fenomen såsom befolkningsminskning och förändringar i åldersstrukturen, utan att nödvän- digtvis beskriva dem som problem. Särskilt tar studien avstånd från tolkningar som rättfärdigar inskränkningar av individens frihet. 4 3 Teori En stor del av detta arbete utgår från en matematisk modell kallad Galton–Watson–process, som har sitt ursprung i 1800–talets England. Den viktorianska högadeln oroade sig för att de anrika aristokraternas efternamn riskerade att utrotas och gav därmed matematikern Francis Galton i uppdrag att undersöka detta, vars arbete senare kom- pletterades av en annan matematiker, Henry Watson[11]. I detta avsnitt förekommer en del akronymer och tecken, vilka presenteras löpande. 3.1 Galton–Watsons förgreningsprocess Definition 3.1 (Galton–Watson–process). En Galton–Watson–process är en process (Zn)n≥0 där Zn är befolk- ningsstorleken för generation n, vars nästa generation är Zn+1 = ∑Zn i=1 Xn,i, där Xi,n är en oberoende och identiskt fördelad slumpvariabel med värden i Z+, som representerar antal barn från individ i, i generation n. Ofta antas också Z0 = 1. I fallet av konstant µ i tid betecknas slumpvariabeln för individ i, Xi. Eftersom po- pulationsstorleken för generation n + 1, Zn+1 endast beror på Zn är detta en Markovkedja. Givet E[Xi] = µ, erhålls E[Zn+1 | Zn] = Zn∑ i=1 E[Xi] = µZn, vilket ger den rekursiva relationen E[Zn] = µnZ0. (1) Beroende på värdet av µ klassificeras processen som: µ < 1 (subkritisk) ⇒ E[Zn] → 0, µ = 1 (kritisk) ⇒ E[Zn] = Z0, µ > 1 (superkritisk) ⇒ E[Zn] → ∞. Denna modell förenklar verkligheten, särskilt genom antagandet om konstant µ över tid, vilket ofta inte håller för mänskliga populationer [12]. 3.2 Sannolikhetsgenererande funktioner Ett viktigt verktyg när det kommer till att analysera egenskaper hos slumpvariabler och stokastiska processer är den sannolikhetsgenererande funktionen (PGF ). Definition 3.2 (Sannolikhetsgenererande funktion, PGF ). Givet en slumpvariabel X definieras PGF som f(s) = E[sX ] = ∞∑ k=0 skP (X = k), där 0 ≤ s ≤ 1. (2) Eftersom serien konvergerar likformigt är funktionen deriverbar med avseende på s. Enligt resultat i appendix gäller f ′(1) = E[X], A.1. PGF kan användas för att härleda sannolikhetsfördelningen för både Xi,n och Zn. För Xi,n blir PGF fn(s) = E[sXi,n ] och för Zi,n blir PGF Fn(s) = E[sZn ]. Enligt resultaten A.1 och A.2 i appendix, är PGF för Zn en komposition av PGF för Xi,n, det vill säga Fn+1 = Fn(fn+1(s)) och Fn(s) = f1 ◦ . . . ◦ fn(s). (3) 5 3.2.1 PGF med fixpunktsekvationen Definition 3.3. Sannolikheten för att en population ska dö ut definieras som Q := lim n→∞ P (Zn = 0|Z0 = 1). Gränsvärdet existerar av egenskaper hos monotona följder i [0, 1]. Antag återigen att miljön inte varierar och det är ett förenklat fall där en kvinna föder 0, 1, eller 2 döttrar. Q går att uttrycka utifrån generation 2 med sannolikheterna P (X1 = 0 ∩ utdöende) + P (X1 = 1 ∩ utdöende) + P (X1 = 2 ∩ utdöende)) = (4) p0 · 1 + p1 ·Q+ p2 ·Q2 = p0 + p1Q+ p2Q 2 =⇒ Q = p0 + p1Q+ p2Q 2 =⇒ Q = − p1 − 1 2p2 ± √ (p1 − 1)2 − 4p0p2 2p2 . Det finns alltid en trivial lösning Q1 = 1, den andra lösningen, Q2, är den som är av intresse. Sannolikheten för utdöende ges av min(Q1, Q2), eftersom sannolikhet håller sig inom intervallet [0, 1]. Ekvationen kan även uttryckas med hjälp av PGF för X; f(Q) = p0 + p1Q + p2Q2 = Q, (Q ∈ [0, 1]), denna kallas fixpunktsekvationen och är alltså ett samband mellan PGF till X och Q. Med hjälp av denna andragradsekvation kan Q räknas ut för att få ut sannolikheten för utdöende av population i specialfallet. Låt motsvarande sannolikheter vara vektorn p = (p0, p1, p2). Enligt ovan är vektorn nödvändig för att räkna ut Q, men p kan också härledas utifrån känt väntevärde µ och varians σ2 för populationen. Detta görs genom ett ekvationssystem där p0 + p1 + p2 = 1 sannolikheterna summerar till 1, p1 + 2p2 = µ definitionen av väntevärde, p1 + 4p2 = µ2 + σ2 uttryck för E[X2]. (5) I en modellering där X kan ge upphov till 3 eller fler avkommor kan ekvationssystemet ej lösas på samma sätt. Det går dock att lösa ekvation f(Q) = Q för fler än 2 möjliga avkommor genom antagande av annan typ av sannolik- hetsfördelning för X, se sektion 3.3. 3.2.2 PGF med fixpunktsiteration Fixpunktsekvationen är något som också kan göras numeriskt, vilket illustreras i figur 6. De två linjerna f(s) och s är representationer för ekvationen f(Q) = p0 + p1Q+ p2Q2 = Q. Ekvationen har alltid en trivial lösning i Q1 = 1. Det intressanta är om det finns en annan lösning Q2 ∈ [0, 1). Om man börjar med f(0) och upprepat applicerar f, kommer värdet att konvergera mot en lösning. 6 Figur 6. Illustration för fixpunktsekvationen genom grafisk iteration. Att iterationen konvergerar mot Q är ett uttryck för att Q är en fixpunkt till f . För intuition, observera att f(0) = p0 betyder att om vi börjar med en individ, representerar f(0) sannolikheten att populationen dör ut direkt. Vidare är f(f(0)) = p0 + p1p0 + p2p20, vilket representerar sannolikheten att populationen dör ut vid generation 2. Genom upprepad sammansättning av f närmar sig funktionsvärdet Q, och vi kan se antal sammansättningar av f som antalet generationer som betraktas. På liknande sätt funkar det i modeller med tre eller fler möjliga avkommor per individ. 3.3 LF–fördelningen En fördelning som är grundläggande i detta arbete är LF–fördelningen som kommer från ”linear fractional offspring distribution”. LF–fördelningen är ett användbart verktyg för att analysera Galton–Watson–processer i varierande miljöer. Fördelningen liknar den geometriska, men är definierad så att sannolikheten är förskjuten så att k = 0 motsvarar första möjliga utfall. För en intuition av fördelningen, tänk att du har två mynt. Du kastar tills du får klave, och du räknar misslyckade försök tills att det händer. Du använder bara mynt 1 på första kastet, därefter mynt 2. Det är inte säkert att det är lika stor chans att få krona som klave i något av dem, och du antar därmed att sannolikheten för att få krona med mynt 1 är 1 a+c , samt att sannolikheten att få krona med mynt 2 är a a+c vilket medför att klave nås med sannolikhet c a+c . Detta antagande fungerar eftersom vi har två frihetsgrader. Genom återupprepade försök speglas följande definition. Definition 3.4 (LF–fördelningen). Låt k vara en diskret variabel som representerar antalet barn en individ kan få. En stokastisk variabel X är LF–fördelad X ∼ LF (a, c) om P (X = 0) = 1− a a+ c , P (X = k) = ck−1a (a+ c)k+1 , k ≥ 1 där 0 < a och 0 < c samt att c är nedre begränsad av 1− a ≤ c om a < 1. 7 PGF för antalet barn i generation n, kan för en LF–fördelning representeras på formen 1 1− fn(s) = cn + an 1− s (6) eftersom detta delar upp påverkan av utrotning (eller överlevnad) från övriga delar. Här blir termen an 1−s kopplad till den geometriska summan, och speglar den del av populationen som växer geometriskt i generation n, medan cn beskriver den del av sannolikhetsmassan som inte växer geometriskt, vilket kan tolkas som den del av sannolikhets- massan som motsvarar utdöende. Användbara termer är A0 = 1, An = ∏n i=1 an, Cn = ∑n i=1 Ai−1cn. Dessa termer uttrycker sannolikhetsmassan för Zn i LF genom 1 1− Fn(s) = Cn + An 1− s , som också bevisas i appendix A.3. Detta samband är både hjälpsam för intuition i LF men används också i kommande resultat. Från Lemma 1a. i artikeln ”Galton–Watson Theta–Processes in a Varying Environment” utnyttjar vi givet att Z0 = 1, att 0 < An < 1, Cn > 0, Cn ≥ 1−An, Fn(1) = 1, F ′ n(1) = A−1 n , n ≥ 1. Vi utnyttjar även att E(Zn) = A−1 n , P (Zn > 0) = (An + Cn) −1 samt att E(Zn|Zn > 0) = ( 1 + Cn An ) . Anmärkning. LF–fördelningen i detta arbete är ett specialfall av Galton–Watson–Theta processen, där θ = r = 1. Givet att Cn är ändlig för alla n, så klassificeras processen som • superkritisk om An → 0, • subkritiskt om An → ∞ [13]. Dessa resultat ligger till grunden för sektion 4.1.3. 3.4 Leslie–matrisen Definition 3.5 (Leslie–matris). En Leslie–matris är en kvadratisk matris som beskriver hur populationer utvecklas utifrån två parametrar • ϕx, genomsnittligt antal födda barn per kvinna i åldersklass x. • ρx, andelen kvinnor som överlever från ålder x till x+ 1 Låt w ∈ Z+ vara maxålder, då blir Leslie–matrisen ϕ0 ϕ1 ϕ2 . . . ϕw−1 ϕw ρ0 0 0 . . . 0 0 0 ρ1 0 . . . 0 0 0 0 ρ2 . . . ... ... ... ... ... . . . 0 0 0 0 0 . . . ρw−1 0  . Med hjälp av Leslie–matrisen L och populationsvektorn η(t), som anger antalet kvinnor i varje åldersklass vid tidpunkt t, kan antalet människor i nästa generation beräknas genom 8 η(t+ 1) = Lη(t) =  ϕ0 ϕ1 ϕ2 . . . ϕw−1 ϕw ρ0 0 0 . . . 0 0 0 ρ1 0 . . . 0 0 0 0 ρ2 . . . ... ... ... ... ... . . . 0 0 0 0 0 . . . ρw−1 0   η0(t) η1(t) η2(t) ... ηw−1(t) ηw(t)  , och därav η(t) = Ltη(0). (7) Enligt Perron–Frobenius sats existerar ett ledande egenvärde λ1 vilket bestämmer populationens långsiktiga till- växttakt, egenvärdet uppfyller λ1 ≥ |λj | för alla j = 2, 3, 4, ...,m, se appendix A.4. Detta egenvärde, λ1, är kopplat till en positiv egenvektor Ψ1, som representerar den stabila befolkningen. Den stabila befolkningen betyder den stationära åldersfördelningen som populationen konvergerar till över tid. Vidare leder detta till att populationens långsiktiga utveckling beror på det asymptotiska beteendet hos λn 1 . Ifall λ1 < 1 har vi ett subkritiskt scenario där den stabila befolkningen minskar med hastighet λ1, medan ifall λ1 > 1 har vi ett superkritiskt scenario där den stabila befolkningen, Ψ1, ökar med hastighet λ1. 9 4 Simuleringar I denna sektion presenteras resultat samt diskussion gällande genomförda simuleringar. Avsnittet är i kronologisk ordning för att presentera arbetsprocessen. Simuleringar med hjälp av Python, Matlab samt R användes då studen- ternas erfarenhet gällande programmering skiljde sig åt. Två olika typer av modeller skapades för att analysera populationsutvecklingen i Sverige. Den första modellen var en stokastisk modell, som bygger på Galton–Watsons förgreningsprocesser. Den andra modellen var en deterministisk modell som baserats på Leslie–matriser. Båda modellerna presenteras först i en konstant miljö, för att sedan simulera en varierande miljö. Fyra olika profiler i varierande miljö har analyserats som presenteras i figur 7. (a) Profil 1, ökning (b) Profil 2, minskning (c) Profil 3, konstant miljö (d) Profil 4, cyklisk miljö Figur 7. Profiler av µ 4.1 Simuleringar via Galton–Watson I denna del presenteras resultat samt diskussion angående modellering baserat på Galton–Watson förgreningspro- cesser. 4.1.1 Parametrar för enkel Galton–Watson simulering Värdena för sannolikheterna för k döttrar, pk där k = 0, 1, 2 löstes ut enligt ekavtionssystemet 5. Alla kombinationer av µ, σ gav inte positiva värden på p0, p1 och/eller p2. För att hitta vilka värden på µ och σ som gav rimliga parametrar löstes ekvationssystemet för alla kombinationer där µ ∈ [0, 2] och σ ∈ [0, 1]. Detta gjordes med ett skript där en variabel hålls konstant och den andra varieras med inkrement av 0.01. Resultat redovisas i figur 8. 10 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 µ 0.0 0.2 0.4 0.6 0.8 1.0 Tillåtna värden på µ, Negativa sannolikheter Icke-negativa sannolikheter Analytiskt framtagen region Figur 8. Numeriskt framtaget område som ger icke-negativa sannolikheter (p0, p1, p2), omgivet av analytiskt framtagna begränsningar på µ, σ Ekvationssystemet och den numeriskt framtagna bilden användes som grund, och därifrån beräknades mer precisa uppsättningar undre och övre gränser fram analytiskt. µ(1− µ) ≤ σ2 ≤ µ(2− µ), ∀µ ∈ [0, 1] (8) (2− µ)(µ− 1) ≤ σ2 ≤ µ(2− µ), ∀µ ∈ [1, 2] (9) 4.1.2 Enkel Galton–Watson Den första simuleringen som genomfördes var en enkel Galton–Watson process. Detta var en simpel modell att börja ifrån för att sedan bygga vidare på. Eftersom endast kvinnor kan föda barn, betraktades bara kvinnor och födda döttrar i denna simulering. Det antogs även i denna första modell att kvinnorna dör efter att ha fött barnet eller barnen precis som i en enkel Galton–Watson process enligt avsnitt 3.1. Därmed består nästa generation endast av avkommorna från individerna i tidigare generationer. En kvinna i denna modell förutsåg även att endast kunna föda 0, 1, eller 2 döttrar. Tillsammans skapade dessa avgränsningar en simpel modell att simulera, för att sedan bygga vidare på, samt identifiera utmaningar och möjligheter. Tidigare nämnt är att i Sverige föder en kvinna i genomsnitt 1.43 barn år 2024. Detta är alltså väntevärdet av den stokastiska variabeln X. Emellertid undersöktes enbart kvinnor så väntevärdet i denna modell blir µ = 1.43/2 = 0.715 Genom att lösa för sannolikheterna (p0, p1, p2) enligt sektion 3.2.1 ekvation 5, genomfördes en simulering av populationen i Matlab där befolkningen började med endast en individ i första generationen. Simuleringen kördes över 100 generationer och visualiseras figur 9. Standardavvikelsen har valts enligt figur 8 till 0.6. 11 Figur 9. Simulering av Galton–Watson–processen Figur 9 visar att populationen ökar initialt från en människa, upp till 10 stycken, för att sedan dö ut efter 14 generationer. Detta var väntat, då väntevärdet E[X] < 1, det vill säga ett subkritiskt fall. Emellertid har slumpen en stor påverkan i den här typen av simuleringar. Befolkningen skulle lika gärna kunna dö ut efter 2 generationer eller ännu längre. Därför beräknades även Q (sannolikheten för utdöende). Q kan både beräknas ut numeriskt genom att köra flera simuleringar och räkna förhållandet mellan vilka som dog ut och inte, men även analytiskt genom fixpunktsekvationen enligt 4. För simuleringen i figur 9 beräknades Q till 1 enligt 3.2. Detta innebär alltså att populationen dör ut innan det givna tidsintervallet i 100% av genomförda simuleringar. För att vidare åskådliggöra effekten av ett lågt µ kan en simulering genomföras med ett begynnelsevärde på befolk- ningsmängden som består av samma antal människor som finns i Sverige under tiden av detta arbete (2025), vilket var ca 10600000. Då vi endast undersökte kvinnor sattes startpopulationen till 5300000, och µ = 0.715. Figur 10. Populationsutveckling givet fruktsamhetstalet år 2025 Figur 10 visar att befolkningen minskade snabbt för att sedan dö ut efter 45 generationer. Denna modell var en bra startpunkt, men inte särskilt verklighetstrogen. Utöver de antaganden som tidigare beskrivits så var en av de mest kritiska svagheterna i modellen det förväntade värdet av barn som en kvinna föder under sin livstid, eftersom detta värde var konstant över alla generationer. Detta stämmer givetvis inte med verkligheten. Enligt statistik från SCB kan det visualiseras det förväntade antalet födda barn sedan 2000 − 2024 enligt figur 11 nedan [14]. 12 Figur 11. Antal barn födda per kvinna år 2000− 2024 4.1.3 Galton–Watson i varierande miljöer med LF–fördelning Denna modell har en ryggrad bestående av Galton–Watson–processer i varierande miljöer. Det som gjorde denna modell unik var den fördelning som valdes att implementeras för den stokastiska variabeln X. Denna fördelning är LF–fördelningen, som presenterats i avsnitt 3.3. LF–fördelningen tillåter färre parametrar som styr över antalet barn, variansen samt väntevärdet, vilket underlättar simuleringar samt teoretiska beräkningar. Som tidigare beskrivits i avsnitt 3.3 kan väntevärdet för hela populationen, samt sannolikheten för att populationen överlever beskrivas som E(Zn) = A−1 n , P (Zn > 0) = (An + Cn) −1, vilket innebär att sannolikheten för att populationen dör ut ges av P (Zn = 0) = 1− (An + Cn) −1 = Q. Denna sannolikhet Q måste i en varierande miljö justeras. Tidigare vid beräkning av Q i en konstant miljö har det handlat om en startbefolkning som endast består av en person. Med Z0 > 1 definieras nu Qn = QZ0 som sannolikheten för att hela populationen dör ut i varierande miljöer. I denna modell är Z0 antalet kvinnor i Sveriges befolkning år 2024. Möjliga värden på antal döttrar per kvinna i den kumulativa funktionen begränsades till k = 200 för att underlätta simuleringar. Teoretiskt tillåts att k → ∞. Variansen tilläts vara konstant över tid och sattes till σ2 = 1. Profil Q500 E[Z500] 1 0 1.085× 1046 2 1 8.033× 10−119 3 1 3.39× 10−63 4 0 5.04× 10−3 Tabell 3. Sannolikhet för utdöende av population Q500 samt väntevärde vid generation 500 E[Z500] mot respektive profil Enligt tabell 3 gav profil 1 och 4 ett Q = 0, och profil 2 och 3 ger Q = 1. Om födelsetalen minskar eller ligger kvar på samma nivå kommer Sveriges befolkning inte att överleva. Väntevärdet för generation 500 i dessa profiler går även mot 0, vilket bekräftar utdöendet. Profil 1 samt 4 ger en population som överlever det givna tidsintervallet i modellen. Väntevärdet vid generation 500 för profil 1 visar hur populationen kommer att fortsätta växa, medan väntevärdet för profil 4 ger en annan bild. Trots att modellen ger en 0% risk att dö ut, kan det observeras ett lågt väntevärde för generation 500. Detta beror på det givna tidsintervallet, och antyder att populationen inte har samma sannolikhet att överleva vid ett längre tidsintervall. 13 (a) Profil 4, simulerade överlevnadssannolikheter mot antal generationer (b) Profil 4, antal individer i populationen mot antal generationer Figur 12. Cykliskt varierande µ mot 1000 generationer Figur 12 visar sannolikheten för populationen att överleva (1−Qn) mot 1000 generationer för profil 4, samt antal individer. Det som kan observeras är att vid längre tidintervall minskar sannolikheten att populationen överlever. Detta beror på att ju längre tid som passerar, desto svårare har populationen att återhämta sig för varje cykel. Detta bekräftas även genom figur 12 (b). Det mest intressanta resultatet från denna modell är profil 4. Denna profil demonstrerar hur det inte är tillräckligt att barnafödandet går upp till samma höga nivåer varje cykel för att behålla en stabil population. En nedgång i barnafödandet kompenseras alltså inte av en lika stor ökning när det gäller antalet individer i befolkningen. 4.2 Leslie–modell Leslie–matrisen är ett deterministiskt sätt att beräkna hur en befolkningsmängd förändras över tid. En Leslie–matris skapades därför enligt teorin i avsnitt 3.4. Denna matris L hade dimensionerna 128× 128, modellen skapades med en maximal ålder på 128 år då det är osannolikt att någon i västvärlden lever längre än så inom de närmaste 25 åren med nuvarande medicinteknik [7]. För att konstruera matrisen hämtades data från SCB. Fruktsamhetstal användes för att skapa översta raden i matrisen, det vill säga vektorn ϕ, dödstal för att skapa diagonalen, vilket är vektorn ρ. Befolkningsmängd och hur den är fördelad över ålder och kön användes för att skapa befolkningsvektorerna ηf ,0 och ηm,0. Dessa tjänar som begynnelsevillkor för simuleringen. Eftersom det saknas data för dödstal i åldrar större än 95, måste antaganden göras. För människor över 110 år gamla har en övre gräns för sannolikhet att dö konstaterats, nämligen 47% [7]. Chansen att överleva till nästa år för åldersgrupper där data saknas sattes därför till 1 2 . Modellen överskattar således hur många som dör i åldrar mellan 95 och 110 år. Då det finns skillnad i hur många som dör per åldersgrupp för män och kvinnor skapades två matriser, Lf och Lm. I Lm är dock översta raden en nollvektor. Antalet nyfödda pojkar räknades istället ut som proportion till antalet nyfödda flickor enligt ηm,n,0 = 1.056 ·ηf,n,0. Lm tjänar därmed endast syftet att modellera i vilken takt män dör. På grund av matrisernas omfattande storlek presenteras de ej här. Liksom i avsnitt 4.1.3 undersöktes fyra scenarier. Ett där matrisen förblir konstant över tid, tre där miljön varierades på olika sätt. På grund av det stora antalet parametrar beslutades att endast variera fruktsamhetstalen. Detta gjordes genom att skala översta raden i Lf . Två av fallen skalades på samma sätt som i avsnitt 4.1.3, dock med år som tidsenhet istället för generation. I det minskande fallet går då fruktsamhetstalet från 0.6945 till 0.521, i fallet med ökande fruktsamhet från från 0.6945 till 1.215 enligt figur 12a och 12b. Det fjärde fallet varierades undersöktes ett cykliskt varierande fruktsamhetstal. En sinuskurva anpassades till datan för fruktsamhet de senaste 40 åren och en sinuskurva anpassades till datan sådant att fruktsamhetstalet för döttrar varierade mellan 0.6945 och 1.042. Datan, den anpassade kurvan och den faktor som ϕ multiplicerades med, illustreras i 13. Vid presentation och diskussion 14 kring resultat kommer dessa fall kallas fall 1-4 enligt ordningen: 1. ökande, 2. minskande, 3. icke–varierande, 4. cykliskt varierande. 0 10 20 30 40 Tid (År) 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 An ta l d öt tra r Anpassning av kurva till data Summerad fruktsamhet, döttrar Anpassad kurva 0 10 20 30 40 Tid (År) 1.0 1.1 1.2 1.3 1.4 Multiplikativ faktor för fertilitet över tid Figur 13. Vänster: Data och en anpassad sinuskurva. Höger: Hur den faktor som fruktsamhetstalet multi- pliceras med varierar över tid. Simuleringen genomfördes för 500 år i samtliga simuleringar, hur befolkningsmängden varierar i de olika resultaten illustreras i figur 14. I figuren noteras att samtliga simuleringar börjar med en skarp befolkningsminskning, Den som initialt krymper minst är det cykliskt varierande fallet. Det fall där fruktsamheten ökar med tiden har en långsam ökning och att det tar så lång tid innan kurvan vänder uppåt beror på att den når ersättningsnivå ganska långt in i simuleringen. Kurvorna för den icke–varierande och den minskande fruktsamheten visar en minskande befolkningsmängd som når nivåer som är mycket små i jämförelse med dagens befolkning. I figur 14 visas även hur det ledande egenvärdet λ1 utvecklar sig över simuleringstiden, där syns att dessa kurvor motsvarar kurvorna som visar hur fruktsamhet varieras. 0 100 200 300 400 500 Tid (År) 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 An ta l m än ni sk or 1e7 Populationsstorlek över tid Konstant fruktsamhetet Minskande fruktsamhetet Ökande fruktsamhetet Cyklisk fruktsamhetet 0 100 200 300 400 500 Tid (År) 0.980 0.985 0.990 0.995 1.000 1.005 1.010 1.015 1 Ledande egenvärde, 1 över tid Konstant fruktsamhet Minskande fruktsamhet Ökande fruktsamhet Cyklisk frukstamhet Figur 14. Populationsstorlek och ledande egenvärde för de olika simulerade fallen. 15 De olika scenarierna skiljer sig inte bara åt i hur befolkningsmängden förändras över tid utan även i hur befolkningen är fördelad över ålder och kön. Detta illustreras i figurerna 15 – 18. I dessa figurer presenteras en befolkningspyramid för två tidpunkter i simuleringen, en efter 100 år, då nästan hela initiala befolkningen så gott som har försvunnit ur modellen. Här syns effekten av den initiala åldersfördelningen. En annan efter 400 år då befolkningspyramiden har stabiliserat sig något i form. I det icke–varierande fallet som illustreras i figur 15, noteras efter 100 år att befolkningen börjar fördela sig mer åt toppen av pyramiden. Efter 400 år har formen stabiliserat sig, därefter kommer åldersfördelningen att se närmast identisk ut fram till att befolkningen når en obetydlig storlek. 30000 15000 0 15000 30000 Antal individer 0 20 40 60 80 100 Ål de r ( År ) Befolkningspyramid efter 100 år, icke-varierande fruktsamhet 1000 500 0 500 1000 Antal individer 0 20 40 60 80 100 Befolkningspyramid efter 400 år Figur 15. Befolkningspyramid för simulering i icke-varierande miljö efter 100 respektive 400 år. I figur 16 visas två befolkningspyramider för simuleringen av fallet med sjunkande fruktsamhet. Likt den icke– varierande modellen noterar vi att befolkningen fördelar sig mot toppen av pyramiden. I detta fall ser vi även att pyramidens bas blir smalare och smalare, efter 400 år är basen liten i jämförelse med toppskiktets bredaste åldersgrupp. Framåt kommer basen att krympa ytterligare i jämförelse med toppen. 30000 15000 0 15000 30000 Antal individer 0 20 40 60 80 100 Ål de r ( År ) Befolkningspyramid efter 100 år, minskande fruktsamhet 200 100 0 100 200 Antal individer 0 20 40 60 80 100 Befolkningspyramid efter 400 år Figur 16. Befolkningspyramid för simulering med minskande fruktsamhet efter 100 respektive 400 år. I fallet med ökande fruktsamhet ser vi i figur 17 efter 100 år att basen till storleken är väldigt lik andra skikt i pyra- miden, trots att fruktsamheten hela tiden varit under ersättningsnivå. De större åldersgrupperna som observerades i den initiala befolkningspyramiden har hunnit dö och vilket gör att befolkningen är väldigt jämnt fördelad över 16 olika åldersgrupper. Efter 400 år har fruktsamheten ökat över ersättningsnivå och vilket gör att basen blir bredare och bredare. Först här börjar det faktiskt likna en pyramid. 50000 25000 0 25000 50000 Antal individer 0 20 40 60 80 100 Ål de r ( År ) Befolkningspyramid efter 100 år, ökande fruktsamhet 60000 30000 0 30000 60000 Antal individer 0 20 40 60 80 100 Befolkningspyramid efter 400 år Figur 17. Befolkningspyramid för simulering med ökande fruktsamhet efter 100 respektive 400 år. I det fall där fruktsamheten varierar cykliskt, vilket visas i figur 18, noteras att pyramiderna har en vågig form. Nämnvärt är att att dessa två pyramider är väldigt lika. Skillnaden mellan smala och breda partier är snarlik efter 100 och 400 år. Medelskillnaden mellan den yngre och äldre halvan av befolkningen är mycket mindre i detta fall än något av de tre andra. 50000 25000 0 25000 50000 Antal individer 0 20 40 60 80 100 Ål de r ( År ) Befolkningspyramid efter 100 år, cyklisk fruktsamhet 7500 5000 2500 0 2500 5000 7500 Antal individer 0 20 40 60 80 100 Befolkningspyramid efter 400 år Figur 18. Befolkningspyramid för simulering med cykliskt varierande fruktsamhet efter 100 respektive 400 år. För de olika fallen beräknades även försörjningskvot för befolkningen, vilket illustreras i figur 19. Detta mått är strikt demografiskt, med andra ord tar det bara hänsyn till hur åldersfördelning hos befolkningen. Om färre barn föds ett år trots att antalet äldre förblir stabilt betyder det att försörjningskvoten kommer sjunka, omvänt om fler barn föds kommer försörjningskvoten att växa. Om en generation är större än andra generationer i befolkningen kommer detta också bidra till att försörjningskvoten ökar när de går i pension. Dessa fenomen orsakar det oscillerande beteende som observeras i samtliga undersökta fall i figur 19. 17 0 100 200 300 400 500 Tid (år) 80 85 90 95 100 105 110 115 Fö rs ör jn in gs kv ot Försörjningskvot Konstant fruktsamhet Minskande fruktsamhet Ökande fruktsamhet Cyklisk fruktsamhet Figur 19. Försörjningskvot för samtliga undersökta fall. Kurvan för försörjningskvot i icke–varierande miljö går nedåt de första åren för att sedan vända skarpt uppåt. Detta för att färre barn föds vilket omedelbart gör att försörjningskvoten sjunker. Den skarpa ökningen förklaras av att en förhållandevis stor generation går i pension medan en förhållandevis liten generation når arbetsför ålder. Effekter av detta är vad som orsakar det oscillerande beteendet men detta stannar av i takt med att befolkningspyramidens form stabiliseras. För fallet med minskande fruktsamhet beter sig kurvan väldigt likt det icke–varierande fallet till en början, kurvorna divergerar dock efter ca 60-100 år och kurvan tillhörande fall visar att försörjningskvoten ökar över hela simuleringstiden. Detta för att den yngre delen av befolkningen krymper snabbare och snabbare. För fallet med ökande fruktsamhet noteras att försörjningskvoten ökar snabbare än fall 1 och 2. Detta förklaras genom att fler barn föds samtidigt som många går i pension. Efter cirka 60-100 år skiljer sig även denna kurvan från fall 1. Nu börjar effekterna av ökad generationsstorlek synas i arbetsstyrkan och denna kommer att växa i förhållande till antalet pensionärer. De positiva effekterna av detta dämpas fortsatt av att även det yngre ålderssegmentet växer i förhållande till arbetsstyrkan. För fallet med cykliskt varierande fruktsamhet noteras att kurvan fortsätter att oscillera i takt med fruktsamheten. Denna kurva utmärker sig genom att den likt fall 1 och 2 representerar en befolkning som krymper, trots detta blir försörjningskvoten lägre än i dessa fall. 18 5 Diskussion I detta avsnitt dras slutsatser och de olika modellernas diskuteras gällande för– och nackdelar, samt effekter i samhället ifall arbetets resultat är korrekt. 5.1 Slutsatser Galton–Watson modeller Enligt en enkel Galton–Watson process kan det åskådas att efter 45 generationer så kommer Sveriges befolkning att dö ut då ingen invandring sker ut eller in från landet. Detta visar vilken effekt som låga födelsetal har på en population under längre tid. Galton–Watson i varierande miljöer med LF–fördelning visar att en mer teoretisk modell kan ge mycket information om en population. I varierande miljöer kan det observeras hur en konstant nivå på dagens nivå samt vid en minskning kommer Sveriges befolkning att dö ut på lång sikt. Det enda fall där populationen ser ut att säkerligen fortsätta växa är då barnafödandet ökar konstant. Det har även visats att vid en cyklisk upp– och nedgång av barnafödandet så ökar sannolikheten för att populationen dör ut på lång sikt. 5.2 Slutsatser Leslie–modellen Tre av simulerade scenarier resulterar i att Sveriges befolkning går mot utdöende. Endast det scenario där fruktsam- heten är strikt växande lyckas fortplantningstakten återhämta sig. För fallet med konstant fruktsamhet och fallet med minskande fruktsamhet når befolkningsmängden nivåer som är mycket låga i jämförelse med begynnelsevillko- ren. Av fallen där befolkningsmängden stadigt går nedåt klarar sig det cykliska fallet klart bäst. Där håller sig även försörjningskvoten relativt stabil och lägre än i de andra fallen. Den klarar sig nästan lika bra som i det stadigt ökande fallet. Det kan också konstateras att olika fall ger stora skillnader i hur befolkningen är fördelad över ålder. 5.3 Modellernas för– och nackdelar Användandet av en stokastisk modell är fördelaktigt när det gäller modellering av stora befolkningar då slumpen har en stor betydelse i verkligheten. Med det sagt finns det även nackdelar med den stokastiska modellen som använts i detta arbete. Då endast en kvinnlig befolkning kan simuleras, så fångas endast halva bilden. Denna restriktion tillåter modellen att fungera korrekt, men begränsar även de erhållna resultaten. En åldersfördelning hade även varit att föredra för att tydligt kunna jämföra resultaten av de båda modellerna. Fördelar med Leslie–matrisen är att den kan användas för att betrakta både män och kvinnor samt hela ålders- spektrumet. Svagheter är dock att den är deterministisk vilket kan vara olämpligt när verkligheten är svår att förutsäga, i synnerhet med stora antalet parametrar i åtanke. 5.4 Effekter om resultaten blir verklighet Att befolkningen förändras i antal och åldersfördelning kan ha såväl bra som dåliga effekter. Exempelvis kan en mindre befolkningsmängd göra att folkets klimatavtryck blir mindre. Tillgången på bostäder skulle också kunna bli större vilket skulle kunna möjliggöra att större andel kan flytta var de vill, för arbete, studier, kärlek eller andra anledningar. Samtidigt skulle förmodligen färre individer arbeta vilket skulle kunna försämra landets BNP, och således dess förmåga att hantera kostnader som inte dimensioneras efter befolkningsmängden. Potentiella effekter av att befolkningen omfördelas kan också bli stora. Om andelen unga minskas i sådan grad som visas i figur 15 och 16, skulle exempelvis efterfrågan på barnomsorg och skola minska, med allt som hör till. Det skulle också kunna innebära att en större andel av unga vuxna skulle behöva kallas till värnplikt för att möta dagens behov av utökad försvarsförmåga[15]. I dessa fall noteras även att en större andel av befolkningen är pensionärer 19 vilket skulle öka behovet av äldreomsorg men även skapa utmaningar kring utbetalning av pension. Dessa effekter kan även motiveras med resultaten i figur 19, där försörjningskvot visas. 20 Referenser [1] Statistiska Centralbyrån. “Historiskt lågt barnafödande och lägsta folkökningen på 22 år”. (), URL: https://www.scb.se/pressmeddelande/historiskt-lagt-barnafodande-och- lagsta-folkokningen-pa-22-ar/ (hämtad 2025-02-09). [2] Statistiska Centralbyrån. “Antal födda barn per kvinna i Sverige når ny lägstanivå”. (), URL: https://www.scb.se/pressmeddelande/antal- fodda- barn- per- kvinna- i- sverige-nar-ny-lagstaniva/?fbclid=IwY2xjawIpbtxleHRuA2FlbQIxMQABHXxPfrbEIN_ WGrnFuwcL_sE1R3UTUIj0oI5mNAS4Cpv2lomj-qzGOUsMSA_aem_1jzXBq5vhXk-Yv2re_CQGA (hämtad 2025-02-13). [3] UI. “Fertilitetsgrad, Topplistor”. (), URL: https://www.ui.se/landguiden/statistik/ topplista/?factid=943dc176-04da-e511-9c3d-f01faf3e8f24&charttype=bar&countries= (hämtad 2025-05-11). [4] Karolinska Institutet. “Nyfiken på livslängd”. (), URL: https://ki.se/forskning/popularvetenskap- och-dialog/popularvetenskapliga-teman/tema-halsosamt-aldrande/nyfiken-pa- livslangd (hämtad 2025-05-12). [5] Statistiska Centralbyrån. “Försörjningskvot totalt efter år”. (), URL: https://www.statistikdatabasen. scb.se/pxweb/sv/ssd/START__BE__BE0101__BE0101A/FkvotHVD/table/tableViewLayout1/ (hämtad 2025-05-12). [6] World Health Organisation. “Försörjningskvot totalt efter år”. (), URL: https : / / www . statistikdatabasen.scb.se/pxweb/sv/ssd/START__BE__BE0101__BE0101A/FkvotHVD/ table/tableViewLayout1/ (hämtad 2025-05-12). [7] H. Rootzén och D. Zholud, “Human life is unlimited – but short”, Extremes, årg. 20, nr 4, s. 713–728, 2017. doi: 10.1007/s10687-017-0305-5. URL: https://doi.org/10.1007/ s10687-017-0305-5. [8] Allison McCann and Amy Schoenfeld Walker. “Tracking Abortion Bans Across the Country”. (), URL: https://www.nytimes.com/interactive/2024/us/abortion-laws-roe-v- wade.html (hämtad 2025-02-09). [9] K. Engwall och H. Peterson, Barnfri i ett barnvänligt samhälle, K. Engwall och H. Peterson, utg. Stockholm, Sweden: Dialogos Förlag, 2010, s. 13–34. [10] S. Langvik, “Fyrer løs mot UiO-forsker: - Virker som all skyld legges på kvinner”, Verdens Gang, 2 juli 2024. URL: https://www.vg.no/nyheter/i/93zpbM/mads-larsen-skaper- debatt-om-lave-foedselstall-i-norge (hämtad 2025-02-10). [11] R. Abraham och J.-F. Delmas, An Introduction to Galton–Watson Trees and Their Local Limits, HAL preprint, hal-01164661v3, Preprint, 2015. URL: https://hal.science/hal- 01164661v3. 21 https://www.scb.se/pressmeddelande/historiskt-lagt-barnafodande-och-lagsta-folkokningen-pa-22-ar/ https://www.scb.se/pressmeddelande/historiskt-lagt-barnafodande-och-lagsta-folkokningen-pa-22-ar/ https://www.scb.se/pressmeddelande/antal-fodda-barn-per-kvinna-i-sverige-nar-ny-lagstaniva/?fbclid=IwY2xjawIpbtxleHRuA2FlbQIxMQABHXxPfrbEIN_WGrnFuwcL_sE1R3UTUIj0oI5mNAS4Cpv2lomj-qzGOUsMSA_aem_1jzXBq5vhXk-Yv2re_CQGA https://www.scb.se/pressmeddelande/antal-fodda-barn-per-kvinna-i-sverige-nar-ny-lagstaniva/?fbclid=IwY2xjawIpbtxleHRuA2FlbQIxMQABHXxPfrbEIN_WGrnFuwcL_sE1R3UTUIj0oI5mNAS4Cpv2lomj-qzGOUsMSA_aem_1jzXBq5vhXk-Yv2re_CQGA https://www.scb.se/pressmeddelande/antal-fodda-barn-per-kvinna-i-sverige-nar-ny-lagstaniva/?fbclid=IwY2xjawIpbtxleHRuA2FlbQIxMQABHXxPfrbEIN_WGrnFuwcL_sE1R3UTUIj0oI5mNAS4Cpv2lomj-qzGOUsMSA_aem_1jzXBq5vhXk-Yv2re_CQGA https://www.ui.se/landguiden/statistik/topplista/?factid=943dc176-04da-e511-9c3d-f01faf3e8f24&charttype=bar&countries= https://www.ui.se/landguiden/statistik/topplista/?factid=943dc176-04da-e511-9c3d-f01faf3e8f24&charttype=bar&countries= https://ki.se/forskning/popularvetenskap-och-dialog/popularvetenskapliga-teman/tema-halsosamt-aldrande/nyfiken-pa-livslangd https://ki.se/forskning/popularvetenskap-och-dialog/popularvetenskapliga-teman/tema-halsosamt-aldrande/nyfiken-pa-livslangd https://ki.se/forskning/popularvetenskap-och-dialog/popularvetenskapliga-teman/tema-halsosamt-aldrande/nyfiken-pa-livslangd https://www.statistikdatabasen.scb.se/pxweb/sv/ssd/START__BE__BE0101__BE0101A/FkvotHVD/table/tableViewLayout1/ https://www.statistikdatabasen.scb.se/pxweb/sv/ssd/START__BE__BE0101__BE0101A/FkvotHVD/table/tableViewLayout1/ https://www.statistikdatabasen.scb.se/pxweb/sv/ssd/START__BE__BE0101__BE0101A/FkvotHVD/table/tableViewLayout1/ https://www.statistikdatabasen.scb.se/pxweb/sv/ssd/START__BE__BE0101__BE0101A/FkvotHVD/table/tableViewLayout1/ https://www.statistikdatabasen.scb.se/pxweb/sv/ssd/START__BE__BE0101__BE0101A/FkvotHVD/table/tableViewLayout1/ https://doi.org/10.1007/s10687-017-0305-5 https://doi.org/10.1007/s10687-017-0305-5 https://doi.org/10.1007/s10687-017-0305-5 https://www.nytimes.com/interactive/2024/us/abortion-laws-roe-v-wade.html https://www.nytimes.com/interactive/2024/us/abortion-laws-roe-v-wade.html https://www.vg.no/nyheter/i/93zpbM/mads-larsen-skaper-debatt-om-lave-foedselstall-i-norge https://www.vg.no/nyheter/i/93zpbM/mads-larsen-skaper-debatt-om-lave-foedselstall-i-norge https://hal.science/hal-01164661v3 https://hal.science/hal-01164661v3 [12] P. Haccou, P. Jagers och V. A. Vatutin, Branching Processes: Variation, Growth and Extin- ction of Populations. Cambridge University Press, 2005, kap. 2.1–2.2. [13] S. Sagitov och Y. Zhumayev, “Galton–Watson Theta-Processes in a Varying Environment”, Stochastics and Quality Control, årg. 39, nr 1, s. 25–39, 2024. doi: 10.1515/eqc-2024-0001. URL: https://doi.org/10.1515/eqc-2024-0001. [14] Statistiska central byrån. “Summerad fruktsamhet efter år”. (), URL: https://www.statistikdatabasen. scb.se/pxweb/sv/ssd/START__BE__BE0101__BE0101H/FruktsamhetSum/chart/chartViewLine/. [15] Regeringskansliet. “Försvarsbeslutet 2025–2030”. (), URL: https://www.regeringen.se/ regeringens-politik/totalforsvar/forsvarsbeslutet-20252030/?fbclid=IwY2xjawKQgcZleHRuA2FlbQIxMABicmlkETA3ZHN2bmdCaUJQQ2RGSmxNAR6we5gziWiwQDV5M1J0q- hiZGI4O-AgIMdItPT4SIgfxyGG-uuaOgishB8YEg_aem_h2jmKXrmgapldhMPX_tRJA (hämtad 2025-05-13). [16] M.-Q. Chen och X. Li, “Spectral properties of a near-periodic row-stochastic Leslie matrix”, Linear Algebra and Its Applications, årg. 409, nr 1–3, s. 166–186, 2005. doi: 10.1016/j. laa.2005.07.005. URL: https://doi.org/10.1016/j.laa.2005.07.005. 22 https://doi.org/10.1515/eqc-2024-0001 https://doi.org/10.1515/eqc-2024-0001 https://www.statistikdatabasen.scb.se/pxweb/sv/ssd/START__BE__BE0101__BE0101H/FruktsamhetSum/chart/chartViewLine/ https://www.statistikdatabasen.scb.se/pxweb/sv/ssd/START__BE__BE0101__BE0101H/FruktsamhetSum/chart/chartViewLine/ https://www.regeringen.se/regeringens-politik/totalforsvar/forsvarsbeslutet-20252030/?fbclid=IwY2xjawKQgcZleHRuA2FlbQIxMABicmlkETA3ZHN2bmdCaUJQQ2RGSmxNAR6we5gziWiwQDV5M1J0q-hiZGI4O-AgIMdItPT4SIgfxyGG-uuaOgishB8YEg_aem_h2jmKXrmgapldhMPX_tRJA https://www.regeringen.se/regeringens-politik/totalforsvar/forsvarsbeslutet-20252030/?fbclid=IwY2xjawKQgcZleHRuA2FlbQIxMABicmlkETA3ZHN2bmdCaUJQQ2RGSmxNAR6we5gziWiwQDV5M1J0q-hiZGI4O-AgIMdItPT4SIgfxyGG-uuaOgishB8YEg_aem_h2jmKXrmgapldhMPX_tRJA https://www.regeringen.se/regeringens-politik/totalforsvar/forsvarsbeslutet-20252030/?fbclid=IwY2xjawKQgcZleHRuA2FlbQIxMABicmlkETA3ZHN2bmdCaUJQQ2RGSmxNAR6we5gziWiwQDV5M1J0q-hiZGI4O-AgIMdItPT4SIgfxyGG-uuaOgishB8YEg_aem_h2jmKXrmgapldhMPX_tRJA https://doi.org/10.1016/j.laa.2005.07.005 https://doi.org/10.1016/j.laa.2005.07.005 https://doi.org/10.1016/j.laa.2005.07.005 6 Användande av AI ChatGPT har använts främst i rollen av bollplank för olika tillvägagångssätt gällande simuleringar samt teoretiska grunder för att modellera en mänsklig befolkning. Det har även använts för att felsöka kod och diskutera resultat med, samt grammatik och meningsuppbyggnad i rapporten. Även för att ge förslag på titlar i arbetet samt struktur och för generering av bild för populärvetenskapliga presentation. Scopus AI har även använts för att förklara vissa koncept och hitta relevanta källor som kopplas till ämnet. Båda dessa verktyg har genomgående använts för vad de är, verktyg. De har använts med försiktighet och med vetskap om att AI kan göra misstag. Därmed har alla referenser som Scopus AI gett manuellt kontrollerats. När det gäller ChatGPT har informationen som verktyget gett kontrollerats mot vetenskapliga artiklar, samt med handle- daren. 23 A Appendix 1 – teori Lemma A.1. Givet en PGF för en stokastisk variabel X är E[X] = f ′(1) Bevis. Eftersom både s ∈ [0, 1] och P (X = k) ∈ [0, 1] är funktionssumman likformigt konvergent, vilket gör att vi får derivera inuti summan. Från deriveringen följer beviset f ′(s) = d ds ( ∞∑ k=0 skP (X = k) ) = ∞∑ k=0 ksk−1P (X = k) =⇒ f ′(1) = ∞∑ k=0 ksk−1P (X = k) ∣∣∣∣ s=1 = ∞∑ k=0 kP (X = k) = E[X]. Sats A.1. Givet en PGF för Zt samt en PGF för Xt+1 så ges PGF för Zt+1 av Ft+1(s) = Ft(ft+1)(s). (10) Bevis. Givet definitionen av Ft+1(s) och potenslagar ges Ft+1(s) = E[sZt+1 ] = E  Zt∏ i=1 sXi,t+1  . Eftersom X är oberoende och likafördelad kan väntevärdena brytas ut som en produkt, samt genom att ta total förväntan på uttrycket E  Zt∏ i=1 sXi,t+1  = E[ft+1(s) Zt ] Genom variabelsubstitutionen Ft+1(s) = u blir E[ft+1(s) Zt ] = E[uZt ] = Ft(u) = Ft(ft+1(s)). Sats A.2. Givet Z0 = 1, är PGF för Zt en sammansättning av PGF för X1, X2, ..., Xt. Bevis. Genom iterering av sats 2.1 samt att t diskret gäller Ft(s) = F0(f1...(ft(s))...). Titta nu endast på F0(f1(s)) och använd att Z0 = 1 F0(f1(s)) = E[f1(s) Z0 |Z0 = 1] = E[f1(s) 1] = f1(s), vilket medför att Ft(s) = f1(f2(...(ft(s))...). Anmärkning. Beviset fungerar för alla Z0 där startpopulationen är känd, Z0 = 1 är dock smidigast för beviset, när Z0 är en okänd slumpvariabel är resultatet endast Ft(s) = F0(f1...(ft(s))...). Sats A.3. 1 1− Fn(s) = Cn + An 1− s . i Bevis. Detta görs genom matematisk induktion, vilket innebär att visa att det gäller för n = 1 och att n = k medför n = k + 1. För n = 1, använd (3), följt utav (6). 1 1− F1(s) = 1 1− f1(s) = c1 + a1 1− s = C1 + A1 1− s . För n = k =⇒ n = k + 1, använd (3), därefter induktionsantagandet och till sist (6) 1 1− Fk+1(s) = 1 1− Fk(ft+1(s)) = Ck + Ak 1− fk+1(s) = Ck +Ak(ck+1 + ak+1 1− s ) = Ck+1 + Ak+1 1− s . Sats A.4 (Perron–Frobenius sats). Låt A = (aij) vara en n×n positiv matris, det vill säga aij > 0 för 1 ≤ i, j ≤ n. Då gäller följande påståenden: Det finns en egenvektor v = (v1, . . . , vn)T till A med egenvärdet λ sådan att alla komponenter i v är positiva: Av = λv, vi > 0 för 1 ≤ i ≤ n. På motsvarande sätt finns en positiv vänster egenvektor w sådan att: wTA = wTλ, wi > 0. Bevis. Se artikel [16]. B Appendix 2 – Simuleringar B.1 Galton–Watson i varierande miljöer Genom att utöka den befintliga modellen och tillåta parametern µ att variera under simuleringens gång kan ett mer realistiskt resultat åstadkommas. Detta genomfördes i ett första steg genom att variera µ linjärt för att följa hur populationen utvecklas i detta fall. I denna simulation varierades µ linjärt från µ = 1 för att sedan minska till µ = 0.75. Resultatet kan observeras nedan i figur 20. ii Figur 20. Simulerad populationsutveckling med linjärt varierande µ Det som kan observeras från figur 20 är att även då µ avtar ökar befolkningen upp till att µ understiger 1. Värt att notera är att här antas populationen att starta från 530000 individer som i tidigare sektion. Även denna modell har dock sina svagheter. Som observerats i figur 11 så varierar inte µ linjärt över dessa 13 år som simulerats, och inte heller om man undersöker 100 eller 1000 år bakåt i tiden. Därmed behöver µ varieras på ett icke–linjärt vis. iii B.2 Kurvor för varierande µ Därmed undersöktes potentiella matematiska kurvor som µ kan varieras enligt. Den första kandidaten var en kombi- nation av normalfördelningskurvor. Detta för att kunna manipulera kurvorna som önskas. Ambitionen var att skapa en form på kurvan där µ startar vid 1, för att sedan öka långsamt tills ett maximum uppnås, efter detta maximum minskar µ till under 1. Det minsta kravet för att en befolkning ska överleva på lång sikt är att minst en kvinna föds per kvinna. För att befolkningen ska öka på lång sikt behöver antalet vara större än ett. Den trenden vi ser just nu i samhället är dock att antalet barn per kvinna minskar. Denna kurva låter oss alltså simulera den situationen där antalet barn per kvinna fortsätter att minska. Figur 21. Varierande µ Figur 21 visualiserar en befolkning som ökar långsamt för att explodera och sedan minska drastiskt. Viktigt att notera är dock att denna "explosion"inte inträffar vid tidpunkten då µ är störst, utan effekten av ett högt µ är förskjuten ett antal generationer. Detsamma kan sägas angående effekten av ett mindre µ. Effekten av ett minskande µ är även den förskjuten, men konsekvenserna är förödande. Observera storleken på populationen representerad av y–axeln. Populationen når ett astronomiskt antal människor. Trots detta lyckas befolkningen ändå minska drastiskt under endast ett fåtal generationer. I denna graf är det dock viktigt att förstå skalningen. Även fast det ser ut som att befolkningen dör ut så är nivån vid generation 500 fortfarande större än dagens befolkning på planeten. Problemet med denna modell är att vid varierande parametrar blir det teoretiskt omöjligt att beräkna Q via metoden som presenterats i avsnitt 3.2. iv C Appendix 3 – källkod Enkel Galton–Watson i konstant miljö: Matlab % antal generationer numGenerationer = 100; % startpopulation Z = zeros(1, numGenerationer); Z(1) = 1; mu =0.715; % simulering for gen = 2: numGenerationer % Intervall för sigma sigma2_min = mu - mu^2; sigma2_max = mu * (2 - mu); sigma2=max(sigma2_max ,min(sigma2_min)); % Varians % Sannolikheter p0, p1 , p2 för denna generation syms p0 p1 p2 ekv1 = p0 + p1 + p2 == 1; ekv2 = p1 + 2*p2 == mu; ekv3 = (p1 + 4*p2) - (p1 + 2*p2)^2 == sigma2; sol = solve ([ekv1 , ekv2 , ekv3], [p0 , p1, p2], 'Real', true); % numeriska värden p0 = double(sol.p0); p1 = double(sol.p1); p2 = double(sol.p2); P = [p0 , p1, p2]; if any(P < 0) || any(P > 1) v warning('Ogiltiga sannolikheter vid generation %d. Stoppar simuleringen.', gen); Z = Z(1:gen -1); break; end nyBefolkning = 0; for i = 1:Z(gen -1) nyBefolkning = nyBefolkning + randsample (0:2, 1, true , P); end Z(gen) = nyBefolkning; if Z(gen) == 0 Z = Z(1: gen); break; end end % Plott figure; plot (0: length(Z)-1, Z, '-o', 'LineWidth ', 2); xlabel('Generation '); ylabel('Antal individer '); title('Galton -Watson i varierande miljö'); grid on; % sannolikheter disp('Sannolikheter:'); disp(['p0 = ', num2str(p0)]); disp(['p1 = ', num2str(p1)]); disp(['p2 = ', num2str(p2)]); disp(['sigma=',num2str(sqrt(sigma2))]) disp(['sigma2=',num2str(sigma2)]) Enkel Galton-Watson i varierande miljöer: Python vi # Antal genera t ioner num_generations = 100 mu_start = 2 mu_end = 0.75 mu_t = np . l i n s p a c e (mu_start , mu_end , num_generations ) # Star t popu l a t i on Z = [ 5 . 3 ∗ 10∗∗6 ] def c a l c u l a t e_p r o b ab i l i t i e s (mu) : sigma = 0 .5 sigma2 = sigma∗∗2 p2 = ( sigma2 + mu∗∗2 − mu) / 2 p1 = mu − 2 ∗ p2 p0 = 1 − p1 − p2 i f p0 < 0 or p1 < 0 or p2 < 0 or p0 > 1 or p1 > 1 or p2 > 1 : return None return [ p0 , p1 , p2 ] # Simuler ing for gen in range (1 , num_generations ) : i f gen % 5 == 0 : print ( f "Beräknar␣ gene ra t i on ␣{gen}/{num_generations } . . . " ) mu = mu_t [ gen ] P = c a l c u l a t e_p r o b ab i l i t i e s (mu) i f P i s None : print ( f " Og i l t i g a ␣ s anno l i kh e t e r ␣ vid ␣ gene ra t i on ␣{gen } , ␣ stoppar ␣ s imu le r ingen . " ) break i f Z[ −1] < 10∗∗6 : new_population = sum(np . random . cho i c e ( [ 0 , 1 , 2 ] , s i z e=Z[ −1] , p=P) ) else : new_population = int (Z[ −1] ∗ (P [ 1 ] + 2 ∗ P [ 2 ] ) ) Z . append ( new_population ) i f new_population == 0 : print ( "Befo lkn ingen ␣dog␣ut . " ) break f i na l_popu la t i on = Z[ −1] print ( f "Antal ␣ per soner ␣kvar␣ e f t e r ␣ s i s t a ␣ generat ionen : ␣{ f ina l_popu la t i on }" ) vii # Plo t t a popu la t ionens u t v e c k l i n g p l t . f i g u r e ( f i g s i z e =(8 , 5 ) ) p l t . p l o t (range ( len (Z ) ) , Z , ’−o ’ , l a b e l="Populat ion " ) p l t . x l ab e l ( ’ Generation ’ ) p l t . y l ab e l ( ’ Antal ␣ i n d i v i d e r ’ ) p l t . t i t l e ( ’ Galton−Watson␣med␣ l i n j ä r t ␣ var i e rande ␣$\mu_t$ ’ ) p l t . g r i d (True ) p l t . l egend ( ) p l t . show ( ) # Plo t t a mu ö ver t i den p l t . f i g u r e ( f i g s i z e =(8 , 5 ) ) p l t . p l o t (range ( num_generations ) , mu_t, c o l o r=’ green ’ , l a b e l=r "$\mu_t$" ) p l t . x l ab e l ( "Generation " ) p l t . y l ab e l ( r "Fö rvä ntat ␣ anta l ␣barn␣$\mu$" ) p l t . t i t l e ( r " L in j ä r ␣ f ö r ä ndring ␣av␣$\mu$␣ö ver ␣ t i d " ) p l t . g r i d (True ) p l t . l egend ( ) p l t . show ( ) Galton–Watson med LF-fördelning i varierande miljö: Python import numpy as np import matp lo t l i b . pyplot as p l t import math star tpop=5 ∗ 10∗∗6 num_generations = 1000 t = np . l i n s p a c e (0 , num_generations , num_generations ) # per i o d i s k va r i a t i on av mu mu_t = 0 .2 ∗ np . s i n ( np . p i ∗ t / 50 − np . p i /2 ) + 1 an_l i s t = [ ] cn_l i s t = [ ] s igma2_l i s t = [ ] def ensure_valid_sigma (mu) : an = 1 / mu de l t a = 1 .5 # Sä kerhe t smarg ina l min_sigma2 = ((1 + de l t a − an ) ∗ 2 + an − 1) / an∗∗2 return max(min_sigma2 + 0 . 1 , 1e−1) def calculate_an_cn (mu) : #sigma2 = ensure_valid_sigma (mu) #sigma = np . s q r t ( sigma2 ) viii sigma=1 sigma2=sigma∗∗2 an = 1 / mu cn = ( sigma2 ∗ an∗∗2 − an + 1) / 2 i f an + cn <= 1 : print ( f "Varning : ␣a_n␣+␣c_n␣<=␣1␣ vid ␣mu␣=␣{mu: . 3 f } , ␣ sigma␣=␣{sigma : . 3 f }" ) return None return an , cn , sigma2 def c a l c u l a t e_p robab i l i t i e s_gen e r a l (mu, k_max=200): r e s u l t = calculate_an_cn (mu) i f r e s u l t i s None : return None an , cn , sigma2 = r e s u l t probs = [ ] p0 = 1 − 1 / ( an + cn ) probs . append ( p0 ) i f p0 < 0 : print ( f "Fel : ␣P(X=0)␣<␣0␣ f ö r ␣mu␣=␣{mu: . 3 f } , ␣a_n␣=␣{an : . 3 f } , ␣c_n␣=␣{cn : . 3 f }" ) return None for k in range (1 , k_max + 1 ) : pk = ( cn ∗∗(k − 1) ∗ an ) / ( an + cn )∗∗( k + 1) probs . append (pk ) total_p = sum( probs ) i f not np . i s c l o s e ( total_p , 1 . 0 ) : probs = [ p / total_p for p in probs ] return probs for mu in mu_t : an , cn , sigma2 = calculate_an_cn (mu) an_l i s t . append ( an ) cn_l i s t . append ( cn ) s igma2_l i s t . append ( sigma2 ) # Simuler ing Z = [ s tar tpop ] for gen in range (1 , num_generations ) : i f gen % 5 == 0 : print ( f "Beräknar␣ gene ra t i on ␣{gen}/{num_generations } . . . " ) ix mu = mu_t [ gen ] P = ca l c u l a t e_p robab i l i t i e s_gen e r a l (mu) i f P i s None : print ( f " Og i l t i g a ␣ s anno l i kh e t e r ␣ vid ␣ gene ra t i on ␣{gen } , ␣ stoppar ␣ s imu le r ingen . " ) break current_populat ion = Z[ −1] su rv i v o r s = current_populat ion i f s u r v i v o r s < 10∗∗7 : new_population = sum(np . random . cho i c e (range ( len (P) ) , s i z e=surv ivo r s , p=P) ) else : expected_chi ldren = sum( k ∗ P[ k ] for k in range ( len (P) ) ) new_population = int ( s u r v i v o r s ∗ expected_chi ldren ) Z . append ( new_population ) i f new_population == 0 : print ( "Befo lkn ingen ␣dog␣ut . " ) break f i na l_popu la t i on = Z[ −1] print ( f "Antal ␣ per soner ␣kvar␣ e f t e r ␣ s i s t a ␣ generat ionen : ␣{ f ina l_popu la t i on : . 2 e}" ) p l t . f i g u r e ( f i g s i z e =(8 , 5 ) ) p l t . p l o t (range ( len (Z ) ) , Z , ’−o ’ , l a b e l="Populat ion " ) p l t . x l ab e l ( ’ Generation ’ ) p l t . y l ab e l ( ’ Antal ␣ i n d i v i d e r ’ ) p l t . t i t l e ( ’ Galton−Watson␣ i ␣ var i e rande ␣mi l j ö ’ ) p l t . g r i d (True ) p l t . l egend ( ) p l t . show ( ) p l t . f i g u r e ( f i g s i z e =(8 , 5 ) ) p l t . p l o t ( t , mu_t, l a b e l=r "Fö rvä ntat ␣vä rde ␣$\mu_t$" , c o l o r=’b ’ ) p l t . x l ab e l ( "Generation " ) p l t . y l ab e l ( r "Fö rvä ntat ␣vä rde ␣$\mu$" ) p l t . t i t l e ( r "Fö r ä ndring ␣av␣$\mu$␣ö ver ␣ t i d " ) p l t . axh l ine (y=1, c o l o r=’ gray ’ , l i n e s t y l e=’−−’ , alpha =0.5) p l t . l egend ( ) p l t . g r i d ( ) p l t . show ( ) p l t . f i g u r e ( f i g s i z e =(8 , 5 ) ) p l t . p l o t (range ( len ( s igma2_l i s t ) ) , s igma2_l ist , c o l o r=’ orange ’ , l a b e l=r ’ Varians ␣$\sigma^2$ ’ ) p l t . x l ab e l ( ’ Generation ’ ) x p l t . y l ab e l ( ’ Varians ’ ) p l t . t i t l e ( ’ Varians ␣ö ver ␣ t i d ’ ) p l t . g r i d (True ) p l t . l egend ( ) p l t . show ( ) An = math . prod ( an_l i s t ) print ( "An␣=" , An) A_full = [ 1 ] for a in an_l i s t [ : −1 ] : A_full . append ( A_full [ −1] ∗ a ) Cn = sum( A_full [ i ] ∗ cn_l i s t [ i ] for i in range ( len ( A_full ) ) ) print ( "Cn␣=" , Cn) EZ = 1 / An print ( "EZ" , EZ) q = 1 − (An + Cn) ∗∗ −1 print ( "q␣=" , q ) #pr in t ( f " P r o b a b i l i t y o f e x t i n c t i o n = {q ∗ 100 : .2 f }%") qn = q ∗∗ ( s tar tpop ) print ( f " Probab i l i t y ␣ o f ␣ e x t i n c t i o n ␣=␣{qn␣∗␣ 100 : . 2 f}%" ) print ( "qn␣=" , qn ) Bn = Cn / An print ( "Bn␣=" , Bn) Kod för att hämta relevant data från SCB. #Program som l ä ser data v ia SCBs API from pyscbwrapper import SCB import pandas as pd import numpy as np import re def get_populat ion_age_distr ibut ion ( gender , year ) : #Funktion som importerar å l d e r s f ö rde ln ing f ör g i v e r år och kön scb = SCB( ’ sv ’ , ’BE ’ , ’BE0101 ’ , ’BE0101A ’ , ’ BefolkningR1860N ’ ) ages = scb . ge t_var iab l e s ( ) [ ’ å l d e r ’ ] a = re . compile ( r ’ . ∗ ␣å r ’ ) age = l i s t ( f i l t e r ( a . match , ages ) ) scb . set_query ( å l d e r = age , kön = [ gender ] , t a b e l l i nn eh å l l =["Antal " ] , å r=[ str ( year ) ] ) xi scb_data = scb . get_data ( ) scb_uttag = scb_data [ ’ data ’ ] age_d i s t r ibut i on = [ ] for age in scb_uttag : age_d i s t r ibut i on . append ( f loat ( age [ " va lue s " ] [ 0 ] ) ) return age_d i s t r ibut i on def get_death_rates ( gender , year ) : #Funktion som importerar dö d s t a l f ö r g i v e t år och kön scb = SCB( ’ sv ’ , ’BE ’ , ’BE0101 ’ , ’ BE0101I ’ , ’ Dodstal ’ ) scb . ge t_var iab l e s ( ) ages = scb . ge t_var i ab l e s ( ) [ ’ å l d e r ’ ] a = re . compile ( r ’ . ∗ ␣å r ’ ) age = l i s t ( f i l t e r ( a . match , ages ) ) scb . set_query ( å l d e r = age , kön = [ gender ] , t a b e l l i nn eh å l l =["Antal " ] , å r=[ str ( year ) ] ) scb_data = scb . get_data ( ) scb_uttag = scb_data [ ’ data ’ ] death_rate = [ ] for data in scb_uttag : death_rate . append ( f loat ( data [ ’ va lue s ’ ] [ 0 ] ) / 1 0 0 0 ) return death_rate def get_fecundity ( year ) : #Funktion som importerar f r u k t s amhe t s t a l f ö r g i v e t år . scb = SCB( ’ sv ’ , ’BE ’ , ’BE0101 ’ , ’BE0101H ’ , ’FruktsamhetHVD ’ ) ages = scb . ge t_var i ab l e s ( ) [ ’ moderns␣å l d e r ’ ] a = re . compile ( r ’ . ∗ ␣å r ’ ) age = l i s t ( f i l t e r ( a . match , ages ) ) scb . set_query ( r eg i on = [ "Riket " ] , modernså l d e r = age , t ab e l l i nn eh å l l =[ ’ Fruktsamhetsta l ’ ] , å r=[ str ( year ) ] ) scb_data = scb . get_data ( ) scb_uttag = scb_data [ ’ data ’ ] fecundity_age_range = [ ] f e cund i ty = [ ] for f e cund i ty_va l s in scb_uttag : fecundity_age_range . append ( fecund i ty_va l s [ ’ key ’ ] [ 1 ] ) f e cund i ty . append ( f loat ( f ecund i ty_va l s [ ’ va lue s ’ ] [ 0 ] ) ) xii return f ecund i ty , fecundity_age_range #Kal lar funk t ionerna f ör a t t l a g ra önskad data death_rate = get_death_rates ( ’ kvinnor ’ , 2024) death_rate_men = get_death_rates ( ’män ’ , 2024) f e cund i ty = get_fecundity ( 2 0 2 4 ) [ 0 ] popu lat ion_dis t r ibut ion_female = get_populat ion_age_distr ibut ion ( " kvinnor " , 2024) populat ion_distr ibut ion_male = get_populat ion_age_distr ibut ion ( "män" , 2024) popu la t i on_d i s t r i bu t i on = np . array ( [ populat ion_dist r ibut ion_female , populat ion_distr ibut ion_male ] ) popu la t i on_d i s t r i bu t i on = np . t ranspose ( popu la t i on_d i s t r i bu t i on ) #Exporterar data t i l l en csv− f i l s . a . SCBs API in t e behö ver k a l l a s va r j e gång s imuler ingen kö rs df_popu lat ion_di s t r ibut ion = pd . DataFrame ( popu la t i on_d i s t r i bu t i on ) d f_popu lat ion_di s t r ibut ion . to_csv ( " populat ion_dist r ibut ion_2024 . csv " ) #Formaterar data death_rate = np . array ( death_rate ) death_rate_men = np . array ( death_rate_men ) f e cund i ty = l i s t (np . array ( f e cund i ty )/1000) #Exporterar data t i l l en csv− f i l df_populat ion_distr ibut ion_female = pd . DataFrame ( popu lat ion_dis t r ibut ion_female ) df_populat ion_distr ibut ion_male = pd . DataFrame ( populat ion_distr ibut ion_male ) df_populat ion_distr ibut ion_female . to_csv ( " populat ion_distr ibut ion_female_2024 . csv " ) df_populat ion_distr ibut ion_male . to_csv ( " populat ion_distr ibution_male_2024 . csv " ) df_death_rate_male = pd . DataFrame ( death_rate ) df_death_rate_male . to_csv ( "death_rate_male_2024 . csv " , index=False ) df_death_rate_female = pd . DataFrame ( death_rate ) df_death_rate_female . to_csv ( "death_rate_female_2024 . csv " , index=False ) df_fecundity = pd . DataFrame ( f e cund i ty ) df_fecundity . to_csv ( " fecundity_2024 . csv " , index=False ) Kod som skapar Leslie-matris och genomför simulering. import numpy as np import pandas as pd max_age = 128 # Sä t t e r en maxå lder , om någon ö v e r l e v e r h i t så dör de nä s ta år . # Skapar vek to r e r innehå l l a nd e s sanno l i khe t en a t t pers ån med å l d e r = index , # in t e ö v e r l e v e r å r e t surv iva l_rate_vector = np . z e r o s (max_age) survival_rate_vector_male = np . z e r o s (max_age) surv iva l_rate_vector = l i s t ( surv iva l_rate_vector ) survival_rate_vector_male = l i s t ( survival_rate_vector_male ) xiii # fruk t samhet svek tor , chans a t t en kvinna f år barn de t t a år . f ecund i ty_vector = np . z e r o s (max_age) # Datan är g iven i 5−å r s i n t e r v a l l , d e t t a kr ä vs f ör a t t i n t e r p o l e r a punkterna mel lan # i n t e r v a l l g r änserna death_rate_year_range = [ [ 0 , 0 ] , [ 1 , 4 ] , [ 5 , 9 ] , [ 1 0 , 1 4 ] , [ 1 5 , 1 9 ] , [ 2 0 , 2 4 ] , [ 2 5 , 2 9 ] , [ 3 0 , 3 4 ] , [ 3 5 , 3 9 ] , [ 4 0 , 4 4 ] , [ 4 5 , 4 9 ] , [ 5 0 , 5 4 ] , [ 5 5 , 5 9 ] , [ 6 0 , 6 4 ] , [ 6 5 , 6 9 ] , [ 7 0 , 7 4 ] , [ 7 5 , 7 9 ] , [ 8 0 , 8 4 ] , [ 8 5 , 8 9 ] , [ 9 0 , 9 5 ] ] # Lä ser data hämtad f r ån SCB death_rate = pd . read_csv ( "death_rate_female_2024 . csv " ) [ "0" ] . t o l i s t ( ) death_rate_men = pd . read_csv ( "death_rate_male_2024 . csv " ) [ "0" ] . t o l i s t ( ) fecundity_year_range = [ [ 1 5 , 1 9 ] , [ 2 0 , 2 4 ] , [ 2 5 , 2 9 ] , [ 3 0 , 3 4 ] , [ 3 5 , 3 9 ] , [ 4 0 , 4 4 ] , [ 4 5 , 4 9 ] ] #Lä ser data f r ån f i l f e cund i ty = pd . read_csv ( " fecundity_2024 . csv " ) [ "0" ] . t o l i s t ( ) #Ändrar format t i l l np . array death_rate = np . array ( death_rate ) death_rate_men = np . array ( death_rate_men ) #Konverterar f ör t o t a l f ruk tsamhet t i l l endast f ör dö t t r a r f e cund i ty = np . array ( f e cund i ty )∗0 .48673 # Ändrar datan f ör a t t f å den form v i v i l l ha . for range_index , y_range in enumerate( death_rate_year_range ) : for i in range ( y_range [ 0 ] , y_range [ 1 ] + 1 ) : surv iva l_rate_vector [ i ] = death_rate [ range_index ] survival_rate_vector_male [ i ] = death_rate_men [ range_index ] for range_index , y_range in enumerate( fecundity_year_range ) : for i in range ( y_range [ 0 ] , y_range [ 1 ] + 1 ) : f ecundi ty_vector [ i ] = f e cund i ty [ range_index ] #Sä t t e r dödschans t i l l 0 .5 där data saknas for index , r a t e in enumerate( surv iva l_rate_vector ) : i f r a t e < 0 .0000000001 : surv iva l_rate_vector [ index ] = 0 .5 for index , r a t e in enumerate( survival_rate_vector_male ) : i f r a t e < 0 .0000000001 : xiv survival_rate_vector_male [ index ] = 0 .5 #Skr i ve r om f ör a t t f å ö ver levnadschans i s t ä l l e t f ö r dödschans for index , r a t e in enumerate( surv iva l_rate_vector ) : surv iva l_rate_vector [ index ] = 1 − ra t e for index , r a t e in enumerate( survival_rate_vector_male ) : survival_rate_vector_male [ index ] = 1 − ra t e females_populat ion = pd . read_csv ( " populat ion_dist r ibut ion_2024 . csv " ) [ "0" ] . t o l i s t ( ) males_population = pd . read_csv ( " populat ion_dist r ibut ion_2024 . csv " ) [ "1" ] . t o l i s t ( ) # Skapar l i s t o r innehå l l a nd e s an ta l personer av var j e å l d e r f emales_populat ion = females_populat ion + (max_age−len ( females_populat ion ) ) ∗ [ 0 ] males_population = males_population + (max_age−len ( males_population ) ) ∗ [ 0 ] # Skapar Les l i e −matr i ser som diagona l e r där ö ver l e vnadsvek to rn utg ör d iagona l l e s l i e_mat r i x = np . diag ( surv iva l_rate_vector ) les l i e_matr ix_male = np . diag ( survival_rate_vector_male ) # Lägger t i l l en ny rad 0 , f ruk t samhe t s vek to r . l e s l i e_mat r i x = np . append ( [ l i s t ( f ecundi ty_vector ) ] , l i s t ( l e s l i e_mat r i x ) , ax i s=0) les l i e_matr ix_male = np . append ( [ l i s t ( f ecundi ty_vector ∗ 0 ) ] , l i s t ( les l i e_matr ix_male ) , ax i s=0) # Tar bor t s i s t a kolonnen , kanske ska l ägga t i l l en 0−kolonn i s t ä l l e t . l e s l i e_mat r i x = np . d e l e t e ( l e s l i e_matr ix , (−1) , ax i s=0) les l i e_matr ix_male = np . d e l e t e ( les l ie_matr ix_male , (−1) , ax i s=0) #Al lokera l i s t a f ör egenvärden , Beräkna ledande egenvä rde e i g s = [ ] e i g s . append (np . abs (max(np . l i n a l g . e i g ( l e s l i e_mat r i x ) [ 0 ] ) ) ) females_populat ion = np . array ( females_populat ion ) males_population = np . array ( males_population ) #Simulerar f ö r s t a s t e g e t genom a t t u t f öra ma t r i smu l t i p l i k a t i onen new_population = np . matmul ( l e s l i e_matr ix , females_populat ion ) new_population_male = np . matmul ( les l ie_matrix_male , males_population ) #Beräkna an ta l nyf ödda pojkar new_population_male [ 0 ] = 1.056∗ new_population [ 0 ] #Beräkna ledande egenvä rde e i g s . append (np . abs (max(np . l i n a l g . e i g ( l e s l i e_mat r i x ) [ 0 ] ) ) ) #Formatera r e s u l t a t e t f ö r datan i en matris populat ion = np . vstack ( ( females_populat ion , new_population ) ) xv population_male = np . vstack ( ( males_population , new_population_male ) ) # Hur l ång maxtid s imuler ingen ska ha sim_len = 500 # Här de f i n e ra s parametrar f ör hur fruktsamheten va r i e ra s dA = 1.2 mA = −0.25 sA = 1 phi = −np . a r c co s ( ( sA − dA)/mA) f = lambda t : dA + 1∗mA∗np . cos ( t ∗np . p i /11 + −6.9265) dec = lambda t : 1 − (0.75 −0.5)∗np . s q r t ( t ) inc = lambda t : 1 + (1 . 5 − 0 .75 )∗ np . s q r t ( t ) t = np . l i n s p a c e (0 , sim_len−2, sim_len −2) t_scaled = t /( sim_len − 2) vary_mu_factor = [ f ( x ) for x in range ( sim_len − 2 ) ] vary_mu_dec = dec ( t_scaled ) vary_mu_inc = inc ( t_scaled ) for i in range ( sim_len − 2 ) : # Simuleringen körs , ta bor t kommentar f ör a t t in t roducera sjunkande , # c y k l i s k t var ierande r e s p e k t i v e ökande fruk tsamhet # l e s l i e_mat r i x [ 0 ] = fecund i ty_vec tor ∗ vary_mu_dec [ i ] # l e s l i e_mat r i x [ 0 ] = fecund i ty_vec tor ∗ vary_mu_factor [ i ] # l e s l i e_mat r i x [ 0 ] = fecund i ty_vec tor ∗ vary_mu_inc [ i ] new_population_male = np . matmul ( les l ie_matrix_male , population_male [ −1]) new_population = np . matmul ( l e s l i e_matr ix , populat ion [ −1]) e i g s . append (np . abs (max(np . l i n a l g . e i g ( l e s l i e_mat r i x ) [ 0 ] ) ) ) new_population_male [ 0 ] = 1.056∗ new_population [ 0 ] new_population [ 0 ] = new_population [ 0 ] population_male = np . vstack ( ( population_male , new_population_male ) ) populat ion = np . vstack ( ( populat ion , new_population ) ) #Progress bar print ( f " { ( ( i ␣+␣3)/ ␣sim_len ) ∗ 1 0 0 : . 0 f}%" ) #Exportera r e s u l t a t , ändra namn basera t på f a l l df_female = pd . DataFrame ( populat ion ) df_male = pd . DataFrame ( population_male ) df_eigs = pd . DataFrame ( e i g s ) df_female . to_csv ( " female_simulat ion_fi le_varying_500 . csv " , index=False ) df_male . to_csv ( "male_simulation_fi le_varying_500 . csv " , index=False ) df_eigs . to_csv ( " e igs_cyc_test . csv " , index = False ) xvi Inledning Bakgrund Syfte Avgränsningar Etiska aspekter Teori Galton–Watsons förgreningsprocess Sannolikhetsgenererande funktioner PGF med fixpunktsekvationen PGF med fixpunktsiteration LF–fördelningen Leslie–matrisen Simuleringar Simuleringar via Galton–Watson Parametrar för enkel Galton–Watson simulering Enkel Galton–Watson Galton–Watson i varierande miljöer med LF–fördelning Leslie–modell Diskussion Slutsatser Galton–Watson modeller Slutsatser Leslie–modellen Modellernas för– och nackdelar Effekter om resultaten blir verklighet Användande av AI Appendix 1 – teori Appendix 2 – Simuleringar Galton–Watson i varierande miljöer Kurvor för varierande Appendix 3 – källkod