ARRAY TEORIASSA JA KÄYTÄNNÖSSÄ CASE LAKISÄÄTEISEN TAPATURMAVAKUUTUKSEN TILASTOHISTORIAN JATKUVAN ELÄKKEEN LASKENTA
SISÄLTÖ LTC-Otso Arrayn teoria Tilastohistorian eläkemääritykset Jatkuvan eläkkeen laskenta data vaiheen arrayn avulla Yhteenveto 03/10/2013 2
LTC-OTSO ASIAKKAIDEN KESKEINEN KUMPPANI JA LIIKETOIMINNAN MAHDOLLISTAJA LTC-Otso Oy kehittää ja tarjoaa pankki- ja vakuutusalan ICT-palveluita LähiTapiola- ryhmälle, Eteralle, Turvalle ja ELOlle. Tuotamme palveluita seuraavilla liiketoimintatoiminta-alueilla Vahinko-, Henki- ja Eläkevakuutusliiketoiminta. Pankki-, Sijoitus-, Varanhoito-, kiinteistövarainhoito, Maksuliike- ja laskutuspalvelut, Taloushallinto, Henkilöstöhallinto ja sisäiset palvelut, Verkkoliiketoiminta ja Asiakashallintaratkaisut, Viestintä, sekä Kehitys- ja ICT-palvelut. Palvelumme kattaa seuraavat ICT palvelukokonaisuudet: Asiantuntija-, projekti- ja jatkuvat palvelut Liiketoiminta- ja ratkaisukonsultointi Tuote- ja integraatioratkaisut Vastuullamme on yli 250 asiakkaidemme sovellusta, joista monet ovat liiketoimintakriittisiä. 7
Tavoitteemme TYYTYVÄINEN ASIAKAS OSAAVA JA SITOUTUNUT HENKILÖSTÖ KANNATTAVA JA KASVAVA YRITYS 8
ARRAY Data vaiheen aikainen tilavaraus PDV:hen On olemassa vain data vaiheen suorituksen ajan Määritellään käännöksen yhteydessä: - numeerinen tai merkkimuotoinen - tilavaraus asetetaan vakioksi data vaiheen suorituksen ajaksi Ei ole muuttuja eikä tietorakenne 03/10/2013 10
ARRAYN MÄÄRITTELY Array määritellään käännöksen aikaisella array lauseella ARRAY nimi {muuttujien määrä} <$> <pituus> <muuttujat>; Nimen säännöt ovat kuten muissakin SAS nimissä Nimen jälkeen on joko aaltosulut ( ), kaarisulut { } tai hakasulut [ ] Sulkujen sisällä ei voi olla muuttujan nimeä 03/10/2013 11
ARRAY LAUSE Arraylle voidaan antaa pituudeksi vakioarvo ja muuttujille vakioarvot. Vakioarvot annetaan aaltosulkujen (ei kaari- tai hakasulkujen) sisällä. Jos arrayn muuttujia on enemmän kuin annettuja vakioarvoja, annetaan varoitus ja loput muuttujat asetetaan puuttuviksi Vaikutus on sama kuin RETAIN lauseen käytöllä ARRAY nimi {muuttujien määrä} <$> <pituus> <muuttujat> <(vakioarvot)>; ARRAY vakio {3} (1,2,3); ARRAY teksti {3} ( a, b, c ); 03/10/2013 12
RETAIN- JA SUM -LAUSEET Retain -lause Määritellään muuttujan alkuarvo Muuttuja säilyttää arvonsa data vaiheen toistojen välillä retain elake 0; elake = sum(elake, elake2013); Sum lause elake + elake2013; tekee saman kuin yläpuolella oleva retain lause ja sum funktio Huom. Lause toimii vain summaan. 03/10/2013 13
LAG -FUNKTIO Lag funktiot (LAG1, LAG2,, LAGn) tallettavat arvot jonon loppuun ja palauttavat arvot jonon alusta silloin kun funktio suoritetaan LAG1 voidaan kirjoittaa myös LAG Jokainen lag funktio muodostaa oman jonon LAGn funktion muodostama jono alustetaan n kappaleella puuttuvia arvoja. Esimerkiksi LAG2 jono alustetaan kahdella puuttuvalla arvolla. 03/10/2013 14
LAG -FUNKTIO data esimerkki; input abc @@; a=lag1 (abc); b=lag2 (abc); datalines; 1 2 3 4 5; run; proc print data=esimerkki; title Output; run; 03/10/2013 15
ARRAY -LAUSE Käännöksen aikana määritellään muuttujien lukumäärä: - vakioarvo sulkujen sisällä - lasketaan muuttujalistan muuttujat - annetaan alin ja ylin muuttuja ARRAY nimi [3] $10 etu toinen suku; ARRAY tulot [*] 5 tulot1 tulot3; ARRAY tuotteet {5:15} tuotteet5 tuotteet15; 03/10/2013 16
ARRAY -LAUSE Muuttujat voidaan luoda data vaiheen aikana jos ne eivät jo ole PDV:ssa Muuttujien arvo voi muuttua data _null_; ARRAY muutos (3) (1,2,3); do i = 1 to 3; Muutos(i) = muutos(i) * 2; end; run; 03/10/2013 17
ARRAY -LAUSE Arrayn muuttujat voivat olla datassa olevia muuttujia set sashelp.class; ARRAY esimerkki(2) height weight; ARRAY apu(1) $ name; 03/10/2013 18
VÄLIAIKAINEN ARRAY Array määritellään väliaikaiseksi jos arrayn muuttujia ei haluta tallettaa data vaiheen suorituksen aikana luotavaan dataan Muuttujien lukumäärä on annettava sulkujen sisällä, ei voida käyttää tähteä (*) Arrayn muuttujien arvot säilytetään (ei tarvita RETAIN lausetta) Hyödyllinen jos luodaan array laskutoimitusten suorittamista varten ARRAY kerta(4) _temporary_ (1,4,8,16); 03/10/2013 19
LUKUMÄÄRÄ DATAN PERUSTEELLA Arrayn muuttujien lukumäärä voidaan määrittää datan perusteella ARRAY tuotto _numeric_; do i = 1 to dim(tuotto); tuotto(i) =tulot(i) menot(i); end; 03/10/2013 20
Muuttujalistat: - array sisältää kaikki numeeriset (_numeric_) tai merkkimuotoiset (_character_) muuttujat - vältä _all_ käyttöä Dim funktio: - palauttaa arrayn muuttujien lukumäärän - voidaan määritellä do end loopin STOP kohta - etu: STOP:n arvoa ei tarvitse muuttaa jos arrayn muuttujien arvo muuttuu 03/10/2013 21
MONIULOTTEINEN ARRAY nimi{rivit,sarakkeet} <$> <pituus> <muuttujat> <(vakioarvot)>; Rivit kertoo rivien ja sarakkeet sarakkeiden lukumäärän. Täyttö ja käyttö etenee kuten kirjoitettaessa. ARRAY C{2,5} C1-C10; 03/10/2013 22
ARRAYN KÄYTTÖ Datan kääntämiseen Datan paloitteluun Datan lukemiseen Toistuvien laskutoimitusten suorittamiseen Muuttujien vertailuun Muuttujien, joilla on samat ominaisuudet, luomiseen 03/10/2013 23
ARRAYN EDUT Voidaan käyttää indeksoimatonta ja lajittelematonta dataa Nopeampi kuin formaatti (jos formaattia voidaan käyttää) Datan positioihin perustuva käyttö Useamman arvon käyttö (rivi, sarake) tiedon hakemiseen 03/10/2013 24
ARRAYN HAITAT Palautetaan vain yksi arvo Arrayn muuttujiin voidaan viitata numeerisen arvon (kokonaisluvun) avulla Vaatimus muistin määrälle suorituksen aikana kun ladataan koko array muistiin suorituksen ajaksi Voidaan käyttää vain data -vaiheessa 03/10/2013 25
LAKISÄÄTEINEN TAPATURMAVAKUUTUS takaa työntekijälle hyvän vakuutusturvan työtapaturman tai ammattitaudin sattuessa korvaa hoitokustannuksia ja ansionmenetystä korvaukset määräytyvät tapaturmavakuutuslain perusteella työnantajan on vakuutettava työntekijänsä lakisääteisellä tapaturmavakuutuksella, kun työtä teetetään yli 12 työpäivää kalenterivuodessa 03/10/2013 26
LAKISÄÄTEINEN TAPATURMAVAKUUTUS Vuonna 2012 harjoitti lakisääteistä tapaturmavakuutusta 12 suomalaista vakuutusyhtiötä kerättiin vakuutuksenottajilta vakuutusmaksuja 619 miljoonaa euroa maksoivat tapaturmavakuutuslaitokset korvauksia yhteensä 585 miljoonaa euroa maksettiin korvauksia 202 842 vahingosta suurimman korvauserän muodostivat eläkkeet joita maksettiin noin 303 miljoonaa euroa (lähde Finanssivalvonta ja Tapaturmavakuutuslaitosten liitto TVL) 03/10/2013 27
TILASTOHISTORIA Kun vakuutusyhtiö on saanut vakuutuksen myöntämistä koskevan tarjouspyynnön vakuutuksenottajalta, sillä on oikeus saada vakuutusyhtiöltä, jossa vakuutus on tai on ollut, pakollisen vakuutuksen palkka- ja vahinkotiedot viideltä viimeiseltä täydeltä sekä kuluvalta vakuutuskaudelta. Näitä tietoja kutsutaan laissa tilastohistoriaksi. Palkkatiedot eritellään toimialoittain sekä ammattiluokittain. Vahinko- ja korvaustiedot jaotellaan ammattitauteihin, työmatkalla sattuneisiin työtapaturmiin ja muihin työtapaturmiin. Tapaturmavakuutuslain mukaiset korvaukset ilmoitetaan eriteltyinä maksettuihin ohimeneviin korvauksiin, maksettuihin pysyviin korvauksiin sekä vahinkokohtaisiin varauksiin ja vahvistettuihin pääomiin. 03/10/2013 28
TILASTOHISTORIA Tilastohistorian tehtävänä on tukea kilpailua varmistamalla että kaikilla vakuutusyhtiöillä olisi pakollisen vakuutuksen vakuutusmaksuperusteidensa soveltamista varten käytössään määrämuotoiset perustiedot. 03/10/2013 29
ELÄKKEEN MÄÄRITYKSET Tilastohistoria-asetus: Vahvistetut pääomat ja niiden myöhemmät korjaukset ilmoitetaan vahingon sattumisvuotta vastaten jaoteltuna niille kalenterivuosille, joina pääoma tai sen korjaus on vahvistettu. 03/10/2013 30
Vahvistetulla pääomalla tarkoitetaan ns. lopullisesti vahvistettua pysyvän korvauksen pääoma-arvoa. Pääoma-arvot vahvistetaan seuraavista pysyvistä korvauksista: - tapaturmaeläke ja siihen liittyvät lisät (haitta-, vaate- ja opaskoiralisä) - haittaraha - perhe-eläke 03/10/2013 31
Pääoman korjauksella tarkoitetaan esimerkiksi muutosta - työkyvyttömyysasteessa - haittarahan tai lisien luokassa - omaisten lukumäärässä Korjauksella ei tarkoiteta normaalia vuosittaista pääoman pienenemistä, joka johtuu siitä vuosittain ulos maksetuista korvauksista. 03/10/2013 32
KÄSITTEITÄ Eläkkeensaaja: vahingoittunut, leski ja lapset Korvauslaji: esimerkiksi lapsen eläke, perhe-eläke, lesken eläke, tapaturmaeläke Sattumisolosuhde: ammattitaudit, työmatkalla sattuneet työtapaturmat ja muut työtapaturmat 03/10/2013 33
Vuotuismäärä: vuotuismäärä = haittaprosentti (työkyvyttömyysaste) * minimivuosityöansio vahinkovuonna * eläketaso / (100*100) vuotuismäärä voi muuttua jos haittaprosentti muuttuu eläketaso alle 65 vuotiaalla 85 % ja 65 täyttäneellä 70 % Pääoma ja sen korjaus: Vahvistetaan tapaturmaeläkkeen pääoma, jonka tarkoitus on varata tuleville vuosille kohdistuvaa korvausvastuuta. Pääomaan voi kohdistua korjaus, kun on tehty uusi eläkepäätös sen seurauksena että toipuminen/kuntoutus on sujunut odotettua paremmin/huonommin (haittaprosentti muuttuu -> vuotuismäärä muuttuu). 03/10/2013 34
Pääomien määrä ilmoitetaan nettomääräisinä niihin kohdistuvat regressit vähennettyinä. Varauspääoma regressipääoma = nettopääoma Varaus on vahingosta tulevaisuudessa maksettavaksi tulevien korvausten pääomitettu määrä. Regressi eli takautumisoikeudella tarkoitetaan sitä, että vakuutusyhtiö voi periä maksamansa korvauksen vahingon aiheuttajalta: lakisääteisen tapaturmavakuutuksen kohdalla useimmiten liikennevakuutuksesta, harvemmin vastuuvakuutuksesta. 03/10/2013 35
Nuoren henkilön vaikea tapaturma (lähde: Tapaturmavakuutus kirja) Nuori koneasentaja vahingoittuu työmatkalla moottoripyöräonnettomuudessa niin, että niskanikama murtuu ja seurauksena on neliraajahalvaus. Kuntoutuksena korvataan sähköpyörätuoli, erikoisvuode kotiin, ympäristönhallintalaite pyörätuolin mikrotietokoneeseen, ulko-ovilaitteisto, tarvittavat asunnon muutostyöt, selkäydinvammaisen valmennuskursseja ja kuntoutushoitojakso määräajoin. Vahvistetaan pysyvä, täysi tapaturmaeläke. 03/10/2013 36
PÄÄOMAN VAHVISTUS Vahingon sattumisvuosi on 2005. Suoritusvuonna 2005 vahvistetaan tapaturmaeläkkeen pääoma 56000 euroa mikä viedään tilastolle. Myöhempinä vuosina varauspääoma pienenee mutta vuotuismäärä pysyy samana -> ei muutosta. 03/10/2013 37
Vaikea tapaturma ja kuntoutus (lähde: Tapaturmavakuutus kirja) Keski-ikäinen toimistotyöntekijä saa työtapaturmassa selkäydinvamman ja molemminpuolisen alaraajahalvauksen. Kuntoutuksena korvataan pyörätuoli, ajokortin hankkiminen, auton käsihallintalaitteet, vuoden kestävä kartanpiirtäjän kurssi, kuntoutuslainaa, avustusta piirustuskoneen hankkimista varten konepiirtäjän työhön ja tarvittavat asunnon muutostyöt. 03/10/2013 38
Tapaturmaeläke on täysi eläke tai hyvässä tapauksessa osa-aikaeläke, jos kuntoutuja työllistyy konepiirtäjäksi ja hänellä on tässä työssä ansion alenemaa toimistotyöhön verrattuna. Vahvistetaan pysyvä eläke jonka työkyvyttömyysaste on 100 %. Kuntoutuu konepiirtäjäksi: konepiirtäjän palkka on 60 % toimistotyöntekijän palkasta. Vahvistetaan ansion aleneman vuoksi pysyvä osa-aikaeläke, jossa työkyvyttömyysaste on 40 %. Työkyvyttömyysaste muuttuu (100 % -> 40 %) -> vuotuismäärä muuttuu jolloin tehdään pääoman korjaus 03/10/2013 39
PÄÄOMAN KORJAUS Vahingon sattumisvuosi on 2005. Suoritusvuonna 2005 vahvistetaan tapaturmaeläkkeen pääoma 100 000 euroa. Vuonna 2006 vuotuismäärä on sama (ei muutosta). Vuonna 2007 vuotuismäärä on muuttunut 4560 -> 7000 jolloin lasketaan pääoman muutos. Pääoma kuluvana suoritusvuonna on 200 000 euroa. Tästä vähennetään pääoma edellisenä suoritusvuonna 96 000 euroa jolloin saadaan pääoman muutos 104 000 euroa. Vuonna 2008 vuotuismäärä on sama (ei muutosta). 03/10/2013 40
PÄÄOMA JA REGRESSI Vahingon sattumisvuoden 2005 nettopääoma: 200 000 (varaus) 100 000 (regressi) = 100 000 euroa. Vuonna 2006 vuotuismäärät ovat muuttuneet joten lasketaan pääoman muutos: Kuluvan vuoden nettopääoma 120 000 (varaus) 75 000 (regressi) = 45 000 euroa. Tästä vähennetään edellisen vuoden nettopääoma 100 000. Muutos -55 000 euroa. 03/10/2013 41
Regressin muutos (lähde: Tapaturmavakuutus kirja) Työntekijä on tulossa töihin ja liukastuu työmatkalla kevyen liikenteen väylällä, jonka ylläpito on kiinteistön XYZ omistajan vastuulla. Tapaturma korvataan työtapaturmavakuutuksesta ja selvitellään, onko mahdollista saada korvaus takaisinsaantina kiinteistön omistajan vastuuvakuutuksesta. 03/10/2013 42
REGRESSIN MUUTOS Vahingon sattumisvuoden 2006 nettopääoma: 203 000 (varaus) 203 000 (regressi) = 0 euroa. Vuonna 2007 vuotuismäärät eivät ole muuttuneet. Seuraavana vuonna regressi puuttuu, lasketaan muutos: 190000 (196000 196000) = 190 000 euroa. 03/10/2013 43
ELÄKKEEN LASKENTA ARRAYN AVULLA data elake (drop= a z y x a2 muutosvuosi rotflag) ; retain x z erotus perotus muutosvuosi rotflag; array E = varausvuosien, korvauslajien ja eläkkeensaajien lukumäärät array E{&vuosia,&lajeja, 6, &hlot} _temporary_ ; array apu = korvauslajit eroteltuina pilkulla array apu{&lajeja}$ _temporary_ ("&lajit") ; array lajis = korvauslajien lukumäärä array lajis{&lajeja} _temporary_; array apu2 = eläkkeensaajat eroteltuina pilkulla array apu2(&hlot) _temporary_ (&henkilot); 03/10/2013 44
Tiedot käsitellään vahinkonumeron (vahno), sattumisolosuhteen (vsuhde), eläkkeensaajan (omin), eläkkeen varausvuoden (varvuosi) ja korvauslajin (laji) mukaisessa järjestyksessä. set vahelake; by vahno vsuhde omin varvuosi laji; 03/10/2013 45
Tehdään if haara aina kun eläkkeensaaja (eli omin= vahingoittunut, leski tai lapsi) vaihtuu z on eläkkeensaajan ja y vuoden järjestysnumero if first.omin then do; do a2= 1 to &hlot; Data on sortattu eläkkeensaajan mukaan -> ensimmäinen on vahingoittunut (z=1), seuraava on 30 leski (z = 2) jne. if apu2{a2}= omin then z=a2; y=0; end; end; 03/10/2013 46
Ensimmäisen varausvuoden kohdalla kasvatetaan y:n arvoa yhdellä Jos kyseessä on myös ensimmäinen eläkkeensaaja (eli omin) laitetaan y:n arvo muutosvuodeksi if first.varvuosi then do; y+1; if first.omin then muutosvuosi = y; end; 03/10/2013 47
Tehdään if haara aina kun laji vaihtuu. X on lajin järjestysnumero. if first.laji then do; do a=1 to &lajeja; if apu{a}= laji then x=a; end; Kasvatetaan arrayn lajis (lajien lukumäärä) arvoa yhdellä -> varmistetaan ulostulo loopista lajis{x}+1; 03/10/2013 48
Edellisen dian if haara jatkuu. Alustukset tehdään aina kun laji vaihtuu. VAT = varauksen (VA) vuotuismäärien summa ROT = regressin (RO) vuotuismäärien summa PVAT = varauksen (VA) pääomien summa PROT = regressin (RO) pääomien summa end; VAT=0; ROT=0; PVAT=0; PROT=0; 03/10/2013 49
Varaus (array E{&vuosia,&lajeja, 6, &hlot} _temporary_ ;) arrayn E kolmannen ulottuvuuden tasolle 1 jos on vuotuismäärä ja tasolle 4 jos on pääoma. if tark='va' then do; VAT + vvmaara; E{y,x,1,z}=VAT; PVAT+elake; E{y,x,4,z}=PVAT; end; 03/10/2013 50
Regressi (array E{&vuosia,&lajeja, 6, &hlot} _temporary_ ;) arrayn E kolmannen ulottuvuuden tasolle 2 jos on vuotuismäärä ja tasolle 5 jos on pääoma if tark='ro' then do; ROT + vvmaara; E{y,x,2,z}=ROT; PROT+elake; E{y,x,5,z}=PROT; Laitetaan rotflag päälle jos regressiä ei ole edellisenä vuonna ollut if lag1(varvuosi) ne varvuosi then rotflag+1; end; 03/10/2013 51
Tehdään if haara aina kun tullaan viimeisen lajin kohdalle. erotus = varauksen (VA) vuotuismäärien summa regressin (RO) vuotuismäärien summa > viedään arrayn kolmannen ulottuvuuden tasolle 3 perotus = varauksen (VA) pääomien summa regressin (RO) pääomien summa > viedään arrayn kolmannen ulottuvuuden tasolle 6 if last.laji then do; erotus=vat-rot; E{y,x,3,z}=erotus; perotus=pvat-prot; E{y,x,6,z}=perotus; end; 03/10/2013 52
Ensimmäisen vahvistusvuoden pääoma-arvo = perotus perotus = varauksen (VA) pääomien summa regressin (RO) pääomien summa if y=1 then do; vahelake=e{y,x,6,z}; end; 03/10/2013 53
Seuraavat vuodet if y ne 1 then do; Aina viimeisen lajin kohdalla if last.laji then do; TAA (tämä vuosi y) = varauksen (VA) vuotuismäärien summa regressin (RO) vuotuismäärien summa (=erotus) ED (edellinen vuosi y-1) = varauksen (VA) vuotuismäärien summa regressin (RO) vuotuismäärien summa (=erotus) TAA=E{y,x,3,z}; ED=E{y-1,x,3,z}; 03/10/2013 54
Edellisen dian if haara (seuraavat vuodet) jatkuu else do; Jos kyseessä on ensimmäinen laji, viedään eläkkeeksi perotus. perotus = varauksen (VA) pääomien summa regressin (RO) pääomien summa if lajis{x}=1 then vahelake=e{y,x,6,z}; Jos ei ole ensimmäinen laji, viedään eläkkeeksi käsittelyssä olevan vuoden perotuksen (+) ja sitä edellisen vuoden perotuksen (-) summa. else vahelake=sum(e{y,x,6,z},-e{y-1,x,6,z}); 03/10/2013 55
Edellisen dian if haara (seuraavat vuodet) jatkuu. Regressiä ei ole ollut edellisenä vuonna. if y ne rotflag and rotflag < 100 and rotflag ne. then do; vahelake=-e{y,x,5,z}; rotflag = 100; end; muutosvuosi=y; end; end; end; Sattumisolosuhde vaihtuu if first.vsuhde and _n_ ne 1 then vahelake=.; output; run; 03/10/2013 56
YHTEENVETO array on data vaiheen aikainen muistirakenne array on numeerinen tai merkkimuotoinen arrayn avulla voidaan yhdistää eri logiikan mukaisia elementtejä: eläkkeensaaja, korvauslaji, vuosi, sattumisolosuhde, vuotuismäärä, varaus- ja regressipääoma 03/10/2013 57
array apu = korvauslajit eroteltuina pilkulla array apu{&lajeja}$ _temporary_ ("&lajit") ; array lajis = korvauslajien lukumäärä array lajis{&lajeja} _temporary_; -> päästään yli numeerisuudesta tai merkkimuotoisuudesta array on käyttökelpoinen toistorakenteissa tai tiedon tallessa pitämisessä 03/10/2013 58