Caros,<div><br></div><div>programei uma rotina para estimar por máxima verossimilhança os parâmetros de uma cópula e para ver se estava certo comparei os resultados com o comando do pacote copula. Encontrei diferenças apenas na 5a casa decimal em diante, que considerei como sendo por causa do método numérico utilizado. Só que, ao fazer a mesma comparação num computador 64 bits os resultados são bastante divergentes (o meu código muda o valor estimado, enquanto o pacote copula mantem), mudando na 2a casa decimal (no caso o parâmetro é a correlação, então a 2a casa decimal é bem importante). Dai me bateu a seguinte dúvida: em qual confiar?</div>
<div><br></div><div>Código:</div><div><div>require(copula)</div><div>require(MASS)</div><div>set.seed(31415)</div><div><br></div><div>normCop <- function(param,data) {</div><div> n <- nrow(data)</div><div> if (length(param) != n) { param <- rep(param,nrow(data)) } </div>
<div> cop <- mapply(normalCopula,param=param,MoreArgs=list(dim=2))</div><div> datalist <- apply(data,1,list)</div><div> for (i in 1:n) { datalist[[i]] <- datalist[[i]][[1]] }</div><div> out <- -sum(log(mapply(dcopula,copula=cop,u=datalist)))</div>
<div> if (out == Inf) { out = exp(100) }</div><div> return(out)</div><div>}</div><div>a <- matrix(0,20,2) </div><div>n <- 100</div><div>Sigma <- matrix(c(10,3,3,2),2,2)</div><div>for (j in 1:20) {</div><div> data <- mvrnorm(n=n, rep(0, 2), Sigma)</div>
<div> data <- apply(data,2,rank)/(n+1) </div><div><br></div><div> fitNormCop <- function(data) {</div><div>  optim(cor(data)[2],normCop,data=data, lower = 0, upper = .9999,method="L-BFGS-B")</div><div> }</div>
<div> a[j,1] <- fitNormCop(data)$par # Meu</div><div> a[j,2] <- fitCopula(normalCopula(.2,2), data, method="ml")@estimate # Pacote copula</div><div>}</div></div><div><br></div><div>E aqui um gráfico de dispersão comparando todos: </div>
<div><a href="http://img411.imageshack.us/img411/7527/92588280.png">http://img411.imageshack.us/img411/7527/92588280.png</a> </div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>
<div>[]'s</div>