Si lo he entendido bien, quiere probar la variación de la muestra. Es decir, hasta qué punto la distribución de la muestra coincide con la distribución de la población (trama). Esta no es una relación correlativa y se suele hacer comparando la media y la varianza de la muestra con la población.
Aquí hay un ejemplo en el que calculo la media, la varianza y los cuantiles para una muestra aleatoria y la trama. También trazo las distribuciones de la muestra y de la población.
En primer lugar, para un ejemplo, creamos una trama y tomamos una muestra aleatoria. Estoy simulando una distribución muy sesgada para el raster para añadir un sesgo potencial a la variación de la muestra.
require(raster)
sigma = 0.6; mu = 2
r <- raster(ncol=500, nrow=500)
r[] <- dlnorm(seq(-10, 60, length.out = ncell(r)), mu, sigma) * 100
n <- 20
s <- sampleRandom(r, n, na.rm=TRUE, sp=TRUE)
s@data <- data.frame(s@data, r=extract(r, s))
head(s@data)
plot(r)
plot(s, pch=20, add=TRUE, col="black")
Ahora podemos calcular los momentos de distribución para la muestra y la población.
# raster (population) mean, varaince and quantiles
( rmean <- cellStats(r, stat="mean", na.rm=TRUE, asSample=FALSE) )
( rvar <- cellStats(r, stat="sd", na.rm=TRUE, asSample=FALSE)^2 )
( rquant <- quantile(r, probs = c(0.25, 0.50, 0.75)) )
# random points (sample) mean, varaince and quantiles
( smean <- mean(s@data[,"r"]) )
( svar <- var(s@data[,"r"]) )
( squant <- quantile(s@data[,"r"], probs = c(0.25, 0.50, 0.75)) )
También podemos trazar las distribuciones de la población y de la muestra. Para probar la hipótesis nula de que x e y se extrajeron de la misma distribución continua, comparando las distribuciones, podríamos realizar una prueba no paramétrica de Kolmogorov-Smirnov de dos muestras utilizando la función ks.test.
# Plot sample and population distributions
par(mfrow=c(2,1))
density(r, xlim=c(cellStats(r, "min"),cellStats(r, "max")),
main="Population distribution")
plot(density(s@data[,"r"]), xlim=c(cellStats(r, "min"),cellStats(r, "max")),
main="sample distribution")
Una prueba t de estudiante de dos muestras puede calcularse fácilmente coaccionando la trama en un vector, sin embargo, esto no es seguro para la memoria y puede ser peligroso. Yo recomendaría tomar una muestra aleatoria muy grande para representar a la población.
r <- as.vector(as.matrix(r))
r <- na.omit(r)
t.test(s@data[,"r"], y = r)
Como parece que tiene una respuesta binominal, debería probar la variación de la muestra en un marco ANOVA o MANOVA para asegurarse de que no sólo ha capturado la variación de la población, sino que también el problema está equilibrado (la variación se divide por igual entre [0,1]).
Puede considerar seriamente un enfoque Bootstrap o Monte Carlo para identificar el sesgo. Dado que está utilizando una trama de densidad, el ancho de banda y la distribución del núcleo pueden afectar radicalmente a las estimaciones. Puede cuantificar esta incertidumbre con estos dos métodos.