Junior

Até onde sei o geoComp nao foi escrito com cuidado para eficiencia em R
(até por isto não está no CRAN!!).
A preocupação da autora
no momento da escrita era apenas de implementar como protótipo
um método desenvolvido.

Portanto é muito bem vinda a sua atuação para melhorar o código!

Entretanto eu nao mexeria em NADA compilado até ter certeza que rtudo que pudesse ser feito em termos de programação em R mesmo fosse implementado (manipila;ção de objetos, ordenação de operação, formas mais eficientes de efetuar operacoes) etc

neste caso "o buraco é mais em cima"



On Thu, 31 May 2012, Junior Beleti wrote:

Olá Benilton, tentando explicar melhor meu problema:

Faço uso de um pacote chamada geoComp. Tal pacote é utilizado de forma geral 
para modelar o padrão espacial
de dados composicionais. Foi um trabalho da professora Ana Beatriz.

O problema está quanto ao tempo de processamento para realizar o trabalho 
necessário.

Analisando mais a fundo, verifiquei que o maior problema quanto a desempenho está na 
função "volta.cokri" desse
pacote. 
Nessa função existe uma chamada à função "mvrnorm" e é justamente nessa chamada 
que ocorre o maior problema de
desempenho.

Verifiquei também que na função "mvrnorm" existe uma chamada para a tal função 
"eigen", que se trata de um
código-objeto fortran.

Inicialmente utilizei a função "mclapply" para tentar melhorar tal desempenho, 
mas não obtive muito sucesso. O que
estava pensando quando
insisti na ideia de criar a nova função no pacote base, foi o de que se chamando funções 
"diferentes", ou seja,
criando funções idênticas
cada uma com o espaço de endereçamento e nomes diferentes, poderia aumentar 
o desempenho.

A seguir, está um script utilizado:

require(geoComp)
require(MASS)
require(statmod)
require(geoR)
data(pivo)
dados <- pivo[,c(6,7,8,1,2)]
dados <- as.geoComp(dados)
bor <- cbind(c(0,seq(0,200,l=100),0),c(0,sqrt(200^2-seq(0,200,l=100)^2),0)) ## 
bor é uma matriz 2x102
estima <- mec(dados)
gr <- pred_grid(bor, by=4)
md.cov.ck <- cokrigagem(estima[[1]]$Estimativas, loc=gr,dados.comp=dados)
preditos.gh <- volta.quad(md.cov.ck,n.pontos=7,Variancia=FALSE)
preditos.gh <- data.frame(preditos.gh)
write.table(preditos.gh,"pred_by4k7ns1000MBM.txt")
preditos.simu <- volta.cokri(md.cov.ck,num.simu=1000,int.conf=0.95)
preditos.simu <- data.frame(preditos.simu[[1]])
preditos.simu.ic <- data.frame(preditos.simu[[2]])
write.table(preditos.simu,"predsimu_by4k7ns1000MBM.txt")
write.table(preditos.simu.ic,"predsimuic_by4k7ns1000MBM.txt")

O pacote geoComp pode ser adquirido no endereço: 
(http://www.din.uem.br/~pg45178/geocomp/geoComp.tar.gz)

Um resumo do trabalho pode ser encontrado em:
(http://www.leg.ufpr.br/lib/exe/fetch.php/pessoais:abtmartins:rbb09_2.pdf)

Obrigado pela atenção.

Carlos.

_______________________________________________
R-br mailing list
[email protected]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código 
mínimo reproduzível.

Responder a