R-ohjelmointi.org
Tilastotieteellistä ohjelmointia R-kielellä
Valtion ja kuntien työntekijöiden määrä
Tämän aamun (14.4.2013) Helsingin Sanomien Torsti Tietää -palstalla oli kysymys julkisen sektorin työntekijöiden määristä. Kysyjä epäili, että julkisen sektorin, siis kuntien ja valtion, työntekijöiden määrä kaikista työssäkäyvistä olisi kasvanut vuoden 1970 10 %:sta vuoden 2013 32 %:iin. Torsti viittaa valtion työmarkkinalaitoksen, KT Kuntatyönantajien ja Tilastokeskuksen lukuihin, joiden mukaan kasvu ei ole ollut ihan näin suurta, vaan noin 5-9% prosenttiyksikköä. Tutustutaanpa tilastoihin hieman tarkemmin, mutta todettakoon heti, että Torstin vastaus on kyllä kohdallaan.
Valtion työmarkkinalaitoksen aineisto löytyy Valtiovarainministeriön sivuilta. Vastaavasti kuntien henkilöstörakenteesta kertova aineisto löytyy Tilastokeskuksen sivuilta.
Tarkastellaanpa ensin kaikkia Suomen töissä käyviä kansalaisia. Suurin osa heistä oli vuonna 2011 töissä yksityisellä sektorilla. Valtion palveluksessa oli vajaa neljä prosenttia ja kuntien palveluksessa hieman yli 20 prosenttia kaikista töissä käyvistä henkilöistä.
Yksityisellä sektorilla oli töissä noin 1 600 000 miljonaa työntekijää, kunnilla noin 440 000, ja valtiolla noin 85 000 työntekijää. Tästä puuttuvat vielä kirkon noin 21 000 työntekijää. Yhteensä julkisella sektorilla työskentelee siis hieman yli neljännes koko Suomen työntekijöistä. Torstin vastaus näyttää siis olevan kohdallaan.
Kunnilla sosiaali- ja terveyspalvelut ja koulutus työllistävät suurimman osan henkilöstöstä. Myös julkinen hallinto työllistää runsaasti. Sosiaali- ja terveyspalvelut ovat kasvaneet voimakkaasti vuodesta 1975 vuoteen 1990, ja sen jälkeen kasvu on ollut suhteellisen pientä, vain joitakin kymmeniä tuhansia uusia työntekijöitä.
Valtiolla tällä hetkellä suurin työllistäjä on turvallisuuspalvelut, siis puolustusvoimat ja poliisitoimi. Yliopistot eivät enää kuulu valtiotyönantajiin, joten ne eivät esiinny kuvassa vuoden 2010 jälkeen. Nykyisin turvallisuuspalveluiden lisäksi suurimpia työllistäjiä valtiolla ovat elinkeinoelämän palvelut ja sektoritutkimuslaitokset.
OECD:n tilaston mukaan Suomen julkisen sektorin koko on moniin muihin maihin verrattuna selkeästi suurempi, mutta kuitenkin selkeästi pienempi kuin Norjassa, Tanskassa ja Ruotsissa. Norjassa ja Tanskassa julkisen sektorin koko vuonna 2008 oli miltei 30%. Saksassa julkisen sektorin koko oli puolestaan vain noin 10%.
Tarkempia tietoja siitä, mihin kuntien rahoitus menee, saa esimerkiksi Kuntaliiton sivuilta. Kuntaliiton tekemä visualisointi kuvaa hyvin kulujen jakaumaa eri momenteille eli sitä, mitä vastinetta kunnallisveroilleen saa. Verokuitti-palvelu puolestaan antaa näkymän siihen mitä valtiolle kerätyillä verorahoilla tehdään.
Ylläolevien kuvien tuottamiseen käytetty R-koodi löytyy alta. Se toimii esimerkkinä mm. Excel-tiedostojen lataamiseen verkosta ja niiden tuomiseen R:ään ODBC-yhteyden kautta. Muitakin vaihtoehtojen saman asian toteuttamiseen on, ja niitä on esitelty mm. R-Wikissä.
# Ladataan data download.file("http://www.vm.fi/vm/fi/04_julkaisut_ja_asiakirjat/04_kuviot_ja_tilastot/06_valtio_tyonantajana/08_valtion_henkilosto/henkilosto.xls", "henkilosto.xls") library(RODBC) excel.connect <- odbcConnectExcel("henkilosto.xls") dat <- sqlFetch(excel.connect, '1#1#1', na.strings=c("")) odbcClose(excel.connect) # Käsitellään data dat2<-t(na.omit(t(dat[6:47,1:34]))) dat3<-dat2[,c(1, 3, 4, 5, 9, 16, 17)] colnames(dat3)<-c("vuosi", "työvoima", "työlliset", "valtio", "kunnat", "vientiteollisuus", "yksit.kotimarkkinat") dat4<-apply(dat3, 2, as.numeric) d<-data.frame(dat4) d$tp<-1-d$työllisyys/d$työvoima d$vp<-d$valtio/d$työlliset d$kp<-d$kunnat/d$työlliset d$yp<-(d$vientiteollisuus+d$yksit.kotimarkkinat)/d$työlliset d$yksit<-rowSums(d[,6:7]) # Plotataan data library(RColorBrewer) par(mar=c(5,5,5,6)) matplot((d[8:10]), type="l", lwd=6, lty=1, axes=F, ylab="", ylim=c(0,1), xaxs="i", yaxs="i", col=brewer.pal(8, "Dark2")[c(5,3,2)]) abline(h=c(0.2, 0.4, 0.6, 0.8, 1), col="grey85") abline(v=c(5,10,15,20,25,30,35,40), col="grey85") matplot((d[8:10]), type="l", lwd=6, lty=1, axes=F, ylab="", ylim=c(0,1), add=T, col=brewer.pal(8, "Dark2")[c(5,3,2)]) axis(side=2, las=1, at=seq(0,1,0.2), labels=seq(0, 100, 20)) axis(side=1, las=2, at=1:42, labels=1970:2011) mtext(side=1, line=4, text="Vuosi") mtext(side=2, line=4, text="Työllisten osuus (%)") mtext(side=4, line=1, at=d[42, 8], text="Valtio", las=1) mtext(side=4, line=1, at=d[42, 9], text="Kunnat", las=1) mtext(side=4, line=1, at=d[42, 10], text="Yksityinen", las=1) title("Työnantajasektoreiden osuus kaikista työllisistä") par(mar=c(5,5,5,6)) matplot(d[c(4,5,12)], type="l", lwd=6, lty=1, axes=F, ylab="", xaxs="i", yaxs="i", col=brewer.pal(8, "Dark2")[c(5,3,2)], ylim=c(0,1650)) abline(h=c(0.2, 0.4, 0.6, 0.8, 1), col="grey85") abline(v=c(5,10,15,20,25,30,35,40), col="grey85") matplot((d[c(4,5,12)]), type="l", lwd=6, lty=1, axes=F, ylab="", add=T, col=brewer.pal(8, "Dark2")[c(5,3,2)], ylim=c(0,1650)) axis(side=2, las=1, at=seq(0,max(d[,12]), 100), labels=seq(0,max(d[,12]), 100)) axis(side=1, las=2, at=1:42, labels=1970:2011) mtext(side=1, line=4, text="Vuosi") mtext(side=2, line=4, text="Työllisten lukumäärä") mtext(side=4, line=1, at=d[42, 4], text="Valtio", las=1) mtext(side=4, line=1, at=d[42, 5], text="Kunnat", las=1) mtext(side=4, line=1, at=d[42, 12], text="Yksityinen", las=1) title("Työllisten lukumäärä työnantajasektoreittain") # Ladataan data virastotyyppi<-structure(list(Virastotyyppi = structure(c(13L, 8L, 11L, 10L, 7L, 4L, 2L, 12L, 5L, 1L, 3L, 9L, 6L), .Label = c("Alue- ja ympäristöpalvelut", "Elinkeinotoiminnan palvelut", "Kulttuuripalvelut", "Liikenne ja liikennepalvelut", "Ministeriötason toiminta", "Muut toiminnat", "Oikeustoimi", "Opetus- ja koulutuspalvelut", "Sosiaali- ja työvoimapalvelut", "Turvallisuustoiminta", "Tutkimustoiminta", "Valtiovarainh.sekä vak. ja rah.palv.", "Yliopistokoulutus"), class = "factor"), X2000 = c(28293L, 2776L, 9782L, 35612L, 6160L, 7692L, 9502L, 8020L, 6468L, 5084L, 1079L, 1617L, 1636L), X2001 = c(29357L, 2859L, 10055L, 36406L, 6183L, 3449L, 9301L, 8001L, 6206L, 4509L, 1048L, 1629L, 1538L), X2002 = c(30395L, 2978L, 10136L, 36942L, 6235L, 3435L, 9547L, 8126L, 6362L, 4794L, 1085L, 1735L, 1488L), X2003 = c(30947L, 3002L, 9887L, 37392L, 6217L, 3501L, 9772L, 8082L, 6384L, 4703L, 1092L, 1768L, 1438L ), X2004 = c(31336L, 3049L, 9834L, 37428L, 6168L, 2476L, 9992L, 8075L, 6473L, 4688L, 1149L, 1846L, 1397L), X2005 = c(31385L, 3073L, 9869L, 37240L, 6095L, 2416L, 10121L, 7927L, 6630L, 4684L, 1111L, 1925L, 1345L), X2006 = c(31420L, 3174L, 9431L, 37036L, 5621L, 2524L, 10728L, 7887L, 6560L, 4510L, 1039L, 1986L, 1302L ), X2007 = c(32169L, 2935L, 9426L, 35858L, 5966L, 2435L, 10791L, 7763L, 6180L, 4348L, 1108L, 2029L, 1192L), X2008 = c(31950L, 2861L, 9207L, 35540L, 5955L, 2371L, 10864L, 7690L, 6124L, 3922L, 1230L, 2085L, 1132L), X2009 = c(32797L, 2481L, 9210L, 35571L, 6402L, 2373L, 11110L, 7641L, 5987L, 3944L, 1230L, 2129L, 1048L ), X2010 = c(NA, 1544, 9245, 35319, 6168, 1447, 13911, 6831, 5744, 2269, 1209, 1674, 1022), X2011 = c(NA, 1481, 9206, 35149, 6118, 1460, 13577, 6574, 5656, 2180, 1094, 1598, 979)), .Names = c("Virastotyyppi", "X2000", "X2001", "X2002", "X2003", "X2004", "X2005", "X2006", "X2007", "X2008", "X2009", "X2010", "X2011"), row.names = c(NA, -13L), class = "data.frame") #Plotataan data par(mar=c(5,5,5,12)) matplot(t(log10(virastotyyppi[,2:13])), type="l", lty=1, lwd=6, col=brewer.pal(11, "Set3"), axes=F, ylab="", xaxs="i", yaxs="i",ylim=c(3,4.7)) abline(h=c(3,3.5,4,4.5), col="grey85") abline(v=c(2,4,6,8,10), col="grey85") matplot(t(log10(virastotyyppi[,2:13])), type="l", lty=1, lwd=6, col=brewer.pal(11, "Set3"), axes=F, ylab="", xaxs="i", yaxs="i",ylim=c(3,4.7), add=T) axis(side=1, las=2, at=1:12, labels=2000:2011) mtext(side=1, line=4, text="Vuosi", las=1) axis(side=2, las=1, at=log10(c(1000, 2000, 3000, 5000, 10000, 20000, 30000, 50000)), labels=c(1000, 2000, 3000, 5000, 10000, 30000, 20000, 50000)) mtext(side=2, line=4, text="Työllisten lukumäärä") title("Valtion työllisten lukumäärä virastotyypeittäin") mtext(side=4, line=0.2, at=log10(virastotyyppi[2:13,13]), text=virastotyyppi$Virastotyyppi[2:13], las=1, cex=0.75) mtext(side=4, line=0.2, at=log10(virastotyyppi[1,11]), text="Yliopistokoulutus", las=1, cex=0.75) # Ladataan data kunnat<-structure(list(toimiala = structure(c(10L, 11L, 1L, 2L, 3L, 4L, 5L, 6L, 13L, 12L, 8L, 7L, 9L), .Label = c("80_82 Muut tukipalvelut", "82 Hallinto- ja tukipalvelut liike-elämälle", "841_842 Julkinen hallinto", "85 Koulutus", "86 Terveyspalvelut", "87_88 Sosiaalipalvelut", "90_91 Kulttuuritoiminta", "90_92 Kulttuuritoiminta ja rahapelit", "93 Urheilu-, huvi- ja virkistyspalvelut", "F Rakentaminen", "M_N Ammatillinen, tieteellinen ja tekninen toiminta", "R Taiteet, viihde ja virkistys", "R_T Muut palvelut"), class = "factor"), X1975 = c(21L, 0L, 0L, 0L, 395L, 646L, 791L, 415L, 77L, 77L, 45L, 45L, 32L), X1976 = c(21L, 0L, 0L, 0L, 420L, 692L, 874L, 473L, 85L, 85L, 50L, 50L, 35L), X1977 = c(24L, 0L, 0L, 0L, 446L, 730L, 894L, 510L, 90L, 90L, 53L, 53L, 37L), X1978 = c(23L, 0L, 0L, 0L, 446L, 755L, 948L, 556L, 99L, 99L, 58L, 58L, 41L), X1979 = c(26L, 0L, 0L, 0L, 474L, 780L, 988L, 600L, 109L, 109L, 64L, 64L, 45L), X1980 = c(26L, 0L, 0L, 0L, 500L, 797L, 1021L, 646L, 110L, 110L, 65L, 65L, 45L), X1981 = c(29L, 0L, 0L, 0L, 547L, 821L, 1062L, 680L, 117L, 117L, 68L, 68L, 49L), X1982 = c(30L, 0L, 0L, 0L, 569L, 821L, 1118L, 714L, 124L, 124L, 73L, 73L, 51L), X1983 = c(30L, 0L, 0L, 0L, 576L, 833L, 1145L, 754L, 136L, 136L, 80L, 80L, 56L), X1984 = c(29L, 0L, 0L, 0L, 566L, 832L, 1189L, 814L, 144L, 144L, 85L, 85L, 59L), X1985 = c(29L, 0L, 0L, 0L, 563L, 848L, 1230L, 862L, 153L, 153L, 90L, 90L, 63L), X1986 = c(30L, 0L, 0L, 0L, 574L, 857L, 1261L, 903L, 160L, 160L, 94L, 94L, 66L), X1987 = c(30L, 0L, 0L, 0L, 583L, 874L, 1299L, 953L, 169L, 169L, 99L, 99L, 70L), X1988 = c(31L, 0L, 0L, 0L, 601L, 888L, 1317L, 1004L, 174L, 174L, 102L, 102L, 72L), X1989 = c(31L, 0L, 0L, 0L, 609L, 909L, 1328L, 1067L, 176L, 176L, 103L, 103L, 73L), X1990 = c(31L, 4L, 0L, 0L, 609L, 913L, 1341L, 1094L, 177L, 177L, 104L, 104L, 73L), X1991 = c(33L, 4L, 0L, 0L, 624L, 915L, 1339L, 1108L, 177L, 177L, 104L, 104L, 73L), X1992 = c(34L, 4L, 0L, 0L, 584L, 889L, 1302L, 1061L, 174L, 174L, 102L, 102L, 72L), X1993 = c(34L, 4L, 0L, 0L, 568L, 858L, 1225L, 990L, 151L, 151L, 88L, 88L, 63L), X1994 = c(33L, 4L, 0L, 0L, 564L, 860L, 1222L, 992L, 149L, 149L, 87L, 87L, 62L), X1995 = c(33L, 4L, 0L, 0L, 582L, 913L, 1240L, 1003L, 155L, 155L, 91L, 91L, 64L), X1996 = c(36L, 4L, 0L, 0L, 598L, 956L, 1258L, 1044L, 160L, 160L, 94L, 94L, 66L), X1997 = c(60L, 4L, 0L, 0L, 661L, 983L, 1268L, 1064L, 164L, 164L, 96L, 96L, 68L), X1998 = c(58L, 4L, 0L, 0L, 647L, 988L, 1266L, 1055L, 159L, 159L, 93L, 93L, 66L), X1999 = c(55L, 4L, 0L, 0L, 652L, 997L, 1263L, 1052L, 158L, 158L, 93L, 93L, 65L), X2000 = c(52L, 4L, 0L, 0L, 657L, 1005L, 1291L, 1062L, 159L, 159L, 93L, 93L, 66L), X2001 = c(53L, 4L, 0L, 0L, 671L, 1015L, 1319L, 1093L, 163L, 163L, 95L, 95L, 68L), X2002 = c(56L, 27L, 23L, 23L, 686L, 1033L, 1349L, 1111L, 165L, 165L, 97L, 97L, 68L), X2003 = c(51L, 16L, 12L, 12L, 712L, 1051L, 1365L, 1103L, 164L, 164L, 96L, 96L, 68L), X2004 = c(49L, 26L, 22L, 22L, 719L, 1060L, 1375L, 1110L, 163L, 163L, 95L, 95L, 68L), X2005 = c(48L, 29L, 25L, 25L, 718L, 1047L, 1389L, 1116L, 163L, 163L, 95L, 95L, 68L), X2006 = c(47L, 30L, 26L, 26L, 716L, 1050L, 1395L, 1138L, 161L, 161L, 94L, 94L, 67L ), X2007 = c(43L, 43L, 39L, 39L, 721L, 1040L, 1392L, 1150L, 158L, 158L, 93L, 93L, 65L), X2008 = c(39L, 58L, 54L, 54L, 721L, 1025L, 1407L, 1190L, 162L, 162L, 95L, 95L, 67L), X2009 = c(43L, 69L, 65L, 65L, 709L, 1000L, 1409L, 1209L, 158L, 158L, 95L, 95L, 63L), X2010 = c(42L, 83L, 79L, 79L, 700L, 1008L, 1402L, 1187L, 159L, 159L, 96L, 96L, 63L), X2011 = c(41L, 82L, 78L, 78L, 706L, 1013L, 1409L, 1209L, 159L, 159L, 97L, 97L, 62L )), .Names = c("toimiala", "X1975", "X1976", "X1977", "X1978", "X1979", "X1980", "X1981", "X1982", "X1983", "X1984", "X1985", "X1986", "X1987", "X1988", "X1989", "X1990", "X1991", "X1992", "X1993", "X1994", "X1995", "X1996", "X1997", "X1998", "X1999", "X2000", "X2001", "X2002", "X2003", "X2004", "X2005", "X2006", "X2007", "X2008", "X2009", "X2010", "X2011"), class = "data.frame", row.names = c(NA, -13L)) kunnat<-kunnat[-c(9,10,12),] # Plotataan data par(mar=c(5,5,5,12)) matplot(t(kunnat[,2:38]*100), type="l", lty=1, lwd=6, col=brewer.pal(11, "Set3"), axes=F, ylab="", xaxs="i", yaxs="i", ylim=c(0, 150000)) abline(h=seq(0,150000,25000), col="grey85") abline(v=seq(1,37,5), col="grey85") matplot(t(kunnat[,2:38]*100), type="l", lty=1, lwd=6, col=brewer.pal(11, "Set3"), axes=F, ylab="", xaxs="i", yaxs="i", ylim=c(0, 150000), add=TRUE) axis(side=1, las=2, at=1:37, labels=1975:2011) axis(side=2, las=1, at=seq(0,150000,25000), labels=c("0","25000","50000","75000","100000","125000","150000")) mtext(side=4, at=kunnat[,38]*100, text=kunnat$toimiala, las=1, cex=0.75) mtext(side=1, line=4, text="Vuosi", las=1) mtext(side=2, line=4, text="Työllisten lukumäärä") title("Kuntien työllisten lukumäärä palvelualoittain") |
Toivoisin näiden käyrästöjen saattamnista ajantasaalle eli vuoteen 2015.
Tämän visualisoinnin päivittäminen on hankalaa, koska Tilastokeskus ei enää tuota tätä vastaavaa tilastoa samassa muodossa. Tulokset pitäisi koota useammasta lähteestä.
Valtiovarainministeriö julkaisee ajantasaista yhteenvetotilastoa valtion ja kuntien työntekijöiden määristä. Uusin julkaisu on linkissä http://vm.fi/documents/10623/307723/1.1.1+Ty%C3%B6llinen+ty%C3%B6voima+ja+palkansaajat+sektoreittain+1970+-+2014.pdf/fd423e02-c0e8-4fd5-a27d-2e683bd3077a.
Lisäksi Valtion työntekijöiden määrän kehitystä voi seurata Netrasta, joka Valtiokonttorin ylläpitämä tilastopalvelu. Uusimman tilanteen mukaan (lokakuu 2015, http://www.netra.fi/ibmcognos/cgi-bin/cognosisapi.dll?b_action=xts.run&m=portal/cc.xts&m_tab=i53087154BD2544878BEB144470F89136) Valtion työntekijöiden määrä vuonna 2015 on 73919 eli se on vähentynyt viime vuodesta n. 6000 henkilöä eli 6,75 %.
Kuntatyönantajat julkaisee puolestaan kuntien työntekijöiden lukumäärin kehityksestä kertovaa tilastoa. Uusin päivitys on sivulla http://www.kuntatyonantajat.fi/fi/ajankohtaista/tilastot/henkilosto/Henkilostomaaran_kehitys/Sivut/default.aspx. Kyseisen tilaston mukaan kunta-alalla työskentelee 423 000 henkilöä. Määrä on vähentynyt viime vuodesta 6000 henkeä eli noin 1.4 %.
Julkiseen sektoriin luetaan tyypillisesti myös seurakunnat, joissa työskentelee evankelis-luterilaisen kirkon sakastin mukaan n. 20000 henkilöä vuonna 2014 (http://sakasti.evl.fi/sakasti.nsf/sp?open&cid=Content4276D4). Ortodoksisen kirkon työntekijöiden määrää en onnistunut löytämään.
Valtion budjettitalouteen kuuluvat myös yliopistot, joissa työskenteli vuonna 2014 n. 32500 henkilöä (http://www.sivistystyonantajat.fi/tiedostopankki/272/tilastojulkaisu_2014_yliopistot.pdf).
Lisäksi julkiseen sektoriin luetaan tyypillisesti myös valtionyhtiöt, joita on useita (https://fi.wikipedia.org/wiki/Luettelo_Suomen_valtionyhti%C3%B6ist%C3%A4). Näiden palveluksessa on yhteensä n. 214 000 henkilöä (http://vnk.fi/omistajaohjaus/valtioenemmistoiset-yhtiot-ja-valtion-osakkuusyhtiot).
Lopuksia, Tilastokeskuksen työvoimatutkimuksen (http://www.tilastokeskus.fi/til/tyti/2015/09/tyti_2015_09_2015-10-20_tau_009_fi.html) mukaan julkisella sektorilla oli syyskuussa 2015 yhteensä 698 000 henkilöä, joista 135 000 valtiolla, ja 564 000 kunnilla.
Niin kun osa valtion ja kuntien laitoksista on muutettu ”liikelaitoksisksi” jolloin ne eivat nay julkis sektorin tyontekijoina.. koska julkislaitoksia on kikkailtu eri nimillä toimiviksi keinotekoisiksi liikelaitoksiksi, jossa ei kuitenkaan ole kenenkaan muun rahaa kiinni toiminnassa kuin julkista..
kikkauåilu tehtiin tilastojen kaunistamiseksi,
Löytyykö mistään tilastoa julkisen sektorin rahoittamasta henkilöstömäärästä? Julkinen sektori on ulkoistanut ja liikelaistostanut paljon toimintojaan viime vuosikymmeninä. Tämä henkillöstö ei näy annetuissa tilastoissa.
Tilastokeskuksen työssäkäyntitilasto (http://pxnet2.stat.fi/PXWeb/pxweb/fi/StatFin/StatFin__vrm__tyokay/050_tyokay_tau_105.px/) vastannee tarkimmin kysymykseesi. Ei sieltäkään saa esimerkiksi ulkoistettujen palveluiden henkilöstömäärää, mutta liikelaitosten henkilöstömäärä pitäisi olla sijoitettuna oikeaan sektoriin. Esimerkiksi tilaston valtiosektori sisältää mm. valtion virastojen virkamiehet, yliopistot ja ilmeisesti myös esimerkiksi sosiaaliturvarahastot.