STATISTISK ANALYS AV KOMPLEXA DATA SPATIALA DATA Mattias Villani Statistik och Maskininlärning Institutionen för Datavetenskap Linköpings Universitet MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 1 / 38
MOMENTETS INNEHÅLL Introduktion till spatiala data Geostatistiska data: Interpolation, Variogram och Kriging Arealdata: Spatiala autoregressionsmodeller. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 2 / 38
TRE TYPER AV SPATIALA DATA Spatiala data: position och avstånd har betydelse. Tre typer av spatiala data: Geostatistiska data (Mätstationer) Arealdata (Bildpixlar) Punktmönsterdata (Fågelskådning) Tempo-spatiala data. Spatiala mätningar över tid. Ex: Meteorologiska mätningar. Inom delmomentet: Geostatistiska och lite areal data. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 3 / 38
GEOSTATISTISKA DATA Y (s) är en slumpmässig vektor observerad vid positionen s D. Positionerna s 1, s 2,..., s n är fixa. Mätningarna vid positionerna Y (s 1 ), Y (s 2 ),..., Y (s n ) är slumpmässiga. D är ofta en delmängd av R 2. Longitud och latitud. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 4 / 38
GEOSTATISTISKA DATA Y (s) är en slumpmässig vektor observerad vid positionen s D. Positionerna s 1, s 2,..., s n är fixa. Mätningarna vid positionerna Y (s 1 ), Y (s 2 ),..., Y (s n ) är slumpmässiga. D är ofta en delmängd av R 2. Longitud och latitud. Exempel 1: Temperatur och nederbörd i min trädgård igår. Exempel 2: Mängd olja vid olika borrningsstationer. Exempel 3: Huspriser. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 4 / 38
MEUSE RIVER DATA - ZINC CONCENTRATION MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 5 / 38
AREAL DATA D är fortfarande en fix delmängd, men partitionerad i arealenheter. En mätning i varje area. Exempel 1: Jordbruksexperiment. Exempel 2: Bildanalys. Röntgen/Magnetkamera. Exempel 3: Huspriser på kommunnivå. Areal data kallas också lattice data. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 6 / 38
KOMMUNALSKATT 2012 MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 7 / 38
FMRI BILDER AV HJÄRNAKTIVITET MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 8 / 38
FMRI BILDER AV HJÄRNAKTIVITET MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 9 / 38
PUNKTMÖNSTERDATA Positionerna s 1, s 2,..., s n är slumpmässiga. Punktprocesser. Y (s 1 ), Y (s 2 ),..., Y (s n ) är fixa som indikerar att en viss händelse inträffat vid s i. Exempel 1: Positioner av viss trädsort. Exempel 2: Sjukdomsutbrott. Exempel 3: Brottsplatser. Klustring ofta viktigt. Tenderar vissa djurarter att befinna sig inom samma område? Olika områden (revir)? Attraction/repulsion. Kovariatinformation vid de slumpmässiga positionerna: marked point pattern. Ex: brottsstyp, fågelstorlek, trädomkrets. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 10 / 38
SPATIALA DATA I R Paketet sp är baspaketet med spatiala datatyper. Objekt för att rita upp spatiala data: punkt, linje, polygon, grid och pixel. coordinates(datamatris) <- dinakoordinater [dinakoordinater är en matris med två kolumner innehållande longitud och latitud] datamatris blir ett objekt av typen SpatialPointsDataFrame. Alternativ: funktionen SpatialPointsDataFrame(). llcrs <- CRS("+proj=longlat +ellps=wgs84") definerar det traditionella longitud-latitude koordinatsystemet. library(maps); map( world, sweden ) ritar upp en Sverigekarta. gridobjekt <- as(spatialdatamatris, "SpatialPixels") Gör om matrisen SpatialDataMatris med punkter till en grid/pixlar. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 11 / 38
INTERPOLATION AV SPATIALA DATA Vi har observerat Z (s 1 ), Z (s 2 ),..., Z (s n ) vid n fixa positioner. Vi vill beräkna anpassningen Ẑ (s 0 ) i en ny punkt s 0. Interpolation viktat med inversa avståndet: Ẑ (s 0 ) = n i=1 w(s i, s 0 )Z (s i ) n i=1 w(s i, s 0 ) där w(s i, s 0 ) = s i s 0 p library(gstat); idwout <- idw(zinc ~ 1, meuse, meuse.grid, idp = 2) image(idwout) ritar upp den interpolerade ytan. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 12 / 38
INTERPOLATION MED INVERSA AVSTÅND MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 13 / 38
MEUSE RIVER DATA - ZINC CONCENTRATION MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 14 / 38
TIDSERIER Tidserier: data observerat över tid. x 1, x 2,..., x T. Autoregressiv model av ordning ett: x t = φx t 1 + ε t där ε t ~N(0,σ 2 ) är oberoende slumpfel. Beroende över tid. Värdet idag beror på gårdagens värde. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 15 / 38
AUTOKORRELATION Stationär tidsserie: Konstant väntevärde över tiden Konstant varians över tiden Autokorrelationen mellan X t och X t+h beror bara på h. Autokorrelationsfunktionen visar beroendet över tid: C (h) = Corr(X t, X t+h ) Variogrammet innehåller samma info som C (h): E [(X t X t+h ) 2] MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 16 / 38
VARIOGRAM Spatiala data är som tidserier där tiden t byts ut mot rumsliga koordinater s = (s 1, s 2 ). Process Z (s) = m + e(s) där m är väntevärdet och e(s) är spatialt brus. Alternativt Z (s) = X β + e(s) Semivariogram γ(h) = 1 E [Z (s) Z (s + h)]2 2 där h är en vektor. Variogram = 2γ(h). Relation till kovariansfunktionen C (h)=cov[y (s + h), Y (s)]: γ(h)=2[c (0) C (h)] MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 17 / 38
VARIOGRAM, FORTS Stationäritet över rummet. Spatial korrelation beror endast på avståndsvektorn h = s i s j mellan två punkter och inte på punkternas positioner. Isotropisk korrelation: vektorn h kan ersättas med dess längd h = h. γ( h) = γ(h) och γ(0) = 0. Nugget: ofta antas att γ(0 + ) = lim h 0 + γ(h) = τ 2 > 0. Går dock inte att skatta utan upprepade observationer vid samma position. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 18 / 38
SAMPELVARIOGRAMMET Problematiskt att skatta variogrammet eftersom vi kan ha inga eller få datapunkter som just har avståndet h. Jfr ACF i tidsserieanalys. Låt I 1 = [0, h 1 ), I 2 = [h 1, h 2 ),..., I m = [h m 1, h m ) vara en partitionering av intervallet [0, h m ) där h m är en övre gräns. Momentskattning av (semi)variogrammet: för alla h I j. ˆγ(I j ) = 1 N h 2N h [Z (s i ) Z (s i + h)] 2 i=1 library(gstat); plot(variogram(log(zinc) ~ 1, meuse)) library(gstat); plot(variogram(log(zinc) ~ sqrt(dist), meuse)) library(gstat); plot(variogram(log(zinc) ~ 1, meuse, alpha = c(0,45,90,135))) MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 19 / 38
MODELLER FÖR ISOTROPISKA VARIOGRAM Linjär Sfärisk γ(h; θ) = γ(h; θ) = { { τ 2 + σ 2 h om h > 0 0 om h = 0 { τ 2 + σ 2 } om h 1/φ τ 2 + σ 2 3φh 2 1 2 φ3 h 3 om 0 h 1/φ Powered exponential 0 < p 2 (Exponential p = 1, Gaussisk p = 2) { τ γ(h; θ) = 2 + σ 2 [1 exp( φh p )] om h > 0 0 om h = 0 Matérn γ(h; θ) = { [ τ 2 + σ 2 1 (2 νhφ) ν 2 ν 1 Γ(ν) K ν(2 ] νhφ) om h > 0 0 om h = 0 MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 20 / 38
NUGGET, SILL OCH RANGE Exempel: sfäriskt variogram { τ 2 + σ 2 om h 1/φ γ(h; θ) = { } τ 2 + σ 2 3φh 2 1 2 φ3 h 3 om 0 h 1/φ Nugget: γ(0 + ) = lim h 0 + γ(h) = τ 2 > 0 Sill: lim h γ(h) = τ 2 + σ 2 Partial sill: Sill - Nugget =σ 2 Range: h-värdet där γ(h) först når sitt maximum: 1/φ. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 21 / 38
SKATTNING AV PARAMETRISKA VARIOGRAM Ickelinjär viktad minsta kvadrat (startvärden viktiga) p w j [γ(h) ˆγ(h)] 2 j=1 Variogrammodeller i R: vgm(psill, model, range, nugget) Exempel: v <- vgm(1, Sph, 800, 1) library(gstat); samplevariogram <- variogram(log(zinc) ~ sqrt(dist), meuse) vfit <- fit.variogram(samplevariogram, v); plot(samplevariogram, vfit) attributes(vfit) ger SSE. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 22 / 38
SKATTNING AV PARAMETRISKA VARIOGRAM - EYEBALLING Eyeball statistics: Prova olika parametervärdet tills dess parametriskt variogram anpassar sampelvariogrammet. library(geor); varioeye <- eyefit(variog(as.geodata(meuse["zinc"]), max.dist = 1500)); variofit <- as.vgm.variomodel(varioeye[[1]]) Fungerar inte i RStudio. Kör vanlig R. Datamaterialet meuse finns i paketet sp. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 23 / 38
SPATIAL PREDIKTION - KRIGING Vi har observationer Z (s 1 ),..., Z (s n ) och vill prediktera Z (s 0 ), Z-värdet vid en ny position s 0. Vi har kovariater vid varje position: X = (x(s 1 ),..., x(s n )) och x(s 0 ). Rimlig prediktor: Ẑ (s 0 ) är ett viktat medelvärde av värdena vid närliggande positioner. Bästa linjära väntevärdesriktiga prediktorn Ẑ (s 0 ) = x(s 0 ) ˆβ + v V 1 ( Z (s) X ˆβ ) där Z (s) = (Z (s 1 ),..., Z (s n )), V är kovariansmatrisen för Z (s) och v är kovariansvektorn innehållande kovarianserna mellan Z (s 0 ) och Z (s), och ˆβ = ( X V 1 X ) 1 X V 1 Z (s) är den vanliga GLS-skattningen. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 24 / 38
SPATIAL PREDIKTION - KRIGING, FORTS. Prediktionsvarians Var ( Ẑ (s 0 ) ) = Var (Z (s 0 )) v V 1 v Universal kriging. + ( x(s 0 ) v V 1 X ) ( X V 1 X ) 1 ( x(s0 ) v V 1 X ) Ordinary kriging: endast intercept i regressionsytan. krige(log(zinc) ~ sqrt(dist), meuse, meuse.grid, fittedsphvariogram) MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 25 / 38
KRIGING - MEUSE DATA MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 26 / 38
AREAL DATA Datapunkter är definierade över arealenheter (kommuner, pixlar) Arealernas närhet till varandra äv viktig. Motsvarar avstånd för geostatistiska data. Spatiala grannskap (neighbourhoods): Vilka regioner gränsar till region i? Vilka länder handlar med varandra? Hur mycket? Vilka delar av hjärnan är sammankopplade med fibrer? Vem är du vän med på Facebook? MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 27 / 38
SPATIALA GRANNSKAP - ETT EXEMPEL W = 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 W = 0 1 0 0 0.33 0 0.33 0.33 0 0.5 0 0.5 0 0.5 0.5 0 MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 28 / 38
SPATIALA GRANNSKAP - ETT EXEMPEL W = 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 W = 0 1 0 0 0.33 0 0.33 0.33 0 0.5 0 0.5 0 0.5 0.5 0 MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 29 / 38
SPATIALA GRANNSKAP - ETT EXEMPEL W = 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 W = 0 1 0 0 0.33 0 0.33 0.33 0 0.5 0 0.5 0 0.5 0.5 0 MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 30 / 38
US CENSUS TRACT DATA - NEW YORK COUNTIES MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 31 / 38
US CENSUS TRACT DATA - NEW YORK COUNTIES MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 32 / 38
MORAN S I Näthetsmatris W = (w ij )[objekt av klassen nb i R] Test för spatialt beroende, Moran s I I = Moran s I i vektorform 1 I 1 och E (I ) = 1 n 1 Globalt vs Lokalt beroende. n n i=1 n j=1 w ij (y i ȳ)(y j ȳ) n i=1 n i=1 w ij n i=1(y i ȳ) 2 I = (y ȳ) W(y ȳ) (y ȳ) (y ȳ) vid spatiellt oberoende. Geary s C mer lokalt alternativ till Moran s I. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 33 / 38
R KOMMANDON FÖR AREALDATA Mål: vikter för varje arealenhet som beskriver dess beroende av enhetens grannar. Två steg: 1. Definera närhetsmatris (vem är granne med vem?). nb objekt i R [neighbourhood]. 2. Bestäm vikter mellan alla par av grannar. nb2listw [neighbourhood to list of weights] MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 34 / 38
R KOMMANDON FÖR AREALDATA, FORTS. Närhetsvikter: listw objekt. NYlistw[[2]] är en lista där det i:te listelementet innehåller information om vilka grannar den i:te arealenheten har. NYlistw[[3]] är en lista där det i:te listelementet innehåller information om vilka vikter den i:te arealenhetens grannar har. Exempel: NYlistw <- nb2listw(ny_nb, style = "B") [Binärt definierade grannar. Granne eller ej.] NYlistw[[2]][[3]] returnerar c(2,13,35), vilket säger att enheterna 2, 13 och 35 är grannar med enhet 3. NYlistw[[3]][[3]] returnerar c(1,1,1), vilket säger att enheterna 2, 13 och 35 har alla vikt 1 för enhet 3 (binär grannrelation). Exempel: NYlistw <- nb2listw(ny_nb, style = "W") [Binärt definierade grannar. Granne eller ej.] MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 35 / 38
SIMULTAN AUTOREGRESSIV MODELL (SAR) Tidsserieanalys: regression med AR(1) feltermer där ε t iid N(0, σ 2 ). y t = β 0 + β 1 x t + e t e t = ρe t 1 + ε t Simultan autoregressiv modell (SAR) där ε i iid N(0, σ 2 ). y i = β 0 + β 1 x i + e i m e i = b ij e j + ε i j=1 b ij representerar spatiala beroenden mellan regioner. b ii = 0 för alla i. Regionen beror inte på sig själv. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 36 / 38
SIMULTAN AUTOREGRESSIV MODELL (SAR), FORTS Modellen kan skrivas som E (y) = Xβ Var(y) = (I B) 1 Σ ε ( I B ) 1 där B = (b ij ) och ε är en diagonal matris, ofta Σ ε = σ 2 I. Vanligt val: B = λw. Spatial autokorrelationsparameter: λ. R funktionen: nysar <- spautolm(z ~ PEXPOSURE + PCTAGE65P + PCTOWNHOME, data = NY8, listw = NYlistw) MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 37 / 38
CONDITIONAL AUTOREGRESSIVE MODEL (CAR) Beroendet för residualerna modelleras betingat på omgivningen (neighbourhood) ( ) c ij e j σe e i e j i N 2, i j i j i c ij j i c ij Om t ex C = λw och Σ ε = σ 2 I så gäller för CAR att där C = (c ij ). E (y) = Xβ Var(y) = σ 2 (I λw) 1 R: nycar <- spautolm(z ~ PEXPOSURE + PCTAGE65P + PCTOWNHOME, + data = NY8, family = "CAR", listw = NYlistw) MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 38 / 38