J'essaie d'obtenir des estimations plus précises (jusqu'à 6 décimales) de x[1]
et x[2]
dans ma fonction appelée GGG
. En utilisant optim
, j'obtiens quelques précisions jusqu'à 3 décimales, mais je me demande comment je peux améliorer la précision jusqu'à au moins 6 décimales?sont nlm() ou optimiser() plus précis que optim() dans R
Peut-on utiliser optimize
et nlm
pour cet objectif?
GGG = function(Low, High, p1, p2) {
f <- function(x) {
y <- c(Low, High) - qcauchy(c(p1, p2), location=x[1], scale=x[2])
}
## SOLVE:
AA <- optim(c(1,1), function(x) sum(f(x)^2))
## return parameters:
parms = unname(AA$par)
return(parms) ## Correct but up to 3 decimal places
}
## TEST:
AAA <- GGG (Low = -3, High = 3, p1 = .025, p2 = .975)
## CHECK:
q <- qcauchy(c(.025, .975), AAA[1], AAA[2]) # What comes out of "q" MUST match "Low" and
# "High" up to 6 decimal places
thc Cher, je vous remercie beaucoup. Puis-je vous demander de bien vouloir réviser votre réponse [** ICI **] (http://stackoverflow.com/questions/43286436/using-optimize-to-find-the-shortest-interval-that-takes-95- area-under-a-curve) donc la fonction [** THERE **] (http://stackoverflow.com/questions/43286436/using-optimize-to-find-the-shortest-interval-that-takes-95 -area-under-a-curve) fonctionne dans toutes les situations sans besoin de *** manuellement *** ajuster l'intervalle? – rnorouzian