HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Paikkatiedon käsittely 10. Aluekohteiden yhteisesiintymät Antti Leino antti.leino@cs.helsinki.fi 15.2.2007 Tietojenkäsittelytieteen laitos
Alueittaisen aineiston louhinta Mitä louhitaan? Spatiaalisen riippuvuuden voimakkuutta Yhden / muutaman ilmiön vaihtelu Autokorrelaatio Yhteisesiintymiä Usean ilmiön välisiä riippuvuuksia Assosiaatio- ja kollokaatiosääntöjä
Alueaineiston spatiaalinen rakenne Mahdollista mallintaa verkkona Solmuina alueet Kaaret naapurialueiden välillä Kaariin mahdollista liittää paino Kaaren yhdistämien alueiden välinen etäisyys Ei välttämättä euklidinen etäisyys Vesistöt, vuoristot, tiestö Hallinnolliset rajat
Alueiden läheisyys Ilmeinen vaihtoehto: alueiden keskipisteiden välinen etäisyys Ei aina paras mahdollinen Joskus tarpeen tietää, mitkä alueet naapureita Myös etäisyys voi olla tärkeä
Läheisyysmatriisi Matriisi W, jossa alueet sekä riveinä että sarakkeina kukin alkio osoittaa kahden alueen läheisyyttä Yksinkertainen ratkaisu: binäärinen vierusmatriisi { 1 jos alueilla i ja j yhteinen raja w ij = 0 muulloin A B C D E F A 0 1 0 1 1 0 B 1 0 1 0 1 1 C 0 1 0 0 0 1 D 1 0 0 0 1 1 E 1 1 0 1 0 1 F 0 1 1 1 1 0
Lisää läheisyysmatriisia Läheisyysmatriisin ei tarvitse olla symmetrinen Mahdollista esim. valita W ij = l ij l i, missä l ij on yhteisen rajan pituus ja l i alueen i reunan pituus Binäärisen vierusmatriisin sijasta voi olla kätevä käyttää riveittäin normalisoitua A B C D E F A 0 1/3 0 1/3 1/3 0 B 1/4 0 1/4 0 1/4 1/4 C 0 1/2 0 0 0 1/2 D 1/3 0 0 0 1/3 1/3 E 1/4 1/4 0 1/4 0 1/4 F 0 1/4 1/4 1/4 1/4 0
Vielä lisää Läheisyysmatriisi voidaan yleistää naapuruutta kauemmas Etäisyydellä k läheisyysmatriisi W (k) Esimerkiksi { 1 jos i:llä ja j:llä yhteinen naapuri W (2) = ij 0 muulloin Näin päästään tarkastelemaan ilmiöitä, jotka ovat kylläkin paikallisia mutta silti hiukan suuremmassa mittakaavassa
Spatiaalinen autokorrelaatio Tulkitaan ominaisuustiedon arvo satunnaismuuttujaksi Y y 1,...,y n arvo alueilla 1,...,n Autokorrelaatiota kuvaa Moranin I-mitta I = n n i=1 n j=1 w ij(y i ȳ)(y j ȳ) ( ni=1 (y i ȳ) 2)( i j w ij ) Normalisoidulla läheisyysmatriisilla lyhyemmin I = zwzt, missä z zz T = (y 1 ȳ,...,y n ȳ)
I Vaihtelee välillä 1... +1 Ei autokorrelaatiota: I = 0 Esimerkki: A-veriryhmän osuus Irlannissa Kartta tämän viikon harjoitustehtävänä > library(spdep) > data(eire) > moran(eire.df$a, + nb2listw(eire.nb), + length(eire.df$a), + Szero(nb2listw(eire.nb))) $I [1] 0.5541238 $K [1] 2.977336
Autokorrelaation havainnollistusta Hajontakuvio X-akselilla arvo alueella Y-akselilla alueelle sen naapuruston perusteella ennustettu arvo > moran.plot(spnamedvec("a", eire.df), nb2listw(eire.nb), + labels=rownames(eire.df), + xlab= A-veriryhmän osuus, + ylab= Osuus lähialueella ) I-mitta hajontakuvioon sovitetun suoran kulmakerroin
Lisää I:stä Läheisyysmatriisin valinnalla on merkitystä Vierusmatriisi ei välttämättä paras valinta Mahdollista ottaa mukaan alueiden (keskipisteiden) etäisyys (tai pikemminkin sen käänteisluku) Myös mahdollista laskea I-mitta etäisyydellä k: n n n I (k) i=1 j=1 w(k) (y ij i ȳ)(y j ȳ) = ( ni=1 (y i ȳ) 2)( ) i j w (k) ij
Lisää autokorrelaatiota Gearyn C-mitta Mittaa naapuriarvojen erotuksen varianssia (n 1) n n i=1 j=1 C w ij(y i y j ) 2 = 2 ( ni=1 (y i ȳ) 2)( ) i j w ij Vaihtelee välillä 0...2 Positiivinen korrelaatio: C < 1 Negatiivinen korrelaatio: C > 1 > geary(eire.df$a, nb2listw(eire.nb), length(eire.df$a), + length(eire.df$a)-1, Szero(nb2listw(eire.nb))) $C [1] 0.3801197 $K [1] 2.977336
Mutta merkitseekö se mitään? I- ja C-mittojen merkitsevyyttä voi arvioida vertaamalla niitä vastaavaan normaalijakaumaan Z(C) = C E(C) D(C) Monte Carlo -testaus myös käyttökelpoinen > geary.mc(spnamedvec("a", eire.df), nb2listw(eire.nb), 100) Monte-Carlo simulation of Geary s C data: spnamedvec("a", eire.df) weights: nb2listw(eire.nb) number of simulations + 1: 101 statistic = 0.3801, observed rank = 1, p-value = 0.009901 alternative hypothesis: less
Aluekohteiden assosiaatiot Transaktiopohjainen assosiaation käsite yleistettävissä spatiaaliseen aluedataan Edellyttää muutamaa apukäsitettä: assosiaatiosäännön A B luotettavuus (confidence): P(B A) kattavuus (support): P(A B) Transaktioille määriteltävissä tapausjoukkojen {A}, {B} ja {A, B} frekvenssien avulla Määriteltävissä myös aluedatalle
Lisää assosiaatioista Säännön tulkinnan kannalta olennainen mitta sen luotettavuus Osoittaa, kuinka»varmasti» ehto pätee Säännön kattavuus tärkeä lähinnä algoritmisesti Sen tai tarkkaan ottaen säännön määrittelyyn käytettyjen joukkojen yleisyyksien perusteella karsitaan hakuavaruutta Toisaalta vaarallinen: luotettavat, mutta harvinaiset säännöt jäävät huomaamatta Ei tarpeellinen kahden ilmiön välisten sääntöjen tarkastelussa
Aluekohteiden assosiaatiot leikkausten pinta-aloina Tarkastelualueella R kohteet A ja B sekä niiden leikkaus Assosiaatiosäännölle A B support = area(intersection(a, B)) / area(r) confidence = area(intersection(a, B)) / area(a) Vastaavasti myös säännöille A 1,...,A n B
Aluekohteiden yhteisesiintymät Alueiden leikkausten pinta-aloja voi käyttää myös yhteisesiintymäsääntöjen louhintaan Tässäkin perusajatus on sama Käytetään leikkauksen pinta-alaa mittana Muuten sovelletaan transaktiodatan louhinnasta tuttuja menetelmiä (kuten Apriori)
Alueiden leikkausten käyttö louhinnassa Leikkausten pinta-alojen käyttö melko suoraviivaista Toteutettavissa suoraan tietokantahakuina Tarvittavat operaatiot leikkaus ja pinta-ala olemassa Louhinta-algoritmi kirjoitettava vielä lisäksi Tehokkuus riippuu olennaisesti paikkaoperaatioiden toteutuksesta
Aluekohteiden assosiaatiot Esimerkki: sääntö Lounaismurteet Varsinais-Suomi Lähtöaineisto: maakunnat ja murrealueet Luotettavuus: select area(intersection(paamurteet.geometry, maakunta.geometry)) / area(paamurteet.geometry) from paamurteet, maakunta where paamurteet.murrealue= Lounaismurteet and maakunta.nro = 2;?column? ------------------- 0.772159513285472 (1 row) Kattavuus: select area(intersection(a.geometry, maakunta.geometry)) / area(geomunion(b.geometry)) from paamurteet as a, paamurteet as b, maakunta where a.murrealue= Lounaismurteet and maakunta.nro = 2 group by a.geometry, maakunta.geometry;?column? -------------------- 0.0164776623589566 (1 row)
Aluekohteiden assosiaatiot Lounaismurteet Varsinais-Suomi Luotettavuus 0.77 Kattavuus 0.02
Alueiden leikkaukset louhinnassa Etsitään alueiden välisiä yhteisesiintymiä Kukin ilmiö oma kohteensa Vrt. merkkiset pistekuviot Vrt. spaghettimalli vs. verkkomalli Riippuu aineistosta ja tavoitteista, onko tällainen järkevää
Aluejakoon perustuva aineisto Jos alueet ovat erillisiä ja kattavat tarkasteltavan maailman, on toinenkin vaihtoehto Keskitetään huomio eri ominaisuustietojen välisiin assoiaatioihin Yleensä oletus luokka-asteikosta Tulkitaan kukin alue transaktioksi Nyt mahdollista käyttää suoraan perinteisiä louhinta-algoritmeja
Pistekohteet alueina Molempia aluekohteiden louhintatapoja voi soveltaa myös pistekohteisiin Tässä lähinnä 1. kertaluvun ilmiöt Vaihtoehto 1: muunnetaan pistekuviot alueiksi Nyt mahdollista käyttää alueiden leikkauksia ja pinta-aloja
Pistekohteet ja aluejako Vaihtoehto 2: jaetaan tarkasteltava maailma alueiksi Tasavälinen ruudukko Hallinnollinen tms. epäsäännöllinen jako Tulkitaan alueet transaktioiksi Matriisi: riveinä alueet, sarakkeina eri pistekuviot Kussakin alkiossa tieto siitä, esiintyykö kuvion pisteitä alueella A B 1 1 0 2 1 1 3 1 1 4 1 0 5 1 1 6 0 1
1. vai 2. kertaluvun ilmiöitä? Menetelmät sopivat sekä pienen että suuren mittakaavan yhteisesiintymäsääntöjen etsintään Pisteiden levikkien samankaltaisuus Lähekkäisten esiintymien vaikutus toisiinsa Yleensä pienen mittakaavan säännöt mielenkiintoisempia Suuren mittakaavan ilmiöissä usein kiinnostavampaa yleiskuvan muodostaminen koko aineistosta