perjantai 16. syyskuuta 2016

Verohallinnon avoimen datan tarkastelua

Tässä tekstissä tutkin Verohallinnon avointa dataa, josta löytyvät tiedot julkisten yhteisöjen tuloverotuksesta vuodelta 2014. Datasta löytyvät mm. y-tunnus, verotuskunta, verotettavat tulot, maksuunpannut verot, ennakkoverot, veronpalautukset sekä jäännösverot. Hyödynnän lisäksi verovelkarekisteriä, josta löytyy tieto, onko yrityksellä verovelkaa yli 10000 euroa. Haluan erityisesti selvittää, onko jäännösverolla ja verovelalla yhteyttä, eli toimiiko jäännösvero indikaattorina tulevaisuuden verovelalle. Suuri jäännösvero voi kertoa yrityksen maksuvaikeuksista tai siitä, että yrityksen tulos on ylittänyt odotukset, jolloin ennakkoveron olisi pitänyt olla suurempi. Toisaalta tällöin yritys olisi voinut maksaa puuttuvat ennakkoveronsa ennakontäydennysmaksuna, jolloin korollista jäännösveroa ei olisi syntynyt. Lisätietoa ennakkoverotuksesta löytyy mm. Verohallinnon sivuilta täältä.

Rajataan tarkastelu aluksi yrityksiin, joilla on verotettavaa tuloa yli 10000 euroa. Näin saadaan aineistoa rajattua suurempiin yrityksiin ja niihin, joilla on jäännösveroa. Lasketaan sitten yhteisö- ja jäännösveroprosentti seuraavasti:

R-koodi:

data <- read.csv(file.choose(), header=F,sep=";",dec=",",skip=1)
colnames(data) <- c("Verovuosi","Ytunnus","Verovelvollisennimi","Verotuskunta","Verotettavatulo","Maksuunpannutverotyhteensa","Ennakotyhteensa", "Veronpalautus","Jaannosvero")
data1 <- data[data$Verotettavatulo>10000&data$Maksuunpannutverotyhteensä>0,]
data1$verotusuhdekaikki <- data1$Maksuunpannutverotyhteensa/data1$Verotettavatulo*100
data1$jaannossuhdekaikki <- data1$Jaannosvero/data1$Maksuunpannutverotyhteensä*100

Katsotaan yhteisöjen tuloveroprosenttien persentiilejä ja nähdään, että mukana on myös yrityksiä, joilla yhteisöveroprosentti on reippaasti yli 20.



Katsotaan vielä histogrammia. Rajataan tarkastelu yrityksiin, joilla tuloveroprosentit ovat välillä 15 ja 30. Yritysten määrä tippuu 57816:sta 57113:een.




Lasketaan seuraavaksi kunnille prosenttiosuudet, joista selviävät, kuinka monta prosenttia kunnan yrityksistä on saanut yli 50%:n verojäämän. Tätä varten tehtään funktio, jota käytetään yhdessä lapply-komennon kanssa. Ennen funktiota muodostetaan uusi dataframe, jossa ovat vain kuntien nimet. Tätä varten pitää Verotuskunta-muuttuja ensin jakaa kahteen osaan, koska se sisältää sekä kuntakoodin että nimen. Tällainen kahtiajako on kätevä tehdä reshape-pakkauksen transform-komennolla.

install.packages("reshape")  # Tehdään muuttujan kahtiajako
library(reshape)
data3 = transform(data3, verotuskunta = colsplit(data3$Verotuskunta, split = " ", names = c('numeric', 'nimi','koodi')))

data4 <- data.frame(unique(data3$verotuskunta.nimi)) # Muodostetaan uusi dataframe, jossa kuntien nimet vain kerran
colnames(data4) <- "Kunta"
data4$Kunta <- as.character(data4$Kunta)

osuus <- function(i) {                                   # Tehdään funktio
a <- length(data3$verotuskunta.nimi[data3$verotuskunta.nimi==i])
b <- length(data3$jaannossuhdekaikki[data3$verotuskunta.nimi==i&data3$jaannossuhdekaikki>=50])
c=b/a*100
return(c)
}
data4$Osuus <- lapply(data4$Kunta,osuus) # Lasketaan prosenttiosuudet joka kunnalle

Tehdään karttakuva, josta lasketut prosenttiosuudet selviävät. Kuvaa varten täytyy ensin hakea koordinaatit, jotka löytyvät esim. täältä. Sitten datat yhdistetään kunnan perusteella. 

R-koodi:

koordinaatit<- read.csv(file.choose(),header=TRUE,dec=".",sep=";")
colnames(koordinaatit)[2] <- "Kunta"
datayhd <- merge(koordinaatit,data4, by="Kunta")
datay <- datayhd[!duplicated(datayhd$Kunta),]
datay$Osuus <- as.numeric(datay$Osuus)
g <- sample(nrow(datay),0.05*nrow(datay))    #Otetaan kuvaa varten 5% havainnoista
datas <- datay[g,]

 map <- get_map(location = 'Finland', zoom = 6)  #Ladataan Suomen kartta 
  mapPoints <- ggmap(map)+
   geom_point(aes(x=Longitude,y=Latitude,size=Osuus),data=datas,alpha=0.5,colour="blue")
  mapPoints
mapPointsLegend <-mapPoints +scale_size(range=c(7,25)) +ggtitle("Jäännösveroprosentti >50: Osuudet Suomen kunnissa")
mapPointsLegend





Katsotaan vielä muutamia suurimpien ja pienimpien osuuksien kuntia. Helsingissä Osuus on ~25%. 

head(datay[order(datay$Osuus),])

          Kunta Postal.Code Latitude Longitude Osuus
123    Hailuoto       90480  65.0000   24.7167     0
624   Kivijärvi       43801  63.0667   25.0500     0
705    Kumlinge       22820  60.2667   20.7833     0
896     Luhanka       19950  61.7833   25.7000     0
899  Lumparland       22630  60.1167   20.2500     0
1298  Savukoski       98800  67.2925   28.1581     0

head(datay[order(-datay$Osuus),])

             Kunta Postal.Code Latitude Longitude     Osuus
909      Merijärvi       86220  64.3000   24.4500 100.00000
118           Geta       22340  60.3833   19.8500  75.00000
1205    Rautavaara       73901  63.4833   28.3000  50.00000
1047 Pelkosenniemi       98500  67.1108   27.5106  41.66667
117          Föglö       22710  60.0167   20.4167  37.50000
1536         Vaala       91700  64.4333   26.8000  36.84211



Seuraavaksi tutkitaan, onko suuren jäännösveroprosentin yrityksillä suurempi todennäköisyys saada verovelkaa. Rajaan tutkittavan joukon verotettavan tulon mukaan välille 50000-80000. Tästä joukosta valitsen ne, joilla on yli 99%:n jäännösvero ja ne, joilla on alle 1%:n jäännösvero. Näistä kummastakin joukosta otan sitten 30 kappaleen satunnaisotannan. 

data33 <- data3[data3$Verotettavatulo>=50000 & data3$Verotettavatulo<=80000,]

datajaannos99 <- data33[data33$jaannossuhdekaikki>99,]
datajaannos1 <- data33[data33$jaannossuhdekaikki <1,]
a <- sample(nrow(datajaannos99),30)
b <- sample(nrow(datajaannos1),30)
datajaannos99t <- datajaannos99[a,]
datajaannos1t <- datajaannos1[b,]

Yli 99%:n jäännösveron otoksessa verovelkaisia oli 7 kappaletta, eli 23.3%:a kaikista. 
Alle 1%:n jäännösveron otoksessa verovelkaisia ei ollut yhtään kappaletta. 

Tehdään vielä Fisherin exact testi. Testillä voidaan testata, onko populaatioiden dikotomisten muuttujien arvojen suhteellisissa osuuksissa eroja.

data = matrix(c(7,23,0,30), ncol=2)
fisher.test(data,alternative = "two.sided")

Fisher's Exact Test for Count Data
data:  data
p-value = 0.01054
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 1.649705      Inf
sample estimates:
odds ratio 
 Inf 

Ratkaistaan myös luottamusväli yli 99%:n ryhmän verovelallisten osuudelle.

prop.test(x=7,n=30,conf.level = 0.95)

1-sample proportions test with continuity correction
data:  7 out of 30, null probability 0.5
X-squared = 7.5, df = 1, p-value = 0.00617
alternative hypothesis: true p is not equal to 0.5
95 percent confidence interval:
 0.1063502 0.4270023
sample estimates:
        p 
0.2333333 

Laskin verovelallisten osuuden lopuksi myös 45-55 %:n jäännösveroryhmälle. 30:n yrityksen otoksessa oli verovelallisia 3 kappaletta, eli 10%:a kaikista.

Verovelkarekisterissä näkyvät tiedot vain viimeiseltä 6 kuukaudelta, joten käytetyn datan (2014) ja verovelkadatan välillä on yli vuoden ero. Tämä antaa viitteitä siitä, että suuri jäännösveroprosentti tänään voi merkitä suurempaa verovelkaisuuden todennäköisyyttä tulevaisuudessa. Ei ole tietenkään suuri yllätys, että alle 1%:n jäännösverolaisilla ei ollut verovelkaa, koska hehän ovat jo maksaneet veronsa ennakkoveroina, jolloin verovelkaa ei voi sillä hetkellä syntyä. Tämä tulos on kuitenkin hyödyllinen, koska se ennakoi verovelvollisen käytöstä tulevaisuudessa. 





Ei kommentteja:

Lähetä kommentti