使用“积分”

时间:2019-03-26 09:04:59

标签: r

我需要对以下观察结果进行积分评估,但每次收到此错误消息时:

  

“((((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)

0 个答案:

没有答案