Pessoal,
Estou tentando ajustar a Estimativa de Máxima Máxima Penalizada de Firth para a regressão logística implementada no pacote logistf para um conjunto de rasters (imagens), mas estou com problemas para implementá-lo usando rasters e vetores numéricos. Para ilustrar o problema:
library(raster)
library(logistf)
# Criando 2 rasters para reproduzir o que estou enfrentando
r <- raster(nrow=10, ncol=10)
# Variável-raster resposta (binária) com 9 bandas/layers
s1 <- lapply(1:9, function(i) setValues(r, sample(0:1,ncell(r),replace = T)))
s1 <- stack(s1)
# um raster-variável preditora
val <- sample(0:60,ncell(r),replace = T)
s2 <- raster(nrow=10, ncol=10,vals=val)
plot(s1)
plot(s2)
# Uma segunda variável preditora armazenada como vetor numérico: 9 valores assim como existem 9 bandas/layres em s1 (não é coincidência)
exp_2 <- c(27.00,30.02,31.07,32.72,33.73,35.12,35.65,36.06,38.32)
Agora, eu quero ajustar o modelo usando o logistf (eu tenho motivos estatísticos para isso, não reproduzido aqui) usando a função calc do pacote raster. É aí que o mistério mora.
O raciocínio na formulação do problema é que cada célula/pixel seguiria a segunite fórmula glm:
s1/layer1 ~ 27.00 + pixel correspondente em s2 + 27.00:pixel correspondente em s2
s1/layer2 ~ 30.02 + pixel correspondente em s2 + 30.02:pixel correspondente em s2
s1/layer3 ~ 31.07 + pixel correspondente em s2 + 31.07:pixel correspondente em s2
... e assim por diante para todas as 9 bandas/layers do meu raster-variável resposta s1, que são pareadas com valores de exp_2.
Eu tentei algo assim:
fun <- function (x) { logistf (x ~ exp_2 + s2 + exp_2:s2)$coeficients }
coefs <- calc(s1, fun)
Mas estava claro que não funcionaria. A parte complicada é infomar ao script que eu quero que cada valor de exp_2 seja usado com cada camada raster de s1 para este modelo.
Qualquer idéia será muito útil. Idéias?
Obrigado e abraços.
Jefferson Ferreira-Ferreira, PhD (abd)
Geographer

Ecosystem Dynamics Observatory - EcoDyn/UNESP
Department of Geography
Institute of Geosciences and Exact Sciences (IGCE)
São Paulo State University (UNESP)
Rio Claro, SP - Brazil