Bonjour à tous,

Je vais essayer de faire simple pour exposer mon problème. J'utilise le package LaplacesDemon pour faire des modèles statistiques puis je cherche à les optimiser. Pour cela j'utilise le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
tab = tr.tab.final[,c("temp.t2", "prec.t2","popd.t2", "elev","sand")]
tab = na.omit(tab)
tab$popd.t2 = log(tab$popd.t2+1)
tab = data.frame(scale(tab))
nvars = ncol(tab)
tab$intercept = 1
 
invlogit_ <- function(x)
{
  expx = ifelse(exp(x)==Inf, .Machine$double.xmax, exp(x))
  expx/(1+expx)
}
 
 
require(LaplacesDemon)
parm.names = as.parm.names(list(aE=rep(0, 1+nvars), aC=rep(0, 1+nvars) ))
nbetas = length(parm.names)
 
 
MyData <- list(N = nrow(tab), dat = tab, mon.names = c("logLik") , parm.names= parm.names,
               var.aE = 1:(nvars+1),
               var.aC = 1:(nvars+1),
               aE.pos = grep("aE", parm.names),
               aC.pos = grep("aC", parm.names),
               AA.pos = tr.tab.final$tr=="AA",
               AP.pos = tr.tab.final$tr=="AP",
               PA.pos = tr.tab.final$tr =="PA",
               PP.pos = tr.tab.final$tr=="PP",
               invlogit_ = invlogit_,
               # lik_fct = lik_dd,
               nbetas = nbetas)
 
Initial.Values <- rnorm(length(MyData$parm.names), 0, 1)
 
require(data.table)
loglik_fct(Initial.Values, MyData)$LP
 
Fit = LaplaceApproximation(Model=loglik_fct, Initial.Values, Data=MyData, Method="SPG", Iterations = 50000)
Consort(Fit)
Le problème provient de la fonction Fit(), lorsque je la fait tourner la commande loglik_fct(Initial.Values, MyData)$LP me renvoie NA (ce qui déjà me pose problème) et après je peux pas faire la fonction Fit() car R renvoie "The posterior is non-finite".

J'ai beaucoup de valeurs proches de 0 donc je soupçonne un problème du type log(0) -> -infini mais je n'arrive pas à le résoudre par moi même.

Merci d'avance à tous,
Belle journée,