STATISTISK ANALYS AV KOMPLEXA DATA SPATIALA DATA Mattias Villani Statistik Institutionen för Datavetenskap Linköpings Universitet MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 1 / 36
MOMENTETS INNEHÅLL Introduktion till spatiala data Geostatistiska data: Interpolation, Variogram och Kriging Arealdata: Spatiala autoregressionsmodeller. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 2 / 36
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 / 36
GEOSTATISTISKA DATA Y (s) är en slumpmässig vektor observerad vid positionen s D. Positionerna s 1, s 2,..., s n är xa. 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 / 36
GEOSTATISTISKA DATA Y (s) är en slumpmässig vektor observerad vid positionen s D. Positionerna s 1, s 2,..., s n är xa. 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 / 36
MEUSE RIVER DATA - ZINC CONCENTRATION MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 5 / 36
AREAL DATA D är fortfarande en x delmängd, men partitionerad i arealenheter. En mätning i varje area. Exempel 1: Jordbruksexperiment. Exempel 2: Bildanalys. Röntgen. Exempel 3: Huspriser på kommunnivå. Areal data kallas också lattice data. MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 6 / 36
KOMMUNALSKATT 2012 MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 7 / 36
FMRI BILDER AV HJÄRNAKTIVITET MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 8 / 36
FMRI BILDER AV HJÄRNAKTIVITET MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 9 / 36
PUNKTMÖNSTERDATA Positionerna s 1, s 2,..., s n är slumpmässiga. Punktprocesser. Y (s 1 ), Y (s 2 ),..., Y (s n ) är xa som indikerar att en viss händelse inträat vid s i. Exempel 1: Positioner av viss trädsort. Exempel 2: Sjukdomsutbrott. Exempel 3: Brottsplatser. Klustring ofta viktigt. Tenderar vissa djurarter att benna 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 / 36
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") denerar 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 / 36
INTERPOLATION AV SPATIALA DATA Vi har observerat Z (s 1 ), Z (s 2 ),..., Z (s n ) vid n xa 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 / 36
INTERPOLATION MED INVERSA AVSTÅND MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 13 / 36
MEUSE RIVER DATA - ZINC CONCENTRATION MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 14 / 36
VARIOGRAM Spatial utökning av tidsserieanalysens autokorrelationsfunktion. Stationäritet. 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 där h är en vektor. Variogram = 2γ(h). γ(h) = 1 E [Z (s) Z (s + h)]2 2 Relation till kovariansfunktionen C (h)=cov[y (s + h), Y (s)]: γ(h)=2[c (0) C (h)] MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 15 / 36
VARIOGRAM, FORTS 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 16 / 36
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)] 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 17 / 36
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 1 2 2 φ3 h 3 om 0 h 1/φ Powered exponential 0 < p 2 (Exponential p = 1, Gaussisk p = 2) { τ2 + σ γ(h; θ) = 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 18 / 36
NUGGET, SILL OCH RANGE Exempel: sfäriskt variogram { τ 2 + σ 2 om h 1/φ γ(h; θ) = { } τ 2 + σ 2 3φh 1 2 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 19 / 36
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) MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 20 / 36
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 21 / 36
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 22 / 36
SPATIAL PREDIKTION - KRIGING, FORTS. Prediktionsvarians Var ( Ẑ (s 0 ) ) = Var (Z (s 0 )) v V 1 v + ( x(s 0 ) v V 1 X ) ( X V 1 X ) 1 ( x(s0 ) v V 1 X ) Universal kriging. Ordinary kriging: endast intercept i regressionsytan. krige(log(zinc) ~ sqrt(dist), meuse, meuse.grid, fittedsphvariogram) MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 23 / 36
KRIGING - MEUSE DATA MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 24 / 36
AREAL DATA Datapunkter är denierade ö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 brer? Vem är du vän med på Facebook? MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 25 / 36
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 26 / 36
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 27 / 36
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 / 36
US CENSUS TRACT DATA - NEW YORK COUNTIES MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 29 / 36
US CENSUS TRACT DATA - NEW YORK COUNTIES MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 30 / 36
MORAN S I Näthetsmatris W = (w ij )[objekt av klassen nb i R] Test för spatialt beroende, Moran's I I = 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 Moran's I i vektorform 1 I 1 och E (I ) = 1 n 1 Globalt vs Lokalt beroende. 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 31 / 36
R KOMMANDON FÖR AREALDATA Mål: vikter för varje arealenhet som beskriver dess beroende av enhetens grannar. Två steg: 1. Denera 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] nb objekt MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 32 / 36
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 denierade 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 denierade grannar. Granne eller ej.] MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 33 / 36
SIMULTAN AUTOREGRESSIV MODELL (SAR) Tidsserieanalys: regression med AR(1) feltermer y t = β 0 + β 1 x t + e t e t = ρe t 1 + ε t där ε t iid N(0, σ 2 ). Simultan autoregressiv modell (SAR) där ε i iid N(0, σ 2 ). y i = β 0 + β 1 x i + e i e i = m 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 34 / 36
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 35 / 36
CONDITIONAL AUTOREGRESSIVE MODEL (CAR) Beroendet för residualerna modelleras betingat på omgivningen (neighbourhood) ) e i e j i N ( j i c ij e j j i c ij, σ 2 e i j i c ij R: nycar <- spautolm(z ~ PEXPOSURE + PCTAGE65P + PCTOWNHOME, + data = NY8, family = "CAR", listw = NYlistw) MATTIAS VILLANI (STATISTIK, LIU) SPATIALA DATA 36 / 36