Multiplication vectorielle dans BUGS et JAGS


9

Dans R, c (3,1,0) * c (2,0,1) == c (6,0,0). Ce n'est pas un produit scalaire et ce n'est pas un produit croisé. Premièrement, quel est le nom de ce produit, et deuxièmement, cela fonctionne-t-il dans WinBUGS, OpenBUGS et / ou JAGS?


2
c'est juste une multiplication par élément. je ne sais pas si cela fonctionne dans WinBUGS, OpenBUGS ou JAGS.
supposé normal

Réponses:


3

Contrairement à JAGS, WinBUGS et OpenBUGS ne font pas cette forme de vectorisation; vous devez écrire une boucle et calculer chaque élément «à la main», comme décrit ci-dessus.


4

Martyn Plummer souligne que cela est implémenté dans JAGS, ce que j'ai manqué lors de la lecture du manuel. À partir du chapitre 5:

Les fonctions scalaires prenant des arguments scalaires sont automatiquement vectorisées. Ils peuvent également être appelés lorsque les arguments sont des tableaux avec des dimensions conformes ou des scalaires. Ainsi, par exemple, le scalaire c peut être ajouté à la matrice A utilisant

B <- A + c

au lieu de la forme la plus verbeuse

D <- dim(A)
for (i in 1:D[1])
  for (j in 1:D[2]) {
    B[i,j] <- A[i,j] + c
  }
}

2

Pour faire une multiplication par élément, vous pouvez simplement faire une boucle for dans ces langues et c'est tout! J'ai utilisé des boucles dans WinBUGS sans aucun problème.


À quelle question cette réponse répond-elle? Cela ne semble pas pertinent ici.
whuber

@whubber, pourquoi? C'est parfaitement pertinent. Ok, j'ai un peu changé le post pour être plus clair.
Curieux

Oui, une boucle for est ce que j'ai fait jusqu'à présent; Je me demandais simplement si une version vectorisée était possible.
Jack Tanner

J'ai soumis une demande de fonctionnalité à JAGS: sourceforge.net/tracker/…
Jack Tanner

Merci, Tomas. Maintenant, je vois le lien: vous ne répondez pas à la question comme indiqué, mais vous proposez une solution de contournement.
whuber

2

Par ailleurs, la multiplication par élément de deux vecteurs de longueur égale est appelée le produit Hadamard (alias le produit Schur).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.