R/raster.modified.ttest.R
raster.modified.ttest.Rd
A bivarate raster correlation using Dutilleul's modified t-test
This function provides a bivariate moving window correlation using the modified t-test to account for spatial autocorrelation. Point based subsampling is provided for computation tractability. The hexagon sampling is recommended as it it good at capturing spatial process that includes nonstationarity and anistropy.
raster.modified.ttest( x, y, x.idx = 1, y.idx = 1, d = "AUTO", sub.sample = FALSE, type = "hexagon", p = 0.1, size = NULL )
x | x raster for correlation, SpatialPixelsDataFrame or SpatialGridDataFrame object |
---|---|
y | y raster for correlation, SpatialPixelsDataFrame or SpatialGridDataFrame object |
x.idx | Index for the column in the x raster object |
y.idx | Index for the column in the y raster object |
d | Distance for finding neighbors |
sub.sample | Should a sub-sampling approach be employed (TRUE/FALSE) |
type | If sub.sample = TRUE, what type of sample (random or hexagon) |
p | If sub.sample = TRUE, what proportion of population should be sampled |
size | Fixed sample size |
A SpatialPixelsDataFrame or SpatialPointsDataFrame with the following attributes:
corr Correlation
Fstat The F-statistic calculated as [degrees of freedom * unscaled F-statistic]
p.value p-value for the test
moran.x Moran's-I for x
moran.y Moran's-I for y
Clifford, P., S. Richardson, D. Hemon (1989), Assessing the significance of the correlationbetween two spatial processes. Biometrics 45:123-134.
Dutilleul, P. (1993), Modifying the t test for assessing the correlation between two spatial processes. Biometrics 49:305-314.
modified.ttest
for test details
Jeffrey S. Evans <jeffrey_evans@tnc.org>
if (FALSE) { library(gstat) library(sp) data(meuse) data(meuse.grid) coordinates(meuse) <- ~x + y coordinates(meuse.grid) <- ~x + y # GRID-1 log(copper): v1 <- variogram(log(copper) ~ 1, meuse) x1 <- fit.variogram(v1, vgm(1, "Sph", 800, 1)) G1 <- krige(zinc ~ 1, meuse, meuse.grid, x1, nmax = 30) gridded(G1) <- TRUE G1@data = as.data.frame(G1@data[,-2]) # GRID-2 log(elev): v2 <- variogram(log(elev) ~ 1, meuse) x2 <- fit.variogram(v2, vgm(.1, "Sph", 1000, .6)) G2 <- krige(elev ~ 1, meuse, meuse.grid, x2, nmax = 30) gridded(G2) <- TRUE G2@data <- as.data.frame(G2@data[,-2]) G2@data[,1] <- G2@data[,1] corr <- raster.modifed.ttest(G1, G2) plot(raster::raster(corr,1)) corr.rand <- raster.modifed.ttest(G1, G2, sub.sample = TRUE, type = "random") corr.hex <- raster.modifed.ttest(G1, G2, sub.sample = TRUE, d = 500, size = 1000) head(corr.hex@data) bubble(corr.hex, "corr") }