El trazado de la estima laderas, como en la pregunta, es una gran cosa que hacer. En lugar de filtrado por importancia, a pesar de-o junto con - ¿por qué no un mapa de alguna medida de qué tan bien cada uno de los ajustes de regresión de los datos? Para esto, el error cuadrático medio de la regresión es fácilmente interpretado y significativa.
Como un ejemplo, el R
código siguiente genera una serie de tiempo de 11 de rásteres, realiza las regresiones, y muestra los resultados en tres formas: en la fila inferior, independiente de las rejillas de la estimación de las pendientes y la media del cuadrado de los errores; en la fila superior, como la superposición de las redes, junto con la verdad subyacente de las pendientes (que en la práctica nunca tendrá, pero es ofrecida por el equipo de simulación para la comparación). La superposición, ya que utiliza el color para una variable (estimado de la pendiente) y la ligereza para el otro (MSE), no es fácil de interpretar en este ejemplo en particular, sino que, junto con los mapas independientes en la fila inferior, puede ser útil e interesante.
![Maps]()
(Por favor, ignore el superpuesta leyendas de la superposición. Nota, también, que el esquema de color de la "Verdadera pistas de" el mapa no es el mismo que para los mapas de estimación de pendientes: error aleatorio hace que algunos de los estimados de los taludes de abarcar una mayor gama extrema de la verdad de las laderas. Este es un fenómeno general relativa a la regresión hacia la media.)
Por CIERTO, esta no es la forma más eficiente de hacer un gran número de regresiones para el mismo conjunto de veces: en su lugar, la matriz de proyección puede ser precalculadas y se aplica a cada una "pila" de los píxeles más rápidamente de lo que la posibilidad de que para cada regresión. Pero eso no importa para esta pequeña ilustración.
# Specify the extent in space and time.
#
n.row <- 60; n.col <- 100; n.time <- 11
#
# Generate data.
#
set.seed(17)
sd.err <- outer(1:n.row, 1:n.col, function(x,y) 5 * ((1/2 - y/n.col)^2 + (1/2 - x/n.row)^2))
e <- array(rnorm(n.row * n.col * n.time, sd=sd.err), dim=c(n.row, n.col, n.time))
beta.1 <- outer(1:n.row, 1:n.col, function(x,y) sin((x/n.row)^2 - (y/n.col)^3)*5) / n.time
beta.0 <- outer(1:n.row, 1:n.col, function(x,y) atan2(y, n.col-x))
times <- 1:n.time
y <- array(outer(as.vector(beta.1), times) + as.vector(beta.0),
dim=c(n.row, n.col, n.time)) + e
#
# Perform the regressions.
#
regress <- function(y) {
fit <- lm(y ~ times)
return(c(fit$coeff[2], summary(fit)$sigma))
}
system.time(b <- apply(y, c(1,2), regress))
#
# Plot the results.
#
library(raster)
plot.raster <- function(x, ...) plot(raster(x, xmx=n.col, ymx=n.row), ...)
par(mfrow=c(2,2))
plot.raster(b[1,,], main="Slopes with errors")
plot.raster(b[2,,], add=TRUE, alpha=.5, col=gray(255:0/256))
plot.raster(beta.1, main="True slopes")
plot.raster(b[1,,], main="Estimated slopes")
plot.raster(b[2,,], main="Mean squared errors", col=gray(255:0/256))