Мне нужно оценить следующую интеграцию для вектора наблюдений, но каждый раз, когда я получаю это сообщение об ошибке:
"Ошибка в (((r * uu) - mu))% *%(solve (var.cov)): несоответствующие аргументы Кроме того: Предупреждающие сообщения: 1: В r * uu: длинная длина объекта не кратна короткой длине объекта 2: In (r * uu) - mu: "здесьмой код:
mu=c(0,1)
var.cov=matrix(c(1,0,0,1),nrow=2,ncol=2,byrow=T)
f=function(r,theta){
uu=c(cos(theta),sin(theta))
a=drop(t(uu)%*%solve(var.cov)%*%(uu))
b=drop(t(uu)%*%solve(var.cov)%*%(mu))
c=drop(-0.5*t(mu)%*%solve(var.cov)%*%mu)
d=drop(b/sqrt(a))
aa=(1/(2*pi*a*sqrt(det(var.cov))))*exp(c)*(1+((d*pnorm(d))/dnorm(d)))
p=(((r*uu)-mu))%*%(solve(var.cov))%*%t((r*uu)-mu)
pp=exp((-0.5)*p)
ppp=(r/(2*pi*(sqrt(det(var.cov)))))*pp
final=ppp/aa
formula=r*final
return(formula)
}
expec=function(theta){
integrate(f, lower=0, upper=Inf, theta=theta)$value
}
v.expec=Vectorize(expec)
theta=c(1.18,2.62,1.63,1.74,1.71,1.34,1.58)
v.expec(theta)