我需要对以下观察结果进行积分评估,但每次收到此错误消息时:
“((((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)