Obrigado Rodrigo. A função bild apresenta um problema ao inserir efeito aleatório no modelo,. Segundo o help, faz-se necessário modificar limites de integração para verossimilhança e gradiente em cada banco de dados. Para um número de simulações pequeno, ele solta a seguinte mensagem Mensagens de aviso: In sqrt(prob * (1 - prob)) : NaNs produzidos mas emite os resultados. Quando uso um número de simulações é muito grande(que é o que preciso), sai seguinte mensagem Erro em solve.default(Info) : sistema é computacionalmente singular: condição recíproca número = 3.18165e-19 e os resultado não são emitidos. Isto porque eu teria que modificar os limites para cada uma das respostas geradas. E isto é inviável. A ideia do "replicate" dentro do "for" foi o que surgiu como alternativa para que a função geral() (que extrai os coeficientes) seja rodada uma vez e cada resultado seja armazenado em um objeto para que, por fim, seja obtida uma média. Entendo que esta opção não é a forma prática, mas foi o que eu pensei como alternativa para fugir deste problema. Qualquer outra sugestão será muito bem vinda. Grato, Maurício
Em 26 de outubro de 2013 10:08, Rodrigo Coster <[email protected]> escreveu: > replicate() dentro do for não faz sentido, ou tu usa ou outro (nesse > caso). Note que tu ta mandando repetir uma vez (o 1o parametro do > replicate) para cada iteração do for, e sobrescrevendo o resultado... > > > Tente (não testei, mas deve funcionar): > repeticoes <- replicate(ns, geral()) > colMeans(repeticoes) > > > 2013/10/26 Maurício Lordêlo <[email protected]> > >> Obrigado pela atenção Manoel. Quanto a instalação do pacote, o mesmo foi >> desenvolvido para versões >= 2.10.0. >> Fiz o que recomendou mas >> Erro em colMeans(repeticoes, na.rm = TRUE) : >> 'x' deve ser um array de pelo menos duas dimensões >> >> A saída de "repeticoes" é mostrada assim: >> [[1]] >> [1] 0.11926720 -0.06925387 -0.49590355 >> >> [[1]] >> [1] -0.1505574 -0.2059867 0.6151096 >> >> [[1]] >> [1] -0.2860369 -0.1084762 -0.1997825 >> >> [[1]] >> [1] 0.4159422 -0.9583708 -0.4319101 >> >> [[1]] >> [1] 0.3784151 -0.4214649 -0.1431581 >> >> >> Fiz >> as.array(repeticoes) >> e ele me retorna apenas a última linha do objeto "repeticoes". >> [[1]] >> [1] 0.3784151 -0.4214649 -0.1431581 >> Tentei também >> coefs=do.call(rbind, repeticoes) >> media_coefs=apply(coefs, 2, mean) >> media_coefs >> [1] 0.3784151 -0.4214649 -0.1431581 >> Que também retorna a última linha. >> Maurício >> >> >> >> Em 26 de outubro de 2013 08:12, Manoel Galdino <[email protected]>escreveu: >> >> Eu não consegui instalar a biblioteca build no R 3.0 >>> >>> De todo modo, pelo que entendi, colMeans não resolve seu problema? >>> >>> M >>> >>> >>> 2013/10/26 Maurício Lordêlo <[email protected]> >>> >>>> Caros, >>>> Devido a um problema com a função "bild" (pertencente ao pacote de >>>> mesmo nome), tive que modificar um script de simulação e não estou >>>> conseguindo finalizá-lo. >>>> No CRM abaixo, a função "geral" ajusta o modelo e extrai os >>>> coeficientes de interesse. Em seguida, coloco um "for" com o número de >>>> simulações que desejo (coloquei 5 mas pretendo 2000). Ao usar o "replicate" >>>> obtenho os resultados. Preciso obter uma média por coluna destes >>>> resultados. Pelo que percebi, o objeto que denominei de "repeticoes" >>>> armazena um objeto em cada uma de suas linhas. Alguém saberia uma forma de >>>> solucionar isso, ou seja, encontrar uma média por coluna do objeto >>>> "repeticoes"? Caso não seja esta a opção adequada, aceito sugestões. >>>> Agradeço desde já. >>>> >>>> >>>> library(bild) >>>> nt <- 8; ntr <- 3 ; nr <- 5 >>>> n <- ntr*nr*nt; nid <- ntr * nr >>>> id <- rep(1:nid, each = nt) >>>> tempo <- rep(1:nt, times = nid) >>>> trat <- rep(factor(LETTERS[0:ntr]), each = nr*nt) >>>> >>>> dados=data.frame(id,tempo,trat) >>>> >>>> geral <- function() >>>> { >>>> z <- numeric(n) >>>> for(i in 1:n) >>>> z[i] <- rbinom(1,1,0.5) >>>> dat <- data.frame(dados, y=z) >>>> (bild(y ~ trat+tempo, data = dat, >>>> time="tempo",start=NULL,dependence="MC1R"))@coefficients[1:3] >>>> } >>>> >>>> ns=5 ### número de simulações >>>> for(i in 1:ns) >>>> { >>>> repeticoes <- replicate(1, geral(), simplify = FALSE) >>>> print(repeticoes) >>>> } >>>> >>>> >>>> _______________________________________________ >>>> 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. >>>> >>> >>> >>> >>> -- >>> Manoel Galdino >>> https://sites.google.com/site/galdinomcz/ >>> >>> _______________________________________________ >>> 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. >>> >> >> >> _______________________________________________ >> 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. >> > > > _______________________________________________ > 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. >
_______________________________________________ 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.
