[R-br] Densidade normal multivariada em área irregular

Rodrigo Sant'Ana rodrigo.gringo em gmail.com
Segunda Junho 11 18:59:16 BRT 2012


Boa noite R's,

 estou buscando, homericamente, gerar uma distribuição de densidades
multivariada em uma área irregular, porém estou dando murro em ponta
de faca. Acredito que devo estar errando em algo simples, e fácil. O
intuito é simular a distribuição de densidade de um peixe em uma área
conhecida, para que posteriormente, estas densidades sejam alvos de
simulações amostrais. Abaixo segue o CMR de minha tentativa!

###---------------------------------- Simulação Densidade Normal Multivariada

# Carregando os dados em anexo!
load("R-BR.RData")

## A área de interesse deveria ser esta plotada a seguir
plot(bor, type = "l")

# Separação dos vetores Lat e Long do objeto dados
long <- dados$long
lat <- dados$lat

## Utilizando um kernel de Densidade da Normal Multivariada
# Função de amostragem estratificada!
system.time(
 d <- kde2d(long, lat, n = 100)
 )

## Função criada para gerar as figuras em perspectiva (persp) e contorno
## (contour) de mesma densidade (biomassa).

kde2dplot <- function(d,                # Densidades 2D computada pela
                                       # função kde2d
                     ncol=50,          # Número de cores
                     zlim=c(0,max(z)), # Limites da coordenada z
                     nlevels=20,       # vide nlevels em contour
                     theta=30,         # vide theta em persp
                     phi=60)           # vide phi em persp
                     {

z   <- d$z # Recebe as densidades (biomassa)
nrz <- nrow(z) # Recebe o número de linhas de z
ncz <- ncol(z) # Recebe o número de colunas de z

## O objeto couleurs determina o esquema de cores a ser utilizado, sendo
## as opções: rainbow, heat.colors, terrain.colors, topo.colors,
## cm.colors.
couleurs  <- tail(terrain.colors(trunc(1.4 * ncol)), ncol)
fcol      <- couleurs[trunc(z/zlim[2]*(ncol-1)) + 1]
dim(fcol) <- c(nrz, ncz)
fcol      <- fcol[-nrz, -ncz]

par(mar = c(5, 5, 2, 2))
image(d, col = couleurs, xlab = "Longitude", ylab = "Latitude")
contour(d, add = T, nlevels = nlevels, xlab = "Longitude", ylab =
       "Latitude")
box()
}

## Salva a figura de saída da simulação gerada
kde2dplot(d)
polygon(bor)

##-----------------------------------------------------------------------------------------------------

Se alguém tiver uma alternativa, realmente salvaria uma alma!
Brincadeiras a parte, queria muito agradece-los pela atenção.




______________
Rodrigo Sant'Ana
Oceanógrafo
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: R-BR.RData
Tipo: application/octet-stream
Tamanho: 93206 bytes
Descrição: não disponível
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120611/ad2840f6/attachment.obj>


Mais detalhes sobre a lista de discussão R-br