Penggandaan vektor dalam BUGS dan JAGS


9

Dalam R, c (3,1,0) * c (2,0,1) == c (6,0,0). Ini bukan produk titik dan bukan produk lintas. Pertama, apa nama untuk produk ini, dan kedua, apakah itu berfungsi di WinBUGS, OpenBUGS, dan / atau JAGS?


2
ini hanya penggandaan elemen-bijaksana. Saya tidak yakin apakah itu berfungsi di WinBUGS, OpenBUGS, atau JAGS.
Diasumsikan normal

Jawaban:


3

Tidak seperti JAGS, WinBUGS dan OpenBUGS tidak melakukan bentuk vektorisasi ini; Anda harus menulis satu lingkaran, dan menghitung setiap elemen 'dengan tangan', seperti dijelaskan di atas.


4

Martyn Plummer menunjukkan bahwa ini diimplementasikan dalam JAGS, yang saya lewatkan saat membaca manual. Dari Ch 5:

Fungsi skalar yang mengambil argumen skalar secara otomatis di-vektor-kan. Mereka juga bisa dipanggil ketika argumen array dengan dimensi yang sesuai, atau skalar. Jadi, misalnya, skalar dapat ditambahkan ke matriks menggunakancA

B <- A + c

bukannya bentuk yang lebih verbose

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

2

Untuk melakukan perkalian elemen-bijaksana, Anda bisa membuat for for loop dalam bahasa tersebut dan hanya itu! Saya telah menggunakan loop di WinBUGS tanpa masalah.


Apa pertanyaan dari alamat balasan ini? Tampaknya tidak relevan di sini.
whuber

@ Whubber, mengapa? Ini sangat relevan. Ok, saya mengubah posting sedikit menjadi lebih jelas.
Penasaran

Yup, for for adalah apa yang telah saya lakukan sejauh ini; Saya hanya ingin tahu apakah versi vektor itu mungkin.
Jack Tanner

Saya telah mengirimkan permintaan fitur ke JAGS: sourceforge.net/tracker/…
Jack Tanner

Terima kasih, Tomas. Sekarang saya melihat hubungannya: Anda tidak menjawab pertanyaan seperti yang dinyatakan, tetapi Anda menawarkan solusi.
whuber

2

Kebetulan, perkalian elemen-bijaksana dari dua vektor dengan panjang yang sama disebut produk Hadamard (alias produk Schur).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.