R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Karkea väestöennuste

Tilastokeskus muodostaa ja päivittää Suomen väestöennusteen tietyin välein. Olen pariin otteeseen lukenut mielipidekirjoituksia, joissa väestöennustetta arvostellaan rankasti. Väestöennusteita on mahdollista laatia varsin monilla tavoilla, ja Tilastokeskuksen käyttämä menetelmä on huomattavan yksityiskohtainen. Havainnollistan seuraavassa väestöennusteen laatimista huomattavasti yksinkertaisemmalla mallilla sen selittämiseksi, miten väestöennuste voidaan laatia, ja mitkä seikat siihen vaikuttavat.

Periaatteessa väestöennuste on helppo laatia. Ennusteen pohjana on väestön ikäjakauma. Ikäjakauman ja väestön kokonaismäärän kehitykseen vaikuttavat kolme tekijää, jotka ovat syntyvyys, kuolevuus ja muuttoliike. Muuttoliike voidaan edelleen jakaa maahan muuttoon ja maasta muuttoon. Seuraavassa käytettävän mallin pohjaksi on valittu Suomen väestön ikäjakauma vuonna 2010. Lisäksi on selvitetty nykyinen kuolleisuuden ja muuttoliikkeen ikäjakauma sekä keskimääräinen hedelmällisyys. Tätä esimerkin omaista väestöennustetta laadittaessa on oletettu, että muuttoliike säilyy myös tulevaisuudessa samansuuruisena kuin nykyisinkin, ja kuolleisuuden suhteellinen osuus sekä kokonaishedelmällisyys säilyvät vakioina. Eroja Tilastokeskuksen käyttämään menetelmään on siis useita, esimerkiksi kuolleisuuden mallintamisessa.

Näillä oletuksilla toteutettu function, joka laskee edellisen vuoden tulosten perusteella seuraavan vuoden väestön näyttää seuraavalta:

 
pop<-function(t0=dat$väestö, emigration=TRUE, immigration=TRUE) {
   syntyneet<-sum(t0[15:45]*0.02945016)
   t1<-t0-t0*dat$kuolema
   t1<-t1[-101]
   t1<-c(syntyneet, t1)
   if(immigration) {
      t1<-t1+dat$maahan
   }
   if(emigration) {
      t1<-t1-t0*dat$maasta
   }
   t1
}

Funktio tarvitsee toimiakseen datakehikon, josta ensimmäisen vuoden lähtötiedot löytyvät. Tämä saadaan luotua suoraan R:ään seuraavalla komennolla:

source("http://koti.mbnet.fi/tuimala/tiedostot/dat.R")

Kun väestöennusteisiin tarvittava funktio ja data on onnistuneesti luotu, voidaankin ajaa itse simulatiot. Seuraava koodi ajaa simulaatiot käyttäen kolmea eri skenariota, joista kahdessa on tehty muutoksia muuttoliikkeen suuntaan.

m<-matrix(ncol=51, nrow=101, data=NA)
colnames(m)<-paste("V", 2010:2060, sep="")
rownames(m)<-paste("I", 0:100, sep="")
m[,1]<-dat$väestö
for(i in 2:51) {
   m[,i]<-pop(m[,i-1])
}
 
par(mar=c(4,6,4,2))
plot(x=2010:2060, y=colSums(m), type="n", ylim=c(4000000, max(colSums(m))+200000), las=1, xlab="Vuosi", ylab="", main="Suomen väestöennuste")
grid(col="grey75", lty=1)
mtext(side=2, text="Väestö", line=5)
lines(x=2010:2060, y=colSums(m), col="black", lwd=4, lty=1)
 
m<-matrix(ncol=51, nrow=101, data=NA)
colnames(m)<-paste("V", 2010:2060, sep="")
m[,1]<-dat$väestö
for(i in 2:51) {
   m[,i]<-pop(m[,i-1], immigration=FALSE)
}
 
lines(x=2010:2060, y=colSums(m), lwd=4, col="grey50", lty=1)
 
m<-matrix(ncol=51, nrow=101, data=NA)
colnames(m)<-paste("V", 2010:2060, sep="")
m[,1]<-dat$väestö
for(i in 2:51) {
   m[,i]<-pop(m[,i-1], emigration=FALSE, immigration=FALSE)
}
 
lines(x=2010:2060, y=colSums(m), col="red", lwd=4, lty=1)
 
legend(x="bottomleft", lty=1, lwd=4, col=c("black","grey50","red"), legend=c("Perusmalli","Ei maahan muuttoa","Ei maasta tai maahan muuttoa"), bty="n", ncol=1)

Suomi on maa, johon suuntautuu tällä hetkellä nettomuuttoa eli Suomeen muuttaa enemmän henkilöitä kuin täältä muuttaa pois. Alla olevasta kaaviosta, jonka yllä esitetty R-koodi tuottaa, on helppo havaita, että muutamien vuosien kuluttua kuolleisuus ylittää syntyvyyden, ja väkiluku kääntyy laskuun, ellei muuttoliike jatku jokseenkin nykyisellä tasolla. Muuttoliikkeen suuruuden arvioiminen kymmeniä vuosia eteenpäin, kuten tässä ennusteessa on tehty, on tietenkin hyvin vaikeaa, koska tilanne voi muuttua nopeastikin suuntaan tai toiseen.

Tämän simulaation tai ennusteen antamat väkilukuarviot jäävät oleellisesti pienemmiksi kuin Tilastokeskuksen ennusteen arviot, sillä tässä ei ole huomioitu esimerkiksi todennäköisesti edelleenkin jatkuvaa eliniän voimakasti pitenemistä. Väestöennusteen tekeminen on kuitenkin periaatteeltaan ja pääpiirteissään melko yksinkertainen prosessi, ja tehtävissä melko yksinkertaisin työkaluinkin, joskin ennustetta on mahdollista huomattavasti tarkentaa huomioimalla väestössä tapahtuvia muutoksia muun muassa pienipiirteisemmällä tasolla kuin mitä tässä ennusteessa on tehty. Tilastokeskuksen ennuste on laadittu juuri tällaisia tarkempia tietoja käyttäen, ja siten kuvastanee ainakin muutamien vuosien aikajänteellä väkiluvun kehitystä huomattavasti paremmin kuin tämä yksinkertainen menetelmä. Oleellista on kuitenkin muistaa huomioida kaikki väkiluvun kehitykseen vaikuttavat kolme erillistä tekijää (syntyvyys, kuolleisuus ja muuttoliike) niin ennusteessa kuin sitä tulkittaessakin.


Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *