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.