Optimized sample variance
Draws an optimal sample that minimizes or maximizes the sample variance
optimized.sample.variance(x, n, type = "maximized")
x |
A vector to draw a sample from |
n |
Number of samples to draw |
type |
Type of sample variance optimization c("maximized", "minimized") |
A data.frame with "idx" representing the index of the original vector and "y" is the value of the sampled data
Jeffrey S. Evans <jeffrey_evans@tnc.org>
library(sp) data(meuse) coordinates(meuse) <- ~x+y n = 15 # Draw n samples that maximize the variance of y ( max.sv <- optimized.sample.variance(meuse$zinc, 15) ) # Draw n samples that minimize the variance of y ( min.sv <- optimized.sample.variance(meuse$zinc, 15, type="minimized") ) # Plot results plot(meuse, pch=19, col="grey") plot(meuse[max.sv$idx,], col="red", add=TRUE, pch=19) plot(meuse[min.sv$idx,], col="blue", add=TRUE, pch=19) box() legend("topleft", legend=c("population","maximized variance", "minimized variance"), col=c("grey","red","blue"), pch=c(19,19,19)) # Raster example (not memory safe) library(raster) r <- raster(system.file("external/test.grd", package="raster")) # Calculate optimal sample variance and coerce to SpatialPointDataFrame # using xyFromCell ( min.sv <- optimized.sample.variance(getValues(r), n, type="minimized") ) min.sv <- sp::SpatialPointsDataFrame(xyFromCell(r, min.sv[,"idx"], spatial=TRUE), data=min.sv) ( max.sv <- optimized.sample.variance(getValues(r), n) ) max.sv <- sp::SpatialPointsDataFrame(xyFromCell(r, max.sv[,"idx"], spatial=TRUE), data=max.sv) plot(r) plot(max.sv, col="blue", add=TRUE, pch=19) plot(min.sv, col="red", add=TRUE, pch=19) box() legend("topleft", legend=c("maximized variance", "minimized variance"), col=c("red","blue"), pch=c(19,19))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.