Интересно, возможно ли повысить производительность для этой суммы квадратичных форм, реализованной с помощью apply
:
library(MASS)
n = 1000
y = mvrnorm(n, c(0,0), matrix(c(1,0,0,1), 2, 2) )
S = matrix(c(1,0,0,1), 2, 2)
eta = mvrnorm(n, c(0,0), matrix(c(1,0,0,1), 2, 2) )
v = sum (apply ( cbind(y,eta), 1, function(x) t(x[1:2]-x[3:4]) %*% S %*% (x[1:2]-x[3:4]) ))
Цель здесь - найти сумму матричного произведения (квадратичность c форма) описывается в латексной записи как \ sum_ {i = 1} ^ n (y_i- \ eta_i) ^ TS (y_i- \ eta_i). Есть ли более эффективный способ получить это?