Bonjour,
J'essaye de minimiser une fonction dépendant de 4 paramètres avec optim, cependant mon problème est que 2 de ces paramètres sont des vecteurs, 1 est un scalaire et le dernier une matrice.
Or je n'arrive alors pas à initialiser les paramètres de ma fonction ( voir ci-dessous: x1, x2, x3 et x4)..et je ne vois pas comment dans ce cas on fait appel à la fonction optim.
Tous les exemples que j'ai trouvé sur internet ne traitent que le cas où les paramètres sont d'un seul type (soit scalaires, soit vecteurs, soit matrice).
Je vous met mon code en bas...il ne marche pas, mais c'est juste pour mieux vous montrer mon problème:
opt=optim(c(alpha[,c+1],beta[c+1],w,gamma),w,g) # comment faire appel ici à la fonction optim ??
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 g=function(x) { x1 = x[1:ncol(X)] # le 1er paramètre x1 est un vecteur x2 = x[ncol(X)+1] # le 2ème paramètre est un scalaire x3 = x(0,166,5) # le 3ème est une matrice. x4 = x[ncol(X)+1:ncol(X)+1+ncol(Y)] # le 4ème un vecteur res1=rep(0,nrow(X)) res2=matrix(0,nrow=nrow(X),ncol=ncol(Y)) for (i in 1:nrow(X)) { res1[i]=log(1/(1+exp(-t(x1)%*%X[i,]-x2))) for (t in 1:ncol(Y)) { res2[i,t]=log(((1+exp(-t(x3[,t])%*%X[i,]-x4[t]))/(sqrt(2*pi)))* (exp(-0.5*((1+exp(-t(x3[,t])%*%X[i,]-x4[t]))*(1-Y[i,t]))^(2)))) } } sum(res1)+sum(res2) # la fonction à minimiser }
Je vous remercie par avance.
Partager