численное интегрирование по вектору наблюдений в R с использованием «интегрировать» - PullRequest
0 голосов
/ 26 марта 2019

Мне нужно оценить следующую интеграцию для вектора наблюдений, но каждый раз, когда я получаю это сообщение об ошибке:

"Ошибка в (((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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...