Vanúcia,
Neste caso, creio que a mensagem de aviso (que não é de erro) pode ser relevada. Veja o exemplo abaixo:
x<-rweibull(1e3,1,1)
ll<-function(th,x){
sh<-th[1]; sc<-th[2]
l<-dweibull(x,sh,sc,log=T)
-sum(l)
}
# Valores iniciais -- função 'fitdistr'
lx <- log(x)
m <- mean(lx)
v <- var(lx)
shape <- 1.2/sqrt(v)
scale <- exp(m + 0.572/shape)
ini<-c(shape,scale)
# Limites dos
parâmetros
inf<-rep(1e-3,2)
sup<-rep(Inf,2)
fit<-optim(ini,ll,method="L-BFGS-B",lower=inf,upper=sup,hessian=T,x=x)
fit$par # Estimativa
sqrt(diag(solve(fit$hessian))) # Erro padrão
library(MASS)
fitdistr(x,densfun="weibull")
Att.,
Rubem